JDBCTemplate_快速入门
步骤
- 导入jar包
- 创建JDBCTemplate对象,依赖于数据源DataSourrce
- jdbcTemplate template = new JDBCTemplate(ds);
- 调用JDBCTemplate的方法来完成CRUD的操作
- update():执行DML语句。增、删、改语句
- queryForMap():查询结果将结果集封装为map集合
- queryForList():查询结果将结果集封装为list集合
- query():查询结果,将结果封装为JavaBean对象
- queryForobject :查询结果,将结果封装为对象
/** * JDBC_template入门 */ public class JDBC_template_demo01 { public static void main(String[] args) { /* 导入jar包 */ /* 创建JDBCTemplate对象 */ JdbcTemplate template = new JdbcTemplate(JDBC_utils.getDataSource()); /* 调用方法 */ String sql = "update account set balance = 3000 where id = ?"; int count = template.update(sql, 3); System.out.println(count); } }
/** * Druid连接池工具类 */ public class JDBC_utils { /* 定义成员变量 */ private static DataSource ds; /* 初始化赋值 */ static { /* 加载配置文件 */ Properties pro = new Properties(); try { /* 通过漏的方法加载 以及链式编程 */ pro.load(JDBC_utils.class.getClassLoader().getResourceAsStream("druid.properties")); /* 获取DataSource */ try { ds = DruidDataSourceFactory.createDataSource(pro); } catch (Exception e) { e.printStackTrace(); } } catch (IOException e) { e.printStackTrace(); } } /* 获取连接 */ public static Connection getConnection() throws SQLException { return ds.getConnection(); } /* 释放资源 */ public static void close1(ResultSet rs ,Statement stmt,Connection conn){ if (rs != null) { try { rs.close(); } catch (SQLException e) { e.printStackTrace(); } } if (stmt != null) { try { stmt.close(); } catch (SQLException e) { e.printStackTrace(); } } if (conn != null) { try { /* 归还连接 */ conn.close(); } catch (SQLException e) { e.printStackTrace(); } } } public static void close( Statement stmt , Connection conn) { if (stmt != null) { try { stmt.close(); } catch (SQLException e) { e.printStackTrace(); } } if (conn != null) { try { /* 归还连接 */ conn.close(); } catch (SQLException e) { e.printStackTrace(); } } } /* 获取连接池的方法 */ public static DataSource getDataSource() { return ds; } }
JDBCTemplate_执行DML语句练习
调用dbcTemplate的方法来完成CRUD的操作
(1)update():执行DML语句。增、删、改语句
(2)queryForMap():查询结果将结果集封装为map集合,将列名作为key,将值作为value将这条记录封装为一个map集合
注意:这个方法查询的结果集长度只能是1
(3)queryForList():查询结果将结果集封装为list集合
注意:将每一条记录封装为一个Map集合,再将Map集合装载到List集合中
(4)query():查询结果,将结果封装为]avaBean对象
query的参数:RowMapper
一般我们使用BeanPropertyRowMapper实现类。可以完成数据到JavaBean的自动封装
new BeanPropertyRowMapper<类型>(类型.class)
(5)queryForobject :查询结果,将结果封装为对象
—般用于聚合函数的查询
需求:
1.修改1号数据的salary 为10000
2.添加一条记录
3.删除刚添加的记录
4.查询id为1的记录,将其封装为Map集合 注:这个方法查询的结果集长度只能是1将列名作为key,将值作为value将这条记录封装为一个map集合
5.查询所有记录,l将其封装为List 注:将每一条记录封装为一个Map集合,再将Map集合装载到List集合中
6.查询所有记录,将其封装为Emp对象的List集合
7.查询总记录数
/** * Junit 单元测试 */ public class JDBC_template_demo02 { /* 获取JDBCTemplate对象 */ public JdbcTemplate template = new JdbcTemplate(JDBC_utils.getDataSource()); /* 1.修改1号数据的salary 为10000 */ @Test public void test1() { /* 定义sql */ String sql = "update emp set salary =10000 where id = 1001"; /* 执行sql */ int update = template.update(sql); System.out.println(update); } /*-------------------------------------------------------------------------*/ /* 2.添加一条记录 */ @Test public void test2() { /* 定义sql */ String sql = "insert into emp(id,ename,salary,dept_id) values (?,?,?,?)"; /* 执行sql */ int update = template.update(sql,1015,"吴承恩",99999,10); System.out.println(update); } /*-------------------------------------------------------------------------*/ /* 3.删除刚添加的记录 */ @Test public void test3() { /* 定义sql */ String sql = "delete from emp where id = ?"; /* 执行sql */ int update = template.update(sql,1015); System.out.println(update); } /*-------------------------------------------------------------------------*/ /* 4.查询id为1的记录,将其封装为Map集合 */ /* 注:这个方法查询的结果集长度只能是1 将列名作为key,将值作为value将这条记录封装为一个map集合 */ @Test public void test4() { /* 定义sql */ String sql = "select * from emp"; /* 执行sql */ Map<String, Object> map = template.queryForMap(sql, 1001); System.out.println(map); } /*-------------------------------------------------------------------------*/ /* 5.查询所有记录,l将其封装为List */ /* 注:将每一条记录封装为一个Map集合,再将Map集合装载到List集合中 */ @Test public void test5() { /* 定义sql */ String sql = "select * from emp"; /* 执行sql */ List<Map<String, Object>> list = template.queryForList(sql); for (Map<String, Object> s : list) { System.out.println(s); } } /*-------------------------------------------------------------------------*/ /* 6.查询所有记录,将其封装为Emp对象的List集合 */ @Test public void test6_01() { /* 定义sql */ String sql = "select * from emp"; /* 执行sql */ List<Emp> list = template.query(sql, new RowMapper<Emp>() { @Override /* 结果集对象 */ public Emp mapRow(ResultSet rs, int i) throws SQLException { /* new Emp表 */ Emp emp = new Emp(); /* 获取emp表的各列数据的结果集 */ int id = rs.getInt("id"); String ename = rs.getString("ename"); int job_id = rs.getInt("job_id"); int mgt = rs.getInt("mgt"); Date joindate = rs.getDate("joindate"); double salary = rs.getDouble("salary"); double bonus = rs.getDouble("bonus"); int dept_id = rs.getInt("dept_id"); /* 结果集获取后emp对象的set方法设置值内容 */ emp.setId(id); emp.setEname(ename); emp.setJob_id(job_id); emp.setMgt(mgt); emp.setJoindate(joindate); emp.setSalary(salary); emp.setBonus(bonus); emp.setDept_id(dept_id); return emp; } }); for (Object o : list) { System.out.println(o); } } /*-------------------------------------------------------------------------*/ /* 6.查询所有记录,将其封装为Emp对象的List集合 */ @Test public void test6_02() { /* 定义sql */ String sql = "select * from emp"; /* 执行sql */ List<Emp> list = template.query(sql, new BeanPropertyRowMapper<Emp>(Emp.class)); for (Emp e :list) { System.out.println(e); } } /*-------------------------------------------------------------------------*/ /* 7.查询总记录数 */ @Test public void test7() { /* 定义sql */ String sql = "select count(id) from emp"; /* 执行sql */ Long aLong = template.queryForObject(sql, Long.class); System.out.println(aLong); } }标签:封装,DML,566,public,emp,template,sql,id,JDBCTemplate From: https://www.cnblogs.com/agzq/p/16805798.html