欢迎访问:我的个人网站
JDBCTemplate
Spring作为一个一站式的框架,针对各层都进行了封装处理,针对Dao,SpringJDBC提供了适用于不同持久层框架的封装模板,以简化操作的流程。
(1)JDBCTemplate使用的时候,需要引入spring.jdbc.jar包以及spring.tx.jar事务包,并根据要连接的数据库添加相关驱动。
(2)创建DriverManageDataSource 对象,并设置相关连接信息。
(3)根据所建立的数据源,建立JdbcTemplate对象。
(4)使用对象。
JDBCTemplate 类似于DButils这一类的工具集,提供了对数据库的一系列操作方法,使用较为简单:
DriverManagerDataSource dataSource = new DriverManagerDataSource();
dataSource.setDriverClassName("com.mysql.jdbc.Driver");
dataSource.setUsername("root");
dataSource.setPassword("password");
dataSource.setUrl("jdbc:mysql:///test");
JdbcTemplate jdbcTemplate = new JdbcTemplate(dataSource);
//增加
int i = jdbcTemplate.update("INSERT INTO t1 values (?, ?)", new Object[]{"KK", 100});
System.out.println(i);
//更新
i = jdbcTemplate.update("update t1 set `name` = ? where `age` = ?", "MM", 123);
System.out.println(i);
//删除
i = jdbcTemplate.update("delete from t1");
System.out.println(i);
for (int j = 0; j < 100; j++) {
i = jdbcTemplate.update("INSERT INTO t1 values (?, ?)", new Object[]{UUID.randomUUID().toString(), i});
}
//查询, 返回一种数据
Integer count = jdbcTemplate.queryForObject("Select count(*) from t1", int.class);
System.out.println(count);
//查询,返回一个对象
jdbcTemplate.queryForObject("select * from t1 limit 0,1", new RowMapper<Object>() {
@Override
public Object mapRow(ResultSet resultSet, int i) throws SQLException {
//按照列名称获取值
System.out.println(resultSet.getString("name"));
//按照索引位置获取值,数据从1开始。
System.out.println(resultSet.getString(2));
return null;
}
});
//查询,返回集合
List<String> name = jdbcTemplate.query("select * from t1", new RowMapper<String>() {
//得到结果集之后,会循环遍历结果集对象,并将每一次的遍历结果传递到这个方法里面,根据自身需要再进行处理
@Override
public String mapRow(ResultSet resultSet, int i) throws SQLException {
return resultSet.getString("name");
}
});
System.out.println(name);