05-jdbcTemplate实现crud操作(查询介绍)


查询具体实现
第一个查询返回某一个值
My my= jdbcTemplate.queryForObject(sql, new MyRowMapper());
(1)第一个参数是sql语句
(2)第二个参数 返回类型的class
public void testCount(){ // 设置数据库信息 DriverManagerDataSource dataSource=new DriverManagerDataSource(); dataSource.setDriverClassName("com.mysql.jdbc.Driver"); dataSource.setUrl("jdbc:mysql:///news"); dataSource.setUsername("root"); dataSource.setPassword("root"); //创建jdbcTemplate对象,设置数据源 JdbcTemplate jdbcTemplate=new JdbcTemplate(dataSource); //调用JdbcTemplate对象里面的方法实现操作 //创建语句 String sql="select count(*) from my "; //调用方法 int count= jdbcTemplate.queryForObject(sql, Integer.class); System.out.println("记录条数"+count); }
jdbc查询
@Test public void testCount(){ Connection conn=null; PreparedStatement psmt=null; ResultSet rs=null; //加载驱动 try { Class.forName("com.mysql.jdbc.Driver"); //创建连接 conn=DriverManager.getConnection("jdbc:mysql:///news", "root", "root"); String sql="select * from my where id=?"; psmt= conn.prepareStatement(sql); psmt.setString(1, "zhu"); rs=psmt.executeQuery(); while(rs.next()){ My my=new My(); String id= rs.getString("id"); String password= rs.getString("password"); my.setId(id); my.setPassword(password); System.out.println(my); } } catch (ClassNotFoundException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); }finally{ try { rs.close(); psmt.close(); conn.close(); } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); } } }
第二个 查询返回对象
My my= jdbcTemplate.queryForObject(sql, new MyRowMapper(), "zhu");
第一个参数是sql语句
第二个参数是RowMapper ,是接口,类似于dbutils里面接口
第三个参数是 可变参数
//查询功能 返回一个对象 @Test public void testObject(){ // 设置数据库信息 DriverManagerDataSource dataSource=new DriverManagerDataSource(); dataSource.setDriverClassName("com.mysql.jdbc.Driver"); dataSource.setUrl("jdbc:mysql:///news"); dataSource.setUsername("root"); dataSource.setPassword("root"); //创建jdbcTemplate对象 JdbcTemplate jdbcTemplate=new JdbcTemplate(dataSource); //写sql语句,根据my查询 String sql="select * from my where id=? "; //调用jdbcTemplate的方法实现 //第二个参数是接口 RowMapper ,需要自己写类实现接口,自己做数据封装。 My my= jdbcTemplate.queryForObject(sql, new MyRowMapper(), "zhu"); System.out.println(my); }
第三个 查询返回list集合
(1)sql 语句
//调用jdbcTemplate的方法实现 //第二个参数是接口 RowMapper ,需要自己写类实现接口,自己做数据封装。 List<My> list= jdbcTemplate.query(sql, new MyRowMapper());
(2)RowMapper接口,自己写类实现数据封装
(3)可变参数
//4 查询返回集合 @Test public void testList(){ // 设置数据库信息 DriverManagerDataSource dataSource=new DriverManagerDataSource(); dataSource.setDriverClassName("com.mysql.jdbc.Driver"); dataSource.setUrl("jdbc:mysql:///news"); dataSource.setUsername("root"); dataSource.setPassword("root"); //创建jdbcTemplate对象 JdbcTemplate jdbcTemplate=new JdbcTemplate(dataSource); //写sql语句,根据my查询 String sql="select * from my"; //调用jdbcTemplate的方法实现 //第二个参数是接口 RowMapper ,需要自己写类实现接口,自己做数据封装。 List<My> list= jdbcTemplate.query(sql, new MyRowMapper()); System.out.println(list); }
MyRowMapper类
class MyRowMapper implements RowMapper<My>{ @Override public My mapRow(ResultSet rs, int num) throws SQLException { // TODO Auto-generated method stub //从结果集里面把数据得到 String id=rs.getString("id"); String password=rs.getString("password"); //2 把得到数据到对象里面 My my=new My(); my.setId(id); my.setPassword(password); return my; } }
程序截图


&spm=1001.2101.3001.5002&articleId=144362959&d=1&t=3&u=3a48dae1008b4a37bc59f5d236562e8f)
8283

被折叠的 条评论
为什么被折叠?



