javascript
Spring JDBC的学习
文章目錄
- 介紹
- 使用步驟
- 常用方法
- 示例代碼
介紹
所謂 Spring JDBC,是 Spring 框架對 JDBC 的簡單封裝。提供了一個 JdbcTemplate 對象簡化 JDBC 的開發(fā)。
使用步驟
步驟:
1.導(dǎo)入相關(guān)的 jar 包
2.創(chuàng)建 JdbcTemplate 對象,依賴于數(shù)據(jù)源 DataSource
JdbcTemplate template = new JdbcTemplate(ds);3.調(diào)用 JdbcTemplate 的方法來完成 CRUD 的操作
常用方法
1.update():執(zhí)行 DML 語句。增、刪、改語句
2.queryForMap() :將結(jié)果集封裝為Map集合返回,并且查詢結(jié)果只能返回一條記錄,即結(jié)果集的長度只能是 1,沒有記錄返回或者返回多條記錄都會報錯。
查詢的數(shù)據(jù)記錄的列名作為 key,列的值作為 value,保存在 Map 集合中
3.queryForList():將結(jié)果集封裝為List集合返回,可以查詢一條或者多條記錄。一條記錄封裝成一個 Map 對象,再把 Map 對象保存在 List 集合對象中
4.query():將結(jié)果封裝為JavaBean對象集合。將每條記錄封裝成 JavaBean 對象,然后裝載入集合中,并返回這個集合。
query的參數(shù)類型:RowMapper
一般我們使用 BeanPropertyRowMapper 實現(xiàn)類。 可以完成數(shù)據(jù)到 JavaBean 對象集合的自動封裝
5.queryForObject :將結(jié)果封裝為對象,一般用于聚合函數(shù)的查詢
示例代碼
package priv.lwx.javaex.jdbctemplate;import org.junit.Test; import org.springframework.jdbc.core.BeanPropertyRowMapper; import org.springframework.jdbc.core.JdbcTemplate; import priv.lwx.javaex.datasource.util.JdbcUtils; import priv.lwx.javaex.jdbctemplate.entity.Emp;import java.math.BigDecimal; import java.sql.Date; import java.util.List; import java.util.Map;/*** 使用單元測工具Junit來測試JdbcTemplate的CRUD** @author liaowenxiong* @date 2021/11/18 22:55*/public class JdbcTemplateDemo02 {// 1.獲取JdbcTemplate對象JdbcTemplate jtpt = new JdbcTemplate(JdbcUtils.getDataSource());/*** 更新數(shù)據(jù)** @author liaowenxiong* @date 2021/11/19 10:56*/@Testpublic void test1() {// 2.定義SQL語句String sql = "update Emp set salary = 10000 where id = 1";// 3.執(zhí)行SQL語句int i = jtpt.update(sql);}/*** 插入數(shù)據(jù)** @author liaowenxiong* @date 2021/11/19 10:56*/@Testpublic void test2() {// 2.定義SQL語句String sql = "INSERT INTO user(id, account_name, PASSWORD) values (?,?,?)";// 3.執(zhí)行SQL語句int i = jtpt.update(sql, null, "wujie", "567");System.out.println(i);}/*** 查詢某條記錄** @author liaowenxiong* @date 2021/11/19 10:52*/@Testpublic void test3() {// 定義SQL語句String sql = "select * from emp where id = ?";// 執(zhí)行SQL語句Map<String, Object> map = jtpt.queryForMap(sql, 1);System.out.println(map);}/*** 查詢多條記錄,返回一個List集合,集合中存放每條記錄對應(yīng)的Map對象** @author liaowenxiong* @date 2021/11/19 10:52*/@Testpublic void test4() {// 定義SQL語句String sql = "select * from emp";// 執(zhí)行SQL語句List<Map<String, Object>> list = jtpt.queryForList(sql);for (Map<String, Object> map : list) {System.out.println(map);}// System.out.println(list);}/*** 查詢多條記錄,將每條記錄映射成JavaBean對象,并將JavaBean對象裝載到List中,返回該List* @author liaowenxiong* @date 2021/11/19 23:00*/@Testpublic void test5() {// 定義SQL語句String sql = "select * from emp";// 執(zhí)行SQL語句List<Emp> emps = jtpt.query(sql, (rs, i) ->{int id = rs.getInt("id");String name = rs.getString("name");int job_id = rs.getInt("job_id");int mgr = rs.getInt("mgr");Date hiredate = rs.getDate("hiredate");BigDecimal salary = rs.getBigDecimal("salary");BigDecimal bonus = rs.getBigDecimal("bonus");int dept_id = rs.getInt("dept_id");Emp emp = new Emp();emp.setId(id);emp.setName(name);emp.setJob_id(job_id);emp.setMgr(mgr);emp.setHiredate(hiredate);emp.setSalary(salary);emp.setBonus(bonus);emp.setDept_id(dept_id);return emp;});for (Emp emp : emps) {System.out.println(emp);}}/*** 使用RowMapper的實現(xiàn)類BeanPropertyRowMapper完成自動封裝* @author liaowenxiong* @date 2021/11/19 22:53*/@Testpublic void test6() {// 定義SQL語句String sql = "select * from emp";// 執(zhí)行SQL語句List<Emp> emps = jtpt.query(sql, new BeanPropertyRowMapper<Emp>(Emp.class));for (Emp emp : emps) {System.out.println(emp);}}/*** 查詢emp表中總的記錄數(shù)* @author liaowenxiong* @date 2021/11/19 22:59*/@Testpublic void test7() {// 定義SQL語句String sql = "select count(id) from emp";// 執(zhí)行SQL語句// 希望將查詢結(jié)果封裝成什么類型,就傳遞什么類型的Class對象Integer i = jtpt.queryForObject(sql, Integer.class);System.out.println(i);}}總結(jié)
以上是生活随笔為你收集整理的Spring JDBC的学习的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 三星推出美食规划和建议平台“Food”,
- 下一篇: 看《奥本海默》了吗?或许你想知道:一颗核