欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

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

程序员文章站 2022-06-02 16:14:44
...

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

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

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

}

程序截图

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

 

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

 

相关标签: Spring框架的学习