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

来源:互联网 发布:gis空间数据分析 编辑:程序博客网 时间:2024/06/05 17:02

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查询
    
@Testpublic 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 blocke.printStackTrace();}catch (SQLException e) {// TODO Auto-generated catch blocke.printStackTrace();}finally{try {rs.close();psmt.close();conn.close();} catch (SQLException e) {// TODO Auto-generated catch blocke.printStackTrace();}}}


  第二个 查询返回对象     
My  my=jdbcTemplate.queryForObject(sql, new MyRowMapper(), "zhu");
      第一个参数是sql语句
      第二个参数是RowMapper ,是接口,类似于dbutils里面接口
      第三个参数是  可变参数
     
//查询功能  返回一个对象@Testpublic  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 查询返回集合@Testpublic  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>{@Overridepublic 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;}}
程序截图




程序地址:http://pan.baidu.com/s/1o8Rt9rk

阅读全文
0 0
原创粉丝点击