1噩峦、JdbcTemplate概念及使用
a)Spring 框架對 JDBC 進(jìn)行封裝,使用 JdbcTemplate 方便實(shí)現(xiàn)對數(shù)據(jù)庫操作
b)引入相關(guān) jar 包
c)在 spring 配置文件配置數(shù)據(jù)庫連接池
<bean id="dataSource" class="com.alibaba.druid.pool.DruidDataSource"
????destroy-method="close">
????<property name="url" value="jdbc:mysql:///test" />
????<property name="username" value="root" />
????<property name="password" value="root" />
????<property name="driverClassName" value="com.mysql.jdbc.Driver" />
</bean>
d)配置 JdbcTemplate 對象客叉,注入 DataSource
<!-- JdbcTemplate 對象 -->
<bean id="jdbcTemplate" class="org.springframework.jdbc.core.JdbcTemplate">
<!--注入 dataSource-->
<property name="dataSource" ref="dataSource"></property><!--set方式注入-->
</bean>
e)創(chuàng)建 service 類,創(chuàng)建 dao 類,在 dao 注入 jdbcTemplate 對象
<!-- 組件掃描 -->
<context:component-scan base-package="com.atguigu"></context:component-scan>
@Service
public class BookService {
//注入 dao
@Autowired
private BookDao bookDao;
}@Repository
public class BookDaoImpl implements BookDao {
//注入 JdbcTemplate
@Autowired
private JdbcTemplate jdbcTemplate;
}
2荒辕、JdbcTemplate 操作數(shù)據(jù)庫(添加)
a)對應(yīng)數(shù)據(jù)庫創(chuàng)建實(shí)體類
b)創(chuàng)建service和dao
(1)在 dao 進(jìn)行數(shù)據(jù)庫添加操作
(2)調(diào)用 JdbcTemplate 對象里面 update 方法實(shí)現(xiàn)添加操作
@Repository
public class BookDaoImpl implements BookDao {
????//注入 JdbcTemplate
????@Autowired
????private JdbcTemplate jdbcTemplate;
????//添加的方法
????@Override
????public void add(Book book) {
????//1 創(chuàng)建 sql 語句
????String sql = "insert into t_book values(?,?,?)";
????//2 調(diào)用方法實(shí)現(xiàn)
????Object[] args = {book.getUserId(), book.getUsername(),book.getUstatus()};
????int update = jdbcTemplate.update(sql,args);
????System.out.println(update);
????}
}
3司顿、JdbcTemplate 操作數(shù)據(jù)庫(修改和刪除)
//1、修改
@Override
public void updateBook(Book book) {
????String sql = "update t_book set username=?,ustatus=? where user_id=?";
????Object[] args = {book.getUsername(), book.getUstatus(),book.getUserId()};
????int update = jdbcTemplate.update(sql, args);
????System.out.println(update);
}
//2兄纺、刪除
@Override
public void delete(String id) {
????String sql = "delete from t_book where user_id=?";
????int update = jdbcTemplate.update(sql, id);】
????System.out.println(update);
}
//使用JdbcTemplate 模板所實(shí)現(xiàn)的 “增刪改” 都是調(diào)用了同一個(gè) “update” 方法
4大溜、JdbcTemplate 操作數(shù)據(jù)庫(查詢返回某個(gè)值)
//查詢表記錄數(shù)
@Override
public int selectCount() {
????String sql = "select count(*) from t_book";
????//queryForObject方法中:第一個(gè)參數(shù)代表--sql語句;第二個(gè)參數(shù)代表--返回類型class
????Integer count = jdbcTemplate.queryForObject(sql, Integer.class);
????return count;
}
JdbcTemplate 操作數(shù)據(jù)庫(
5估脆、JdbcTemplate 操作數(shù)據(jù)庫(查詢返回對象)
//查詢返回對象
@Override
public Book findBookInfo(String id) {
????String sql = "select * from t_book where user_id=?";
????//調(diào)用方法
/*
????queryForObject方法中:
????第一個(gè)參數(shù):sql語句
????第二個(gè)參數(shù):RowMapper 是接口钦奋,針對返回不同類型數(shù)據(jù),使用這個(gè)接口里面 實(shí)現(xiàn)類 完成數(shù)據(jù)封裝
????第三個(gè)參數(shù):sql 語句值
*/
????Book book = jdbcTemplate.queryForObject(sql, new BeanPropertyRowMapper<Book>(Book.class), id);
????return book;
}
6疙赠、JdbcTemplate 操作數(shù)據(jù)庫(查詢返回集合)
//所用場景:查詢圖書列表分頁付材、、
//查詢返回集合
@Override
public List<Book> findAllBook() {
????String sql = "select * from t_book";
????//調(diào)用方法
????List<Book> bookList = jdbcTemplate.query(sql, new BeanPropertyRowMapper<Book>(Book.class));
????return bookList;
}
7圃阳、JdbcTemplate 操作數(shù)據(jù)庫(批量操作)
//批量添加
@Override
public void batchAddBook(List<Object[]> batchArgs) {
????String sql = "insert into t_book values(?,?,?)";
????//batchUpdate方法 第一個(gè)參數(shù):sql語句 第二個(gè)參數(shù):List集合厌衔,添加多條記錄數(shù)據(jù)
????int[] ints = jdbcTemplate.batchUpdate(sql, batchArgs);
????System.out.println(Arrays.toString(ints));
}//批量添加測試
List<Object[]> batchArgs = new ArrayList<>();
Object[] o1 = {"3","java","a"};
Object[] o2 = {"4","c++","b"};
Object[] o3 = {"5","MySQL","c"};
batchArgs.add(o1);
batchArgs.add(o2);
batchArgs.add(o3);
//調(diào)用批量添加
bookService.batchAdd(batchArgs);
8、JdbcTemplate 實(shí)現(xiàn)批量修改操作
//批量修改(同批量添加一樣捍岳,調(diào)用同一個(gè)方法)
@Override
public void batchUpdateBook(List<Object[]> batchArgs) {
????String sql = "update t_book set username=?,ustatus=? where user_id=?";
????int[] ints = jdbcTemplate.batchUpdate(sql, batchArgs);
????System.out.println(Arrays.toString(ints));
}
版權(quán)聲明:本文為CSDN博主「來點(diǎn)淦貨」的原創(chuàng)文章富寿,遵循CC 4.0 BY-SA版權(quán)協(xié)議,轉(zhuǎn)載請附上原文出處鏈接及本聲明锣夹。原文鏈接:https://blog.csdn.net/weixin_45496190/article/details/107092107