JDBCTEMPLATE
-
概念 spring框架对jdbc进行了封装 使用jdbctemplate方便实现对数据库操作
-
准备工作 引入相关jar包 在spring配置数据库的连接池
-
配置jdbcTemplate对象 注入 datasource
<!-- 数据库连接池 --> <bean id="dataSource" class="com.alibaba.druid.pool.DruidDataSource" destroy-method="close"> <property name="url" value="jdbc:mysql:///user_db" /> <property name="username" value="root" /> <property name="password" value="" /> <property name="driverClassName" value="com.mysql.jdbc.Driver" /> </bean> <!-- 创建jdbctemplate对象的实例--> <bean id="jdbcTemplate" class="org.springframework.jdbc.core.JdbcTemplate"> <!-- 注入datasource --> <property name="dataSource" ref="dataSource"/> </bean>
-
创建service类 创建dao类 在dao注入jdbcTemplate对象(其实是daoImpl )
操作数据库
添加(update 可以实现 增删改)
- 对应数据库表创建实体类
- 编写service和dao
- 在dao进行数据库添加操作
- 调用jdbctemplate对象里的update方法实现添加操作
- update 两个参数 第一个 sql语句 第二哥 可变参数 设置sql语句值
查询操作!
- 查询 表里面有多少记录 返回某个值
- 使用jdbcTemplate 实现查询返回某个值
- queryForObject
- 第一个参数 sql语句
- 第二个参数 返回类型
查询返回对象
-
场景 查询图书详情
-
jdbcTemplate 实现查询返回对象
-
queryForObject
-
三个参数
-
第一个参数 sql语句
-
第二个参数 RowMapper 是一个接口 返回不同类型数据 使用这个接口里面实现类完成数据的封装
-
第三个参数 sql语句中?的值
//查询返回对象 @Override public User findBookInfo(String id) { String sql="select * from user where userid=?"; User user=jdbcTemplate.queryForObject(sql,new BeanPropertyRowMapper<User>(User.class),id); return user; }
-
查询返回集合
-
场景 查询图书列表分页
-
调用jdbcTemplate 方法实现查询返回集合
-
query
-
第一个参数 sql语句
-
第二个参数 RowMapper接口 针对返回不同类型数据 使用这个接口里面实现类完成数据封装
-
第三个参数 sql语句中?的值
//查询返回集合 @Override public List<User> findAllBook() { String sql="select * from user"; List<User> list = jdbcTemplate.query(sql, new BeanPropertyRowMapper<User>(User.class)); return list; }
-
批量操作
-
批量操作 操作表里面多条记录
-
jdbcTemplate 实现批量添加的操作
-
batchUpdate
-
第一个参数 sql语句
-
第二个参数 list集合
//实现批量添加操作 @Override public void batchAddBook(List<Object[]> list) { String sql="insert into user values(?,?,?"; int[] ints = jdbcTemplate.batchUpdate(sql, list); System.out.println(Arrays.toString(ints)); }
-
-
批量修改操作
-
//批量修改 @Override public void batchUpdateBook(List<Object[]> list) { String sql="update user set username=?, ustatus=? where userid=?"; jdbcTemplate.batchUpdate(sql,list); }
-
-
批量删除操作
//批量删除
@Override
public void batchDeleteBook(List<Object[]> list) {
String sql="delete from user where userid=?";
int[] ints = jdbcTemplate.batchUpdate(sql, list);
}