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

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;
	}

}

程序截图

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值