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());
}
}
}
DBUtil 查询(2 有参数)
最新推荐文章于 2025-02-03 22:01:22 发布