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

程序截图

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值