通過dbutil操作數據庫


dbutil操作數據庫工具類

步驟

  1. 導入jar包

c3p0-0.9.1.2.jar         commons-dbutils-1.6.jar         mysql-connector-java-5.1.12-bin.jar

  1. 把c3p0配置文件放到src目錄下(src下一級目錄,否則出錯),

c3p0-config.xml  (連接數據庫的驅動,url,名字,密碼,,,,等)

  1. 創建連接池

ComboPooledDataSource  ds = new ComboPooledDataSource();

  1. 拿到執行sql的關鍵對象QueryRunner

QueryRunner  qr = new QueryRunner(ds);

  1. 寫sql語句

增: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=?";

查:

查一個:String  sql="select * from user where id=?";

查一批:String sql="select * from user";

  1. 將sql語句放入Query對象,調用相應方法增刪改查

不要疑惑,增加、修改、刪除都可以調用update方法,內部會通過判斷有無id而具體實行增加還是修改,只有sql時刪除。

         增: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);

         查:

                   查一個

User  user = qr.query(sql, new BeanHandler<User>(User.class), id);

         查一批

List<User>  users = qr.query(sql, new BeanListHandler<User>(User.class));

注:增刪改都可用Query對象的update方法,查詢的同時將查到的數據封裝成對應的對象或者集合。

 

示例代碼:

c3p0-config.xml

<c3p0-config>
<default-config>
<property name="driverClass">com.mysql.jdbc.Driver</property>
<property name="jdbcUrl">jdbc:mysql://localhost/test</property>
<property name="user">root</property>
<property name="password"></property>
<property name="initialPoolSize">5</property>
<property name="maxPoolSize">10</property>
</default-config>
</c3p0-config>

DbUtil.java

package util;

import org.apache.commons.dbutils.QueryRunner;

import com.mchange.v2.c3p0.ComboPooledDataSource;

public class DbUtil {
//構造數據源
private static ComboPooledDataSource ds=new ComboPooledDataSource();

public static QueryRunner getRuertyRunner(){
//拿到操作數據庫的關鍵對象QueryRunner,把數據源放進去
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>(User.class), id);
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return user;
}
public List<User> selectAll(){
String sql="select * from user";
List<User> users=null;
try {
users = qr.query(sql, new BeanListHandler<User>(User.class));
} catch (SQLException e) {
e.printStackTrace();
}
return users;
}
}

 

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM