JdbcTemplate常用用法

0. 简介

JdbcTemplate避免了原生的JDBC的样板式代码,让我们更关注数据处理。JdbcTemplate是Spring的一部分,JdbcTemplate处理了资源的建立和释放。他帮助我们避免一些常见的错误,比如忘了总要关闭连接。。。

1. 配置数据源

DriverManagerDataSource dataSource = new DriverManagerDataSource();
dataSource.setDriverClassName("com.mysql.jdbc.Driver");//连接mysql
dataSource.setUrl("jdbc:mysql://localhost:3306/test");
dataSource.setUsername("xxx");
dataSource.setPassword("xxx");

2. 自动装配数据源

@Autowired
public DataSource dataSource;
JdbcTemplate jdbcTemplate = new JdbcTemplate(dataSource);

 

3. 常用用法

原文地址: https://blog.csdn.net/shuai8624/article/details/94592792

1. 查询
a、读取单个对象
如:根据用户id获取用户对象

String sql="select id,name,deptid from user where id=?";
RowMapper<User> rowMapper=new BeanPropertyRowMapper<User>(User.class);
User user= jdbcTemplate.queryForObject(sql, rowMapper,52);
System.out.println(user);

1、使用BeanProperytRowMapper要求sql数据查询出来的列和实体属性需要一一对应。如果数据中列明和属性名不一致,在sql语句中需要用as重新取一个别名;若不想改,另一种方式在最下面;
2、使用JdbcTemplate对象不能获取关联对象

b、读取多个对象
String sql="select id,name,deptid from user";
RowMapper<User> rowMapper=new BeanPropertyRowMapper<User>(User.class);
List<User> users= jdbcTemplate.query(sql, rowMapper);
for (User user : users) {
System.out.println(user);
}

c、获取某个记录某列或者count、avg、sum等函数返回唯一值
String sql="select count(*) from user";
int count= jdbcTemplate.queryForObject(sql, Integer.class);
System.out.println(count);

2. 修改
String sql="update user set name=?,deptid=? where id=?";
jdbcTemplate.update(sql,new Object[]{"zhh",5,51});

3. 添加
String sql="insert into user (name,deptid) values (?,?)";
int count= jdbcTemplate.update(sql, new Object[]{"caoyc",3});
System.out.println(count);

4. 删除
String sql="delete from user where id=?";
jdbcTemplate.update(sql,51);

5、批量插入、更新或删除
String sql="insert into user (name,deptid) values (?,?)";
List<Object[]> batchArgs=new ArrayList<Object[]>();
batchArgs.add(new Object[]{"caoyc",6});
batchArgs.add(new Object[]{"zhh",8});
batchArgs.add(new Object[]{"cjx",8});
jdbcTemplate.batchUpdate(sql, batchArgs);

posted @ 2020-04-22 11:26  向日葵呀  阅读(511)  评论(0)    收藏  举报