下面方法还有可以用Connection的,以后供事务使用
切记使用它,必须你的bean与数据库各个对象的名字一样
package day1802;
import java.sql.SQLException;
import java.util.List;
import java.util.Map;import org.apache.commons.dbutils.QueryRunner;
import org.apache.commons.dbutils.handlers.BeanHandler;
import org.apache.commons.dbutils.handlers.BeanListHandler;
import org.apache.commons.dbutils.handlers.MapHandler;
import org.apache.commons.dbutils.handlers.MapListHandler;
import org.apache.commons.dbutils.handlers.ScalarHandler;
import org.junit.Test;import jdbc.JdbcUtils;
import jdbc.User;
public class Demo5 {
//增加记录
@Test
public void insert() throws SQLException {
QueryRunner qr = new QueryRunner(JdbcUtils.getDataSourse());
String sql="insert into users values(null,?,?,?,?,?)";
Object[] params = {"李世民","123456","30","男","181888888"};
qr.update(sql,params);
}
//修改记录
@Test
public void update() throws SQLException {
QueryRunner qr = new QueryRunner(JdbcUtils.getDataSourse());
String sql="update users set username=?,password=?,age=? where userid=?";
Object[] params = {"入云龙","lovemeng18880","33","12"};
qr.update(sql,params);
}
//删除记录
@Test
public void delete() throws SQLException {
QueryRunner qr = new QueryRunner(JdbcUtils.getDataSourse());
String sql="delete from users where userid=?";
Object[] params = {6};
int de = qr.update(sql,params);
System.out.println("删除成功"+de);
}
//查询单条记录
@Test
public void selectSingle() throws SQLException { //查询单条记录
QueryRunner qr = new QueryRunner(JdbcUtils.getDataSourse());
String sql="select * from users where userid=?";
Object[] params = {16};
User user = qr.query(sql,new BeanHandler<User>(User.class), params);
System.out.println(user);
}
//查询结果 User [userid=16, username=李清照, password=123456, age=28, phone=1866778888, sex=女]
//查询全部
//BeanListHandler的应用,它是多行处理器,每行对象一个User对象
@Test
public void selectAll() throws SQLException { //查询全部
QueryRunner qr = new QueryRunner(JdbcUtils.getDataSourse());
String sql="select * from users";
List<User> user = qr.query(sql, new BeanListHandler<User>(User.class));
System.out.println(user);
}
//查询结果多条记录 [User [userid=12...], User [userid=2....], User [userid=7....]
//MapHandler的应用,它是单行处理,把一行转换成一个Map对象
@Test
public void selectSingleMap() throws SQLException { //用Map查询一行
QueryRunner qr = new QueryRunner(JdbcUtils.getDataSourse());
String sql="select * from users where userid=?";
Object[] params = {17};
Map map = qr.query(sql, new MapHandler(),params);
System.out.println(map);
}
//用MapListHandler 查询多行 一行一个Map
@Test
public void selectAllMapList() throws SQLException { //用Map查询一行
QueryRunner qr = new QueryRunner(JdbcUtils.getDataSourse());
String sql="select * from users";
List<Map<String, Object>> mapList = qr.query(sql, new MapListHandler());
System.out.println(mapList);
}
//ScalarHandler,它是单行单列时使用,最为合适
@Test
public void selectScalar() throws SQLException { //用Map查询一行
QueryRunner qr = new QueryRunner(JdbcUtils.getDataSourse());
String sql="select * from users";
Number cnt = (Number)qr.query(sql, new ScalarHandler());
long c = cnt.longValue();
System.out.println(c);
}
}