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

		}
	}

  第二个 查询返回对象     

扫描二维码关注公众号,回复: 8904087 查看本文章
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;
	}

}

程序截图

发布了164 篇原创文章 · 获赞 1 · 访问量 2683

猜你喜欢

转载自blog.csdn.net/zhupengqq1/article/details/104099684
今日推荐