目录
概要
使用方法
创建数据库和表
添加依赖
创建实体类
在application当中配置数据库连接和jdbcTemplate
创建类实现增删改查操作
Spring JDBC是Spring所提供的持久层技术,负责数据库资源和错误处理,降低JDBC API的使用难度,以一种更简洁,更直接的方式使用JDBC API,大大简化了开发人员对数据库的操作。
JdbcTemplate是spring框架中提供的一个对象,是对原始繁琐的Jdbc API对象的简单封装。spring框架为我们提供了很多的操作模板类。
JdbcTemplate虽然简单,功能却非常强大。它提供了非常丰富、实用的方法,归纳起来主要有以下几种类型的方法:
新增、删除与修改三种类型的操作主要使用update和batchUpdate方法来完成。
query和queryForObject方法中主要用来完成查询功能。
execute方法可以用来执行任意的SQL、call方法来调用存储过程。
create database mybatis_demo;
use mybatis_demo;
CREATE TABLE `user` (
`id` int(11) NOT NULL auto_increment,
`username` varchar(32) NOT NULL COMMENT '用户名称',
`birthday` datetime default NULL COMMENT '生日',
`sex` char(1) default NULL COMMENT '性别',
`address` varchar(256) default NULL COMMENT '地址',
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
insert into `user`(`id`,`username`,`birthday`,`sex`,`address`) values (1,'老王','2018-02-27
17:47:08','男','北京'),(2,'熊大','2018-03-02 15:09:37','女','上海'),(3,'熊二','2018-03-04
11:34:34','女','深圳'),(4,'光头强','2018-03-04 12:04:06','男','广州');
org.springframework
spring-jdbc
5.3.21
mysql
mysql-connector-java
5.1.6
public class User {
private Integer id;
private String username;
private Date birthday;
private String sex;
private String address;
//get set方法
}
import com.qcby.entity.User;
import org.junit.Test;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
import org.springframework.jdbc.core.BeanPropertyRowMapper;
import org.springframework.jdbc.core.JdbcTemplate;
import java.util.List;
public class SpringTest {
ApplicationContext ctx=new ClassPathXmlApplicationContext("Application.xml");;
JdbcTemplate jdbcTemplate= (JdbcTemplate) ctx.getBean("jdbcTemplate");
@Test
public void testInsert(){
String sql="insert into user(username,address) values('李连杰','上海')";
jdbcTemplate.execute(sql);
}
@Test
public void testUpdate(){
String sql="update user set username='稳杰',address='南海' where id=?";
int res=jdbcTemplate.update(sql,2);
System.out.println(res);
}
@Test
public void testDelete(){
String sql="delete from user where id=?";
int res=jdbcTemplate.update(sql,18);
System.out.println(res);
}
//查询列表
@Test
public void testQueryList(){
String sql = "select * from user where address like '%京%'";
List userList= (List) jdbcTemplate.query(sql,new BeanPropertyRowMapper<>(User.class));
System.out.println("查询List: ");
for (User user : userList) {
System.out.println(user);
}
System.out.println("数量: "+userList.size());
}
}