ScalarHandler ——————标量- 用于select count(1)|sum|avg|max …一些聚合函数
package com.jiepu.testdbutil;
import java.sql.ResultSet;
import java.sql.ResultSetMetaData;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.Date;
import java.util.List;
import java.util.Map;
import org.apache.commons.dbutils.QueryRunner;
import org.apache.commons.dbutils.ResultSetHandler;
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.AfterClass;
import org.junit.BeforeClass;
import org.junit.Test;
import org.sqlite.SQLiteDataSource;
//http://www.cnblogs.com/liuwt365/p/4111584.html
public class TestDBUtils {
private static SQLiteDataSource dataSource;
private static QueryRunner runner;
private static String tableName="User";
@BeforeClass
public static void setUpBeforeClass() throws Exception {
dataSource= new SQLiteDataSource();
dataSource.setUrl("jdbc:sqlite:testdbutil.db");
runner=new QueryRunner(dataSource);
execute("CREATE TABLE IF NOT EXISTS "+tableName+"(id integer primary key autoincrement, name varchar(50),password varchar(50)," +
"age integer,createdate integer)",dataSource);
}
public static int execute(String sql ,SQLiteDataSource dataSource){
Statement statement;
int result =0;
try {
statement = dataSource.getConnection().createStatement();
result= statement.executeUpdate(sql);
} catch (SQLException e) {
e.printStackTrace();
}
return result;
}
@Test
public void Query1() throws Exception
{
//String sql="INSERT INTO users VALUES ('U002','tom','4321' )";
//runner.update(sql);
String sql="INSERT INTO "+tableName+"(name,password,age,createdate) VALUES (?,?,?,?)";
runner.update(sql,"Jim","123456","24",new Date().getTime());
runner.update(sql,"Kim","1234567","24",new Date().getTime());
runner.update(sql,"北京","12345678","24",new Date().getTime());
runner.update(sql,"嘉兴","123456789","24",new Date().getTime());
runner.update(sql,"tom","123456789","24",new Date().getTime());
System.out.println(dataSource);
}
@Test
public void Query2() throws Exception
{
//String sql=" UPDATE users SET NAME='Kim' WHERE NAME='jim' ";
//runner.update(sql);
String sql=" UPDATE "+tableName+" SET name=? WHERE name=? ";
runner.update(sql,"lily","Kim");
Query5();
}
@Test
public void Query3() throws Exception
{
//String sql="DELETE FROM users WHERE NAME='lily' ";
//runner.update(sql);
String sql="DELETE FROM "+tableName+" WHERE name=? ";
runner.update(sql,"tom");
Query5();
}
@Test
public void Query4() throws Exception
{
//String sql="SELECT * FROM users where id ='U002' ";
//user u= runner.query(sql, new BeanHandler(user.class));
String sql="SELECT * FROM "+tableName+" where id =? ";
User u=runner.query(sql, new BeanHandler(User.class),"2");
System.out.println(u);
}
@Test
public void Query5() throws Exception
{
String sql="select * from "+tableName;
List list= runner.query(sql, new BeanListHandler(User.class));
for(User u:list)
{
System.out.println(u);
}
}
@Test
public void Query6() throws Exception
{
String sql="select id,name,password from "+tableName;
Map map= runner.query(sql, new MapHandler());
System.out.println(map.toString());
}
@Test
public void Query7() throws Exception
{
String sql="select id,name,password from "+tableName;
List
package com.jiepu.testdbutil;
public class User {
//使用dbutil 实体类成员不要使用基本类型int long 应该使用封装类型 Integer Long
private Integer id;
private String name;
private String password;
private Long age;
private Long createdate;
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
public Long getAge() {
return age;
}
public void setAge(Long age) {
this.age = age;
}
public Long getCreatedate() {
return createdate;
}
public void setCreatedate(Long createdate) {
this.createdate = createdate;
}
@Override
public String toString() {
return "User [id=" + id + ", name=" + name + ", password=" + password
+ ", age=" + age + ", createdate=" + createdate + "]";
}
}
maven pom.xml
4.0.0
com.jiepu
testdbutil
0.0.1-SNAPSHOT
jar
testdbutil
http://maven.apache.org
UTF-8
junit
junit
4.8.1
commons-dbutils
commons-dbutils
1.6
org.xerial
sqlite-jdbc
3.8.7