现在的位置: 首页 > 综合 > 正文

DBUtil 查询(2 有参数)

2013年12月07日 ⁄ 综合 ⁄ 共 1712字 ⁄ 字号 评论关闭
package day20;

import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;

import org.apache.commons.dbutils.QueryRunner;
import org.apache.commons.dbutils.ResultSetHandler;

import com.mysql.jdbc.Connection;

public class TestWithParamSelect {

	/**
	 * @param args
	 * @throws Exception 
	 */
	public static void main(String[] args) throws Exception {
           testWithParamSelect();
	}

	public static void testWithParamSelect() throws Exception {
		/**********************************************
		 * 匿名对象*/
		ResultSetHandler resultSetHandler=new ResultSetHandler(){
			public Object handle(ResultSet rs) throws SQLException {
				System.out.println("ResultSetHandlerImpl****************");
				List<Person> list=new ArrayList<Person>();
				while(rs.next()){
					Person p=new Person();
					p.setEmail(rs.getString(3));
					p.setId(rs.getInt(1));
					p.set姓名(rs.getString(2));
					list.add(p);
				}
				return list;
		 }
		};
		
		
		
		/************************************************* */
		
		
		
		//注册驱动  
		DBManager dbManager=new DBManager();  
        //获取连接   
		Connection conn=dbManager.getConnection();
		String username="zhang";
		String sql="select id,姓名,email from students where 姓名 like ?";
		//设置参数
		Object[] params=new Object[1];
		params[0]="%"+username+"%";
		
		/*
		 * 执行sql的类,该类中提供了增删改查语句的方法 
		 * query(conn,sql,rsh)第三个参数:转化结果集--->对象ResultHandler
		 * ResultHandler实现类接口的返回值就是query 方法的返回值
		 * query.query(conn, sql,new ResultSetHandlerImpl())
		 * *该方法的返回值就是ResultHandler实现类接口ResultSetHandlerImpl的
		 * *的方法public Object handle(ResultSet rs) throws SQLException的返回值
		 * * 是由底层开发者调用,不需要自己调用
		 */
		QueryRunner query=new QueryRunner();
		Object obj=query.query(conn, sql,resultSetHandler,params);
		System.out.println("obj===  "+obj);
//		Person p1=(Person)obj;
//		System.out.println(p1.getId()+"   "+p1.get姓名()+"    "+p1.getEmail());
		
		List<Person> list1=(List)obj;
		for(Person p:list1){
			System.out.println(p.getId()+"   "+p.get姓名()+"    "+p.getEmail());
		}
	}

}

抱歉!评论已关闭.