Spring JdbcTemplate常用方法

摆盘

JdbcTemplate主要提供以下五类方法:

  • execute方法:可以用于执行任何SQL语句,一般用于执行DDL语句;
  • update方法及batchUpdate方法:update方法用于执行新增、修改、删除等语句;batchUpdate方法用于执行批处理相关语句;
  • query方法及queryForXXX方法:用于执行查询相关语句;
  • call方法:用于执行存储过程、函数相关语句。

通过update插入数据

1
2
3
4
5
6
7
// 启动IoC容器
ApplicationContext ctx=new ClassPathXmlApplicationContext("applicationContext.xml");
// 获取IoC容器中JdbcTemplate实例
JdbcTemplate jdbcTemplate=(JdbcTemplate) ctx.getBean("jdbcTemplate");
String sql="insert into user (name,deptid) values (?,?)";
int count= jdbcTemplate.update(sql, new Object[]{"caoyc",3});
System.out.println(count);

通过update修改数据

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

通过update删除数据

1
2
String sql="delete from user where id=?";
jdbcTemplate.update(sql,51);

批量插入、更新和删除方法

批量插入,batchUpdate方法第二参数是一个元素为Object[]数组类型的List集合

1
2
3
4
5
6
7
8
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);

从数据中读取数据到实体对象

读取单个对象

1
2
3
4
5
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
2
3
4
5
6
7
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);
}

获取某个记录某列

或者count、avg、sum等函数返回唯一值

1
2
3
4
String sql="select count(*) from user";

int count= jdbcTemplate.queryForObject(sql, Integer.class);
System.out.println(count);

参考