在spring中使用JdbcTemplate進行數據庫管理操作

JdbcTemplate

1、JdbcTemplate概念及使用

​ a)Spring 框架對 JDBC 進行封裝,使用 JdbcTemplate 方便實現對數據庫操作

​ b)引入相關 jar 包

​ c)在 spring 配置文件配置數據庫連接池

<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)創建 service 類,創建 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 操作數據庫(添加)

​ a)對應數據庫創建實體類

​ b)創建service和dao

​ (1)在 dao 進行數據庫添加操作

​ (2)調用 JdbcTemplate 對象裏面 update 方法實現添加操作

@Repository
public class BookDaoImpl implements BookDao {
 //注入 JdbcTemplate
 @Autowired
 private JdbcTemplate jdbcTemplate;
 //添加的方法
 @Override
 public void add(Book book) {
 //1 創建 sql 語句
 String sql = "insert into t_book values(?,?,?)";
 //2 調用方法實現
 Object[] args = {book.getUserId(), book.getUsername(),book.getUstatus()};
 int update = jdbcTemplate.update(sql,args);
 System.out.println(update);
 }
}

3、JdbcTemplate 操作數據庫(修改和刪除)

//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 模板所實現的 “增刪改” 都是調用了同一個 “update” 方法

4、JdbcTemplate 操作數據庫(查詢返回某個值)

//查詢表記錄數
@Override
public int selectCount() {
 String sql = "select count(*) from t_book";
//queryForObject方法中:第一個參數代表--sql語句;第二個參數代表--返回類型class  
 Integer count = jdbcTemplate.queryForObject(sql, Integer.class);
 return count;
}
JdbcTemplate 操作數據庫(

5、JdbcTemplate 操作數據庫(查詢返回對象)

//查詢返回對象
@Override
public Book findBookInfo(String id) {
 String sql = "select * from t_book where user_id=?";
 //調用方法
/*
	queryForObject方法中:
		第一個參數:sql語句
		第二個參數:RowMapper 是接口,針對返回不同類型數據,使用這個接口裏面 實現類 完成數據封裝
		第三個參數:sql 語句值
*/
 Book book = jdbcTemplate.queryForObject(sql, new BeanPropertyRowMapper<Book>(Book.class), id);
 return book;
}

6、JdbcTemplate 操作數據庫(查詢返回集合)

//所用場景:查詢圖書列表分頁、、
//查詢返回集合
@Override
public List<Book> findAllBook() {
 String sql = "select * from t_book";
 //調用方法
 List<Book> bookList = jdbcTemplate.query(sql, new BeanPropertyRowMapper<Book>(Book.class));
 return bookList;
}

7、JdbcTemplate 操作數據庫(批量操作)

//批量添加
@Override
public void batchAddBook(List<Object[]> batchArgs) {
 String sql = "insert into t_book values(?,?,?)";
//batchUpdate方法 第一個參數:sql語句		第二個參數:List集合,添加多條記錄數據
 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);
//調用批量添加
bookService.batchAdd(batchArgs);

8、JdbcTemplate 實現批量修改操作

//批量修改(同批量添加一樣,調用同一個方法)
@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));
}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章