宣传网站有哪些,wordpress登录后搜索,成都专业网站营销,抚州建设网站的公司文章目录介绍使用步骤常用方法示例代码介绍
所谓 Spring JDBC#xff0c;是 Spring 框架对 JDBC 的简单封装。提供了一个 JdbcTemplate 对象简化 JDBC 的开发。
使用步骤
步骤#xff1a; 1.导入相关的 jar 包
2.创建 JdbcTemplate 对象#xff0c;依赖于数据源 DataSo…
文章目录介绍使用步骤常用方法示例代码介绍
所谓 Spring JDBC是 Spring 框架对 JDBC 的简单封装。提供了一个 JdbcTemplate 对象简化 JDBC 的开发。
使用步骤
步骤 1.导入相关的 jar 包
2.创建 JdbcTemplate 对象依赖于数据源 DataSource
JdbcTemplate template new JdbcTemplate(ds);3.调用 JdbcTemplate 的方法来完成 CRUD 的操作
常用方法
1.update()执行 DML 语句。增、删、改语句
2.queryForMap() 将结果集封装为Map集合返回并且查询结果只能返回一条记录即结果集的长度只能是 1没有记录返回或者返回多条记录都会报错。 查询的数据记录的列名作为 key列的值作为 value保存在 Map 集合中
3.queryForList()将结果集封装为List集合返回可以查询一条或者多条记录。一条记录封装成一个 Map 对象再把 Map 对象保存在 List 集合对象中
4.query()将结果封装为JavaBean对象集合。将每条记录封装成 JavaBean 对象然后装载入集合中并返回这个集合。
query的参数类型RowMapper 一般我们使用 BeanPropertyRowMapper 实现类。 可以完成数据到 JavaBean 对象集合的自动封装
new BeanPropertyRowMapper类型(类型.class)5.queryForObject 将结果封装为对象一般用于聚合函数的查询
示例代码
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());/*** 更新数据** author liaowenxiong* date 2021/11/19 10:56*/Testpublic void test1() {// 2.定义SQL语句String sql update Emp set salary 10000 where id 1;// 3.执行SQL语句int i jtpt.update(sql);}/*** 插入数据** author liaowenxiong* date 2021/11/19 10:56*/Testpublic void test2() {// 2.定义SQL语句String sql INSERT INTO user(id, account_name, PASSWORD) values (?,?,?);// 3.执行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 ?;// 执行SQL语句MapString, Object map jtpt.queryForMap(sql, 1);System.out.println(map);}/*** 查询多条记录返回一个List集合集合中存放每条记录对应的Map对象** author liaowenxiong* date 2021/11/19 10:52*/Testpublic void test4() {// 定义SQL语句String sql select * from emp;// 执行SQL语句ListMapString, Object list jtpt.queryForList(sql);for (MapString, 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;// 执行SQL语句ListEmp 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的实现类BeanPropertyRowMapper完成自动封装* author liaowenxiong* date 2021/11/19 22:53*/Testpublic void test6() {// 定义SQL语句String sql select * from emp;// 执行SQL语句ListEmp emps jtpt.query(sql, new BeanPropertyRowMapperEmp(Emp.class));for (Emp emp : emps) {System.out.println(emp);}}/*** 查询emp表中总的记录数* author liaowenxiong* date 2021/11/19 22:59*/Testpublic void test7() {// 定义SQL语句String sql select count(id) from emp;// 执行SQL语句// 希望将查询结果封装成什么类型就传递什么类型的Class对象Integer i jtpt.queryForObject(sql, Integer.class);System.out.println(i);}}