mysql dbutil_通过dbutil操作数据库
dbutil操作數(shù)據(jù)庫(kù)工具類(lèi)
步驟
導(dǎo)入jar包
c3p0-0.9.1.2.jar???????? commons-dbutils-1.6.jar ??????? mysql-connector-java-5.1.12-bin.jar
把c3p0配置文件放到src目錄下(src下一級(jí)目錄,否則出錯(cuò)),
c3p0-config.xml? (連接數(shù)據(jù)庫(kù)的驅(qū)動(dòng),url,名字,密碼,,,,等)
創(chuàng)建連接池
ComboPooledDataSource ?ds = new ComboPooledDataSource();
拿到執(zhí)行sql的關(guān)鍵對(duì)象QueryRunner
QueryRunner ?qr = new QueryRunner(ds);
寫(xiě)sql語(yǔ)句
增:String ?sql=” insert into user(name,age) values(?,?)”;
刪:String ?sql="delete from user where id="+u.getId();
改:String ?sql="update user set name=?,age=? where id=?";
查:
查一個(gè):String ?sql="select * from user where id=?";
查一批:String sql="select * from user";
將sql語(yǔ)句放入Query對(duì)象,調(diào)用相應(yīng)方法增刪改查
不要疑惑,增加、修改、刪除都可以調(diào)用update方法,內(nèi)部會(huì)通過(guò)判斷有無(wú)id而具體實(shí)行增加還是修改,只有sql時(shí)刪除。
增:int ?num = qr.update(sql, u.getName(),u.getAge());
改:int? num = qr.update(sql, u.getName(),u.getAge(),u.getId());
刪:int ?num=qr.update(sql);
查:
查一個(gè)
User? user = qr.query(sql, new BeanHandler(User.class), id);
查一批
List? users = qr.query(sql, new BeanListHandler(User.class));
注:增刪改都可用Query對(duì)象的update方法,查詢(xún)的同時(shí)將查到的數(shù)據(jù)封裝成對(duì)應(yīng)的對(duì)象或者集合。
示例代碼:
c3p0-config.xml
com.mysql.jdbc.Driver
jdbc:mysql://localhost/test
root
5
10
DbUtil.java
package util;
import org.apache.commons.dbutils.QueryRunner;
import com.mchange.v2.c3p0.ComboPooledDataSource;
public class DbUtil {
//構(gòu)造數(shù)據(jù)源
private static ComboPooledDataSource ds=new ComboPooledDataSource();
public static QueryRunner getRuertyRunner(){
//拿到操作數(shù)據(jù)庫(kù)的關(guān)鍵對(duì)象QueryRunner,把數(shù)據(jù)源放進(jìn)去
QueryRunner qr = new QueryRunner(ds);
return qr;
}
}
User.java
package entity;
public class User {
private int id;
private int age;
private String name;
public User() {
super();
}
public User(int id, int age, String name) {
super();
this.id = id;
this.age = age;
this.name = name;
}
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
UserDao.java
package dao;
import java.sql.SQLException;
import java.util.List;
import org.apache.commons.dbutils.QueryRunner;
import org.apache.commons.dbutils.handlers.BeanHandler;
import org.apache.commons.dbutils.handlers.BeanListHandler;
import util.DbUtil;
import entity.User;
public class UserDao {
/*public int add(User u){
Connection conn = JdbcUtil.getConnection();
String sql="insert into user(name,age) values(?,?)";
PreparedStatement ps=null;
int num=0;
try {
ps = conn.prepareStatement(sql);
ps.setObject(1, u.getName());
ps.setObject(2, u.getAge());
num=ps.executeUpdate();
} catch (SQLException e) {
e.printStackTrace();
}finally{
try {
ps.close();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
return num;
}*/
//dbutil
QueryRunner qr = DbUtil.getRuertyRunner();
public int add(User u){
String sql="insert into user(name,age) values(?,?)";
int num=0;
try {
num = qr.update(sql, u.getName(),u.getAge());
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return num;
}
public int delete(User u){
String sql="delete from user where id="+u.getId();
int num=0;
try {
num = qr.update(sql);
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return num;
}
public int update(User u){
String sql="update user set name=?,age=? where id=?";
int num =0;
try {
num= qr.update(sql, u.getName(),u.getAge(),u.getId());
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return num;
}
public User selectOne(int id){
String sql="select * from user where id=?";
User user=null;
try {
user = qr.query(sql, new BeanHandler(User.class), id);
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return user;
}
public List selectAll(){
String sql="select * from user";
List users=null;
try {
users = qr.query(sql, new BeanListHandler(User.class));
} catch (SQLException e) {
e.printStackTrace();
}
return users;
}
}
總結(jié)
以上是生活随笔為你收集整理的mysql dbutil_通过dbutil操作数据库的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: Android 底部导航 UI框架
- 下一篇: acid(数据库事务正确执行的四个基本要