欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

JavaWeb 使用DBUtils实现增删改查方式

程序员文章站 2022-06-18 07:55:34
目录javaweb 使用dbutils实现增删改查1、创建c3p0utils类2、创建dbutilsdao类3、创建测试类4、执行测试类java dbutils技术访问数据库dbutils介绍对数据库...

javaweb 使用dbutils实现增删改查

1、创建c3p0utils类

创建cn.itcast.jdbc.utils包

代码如下:

package cn.itcast.jdbc.utils;
import javax.sql.datasource;
import com.mchange.v2.c3p0.combopooleddatasource;
public class c3p0utils {
	private static datasource ds;
	static {
		ds = new combopooleddatasource();
	}
	public static datasource getdatasource() {
		return ds;
	}
}

2、创建dbutilsdao类

在src目录下,创建一个cn.itcast.jdbc.demo的包,在该包下创建一个dbutilsdao类

代码如下:

package cn.itcast.jdbc.demo;
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 cn.itcast.chapter10.example.user;
import cn.itcast.jdbc.utils.c3p0utils;
public class dbutilsdao {
	// 查询所有,返回list集合
	public list findall() throws sqlexception {
		// 创建queryrunner对象
		queryrunner runner = new queryrunner(c3p0utils.getdatasource());
		// 写sql语句
		string sql = "select * from user";
		// 调用方法
		list list = (list) runner.query(sql,
                     new beanlisthandler(user.class));
		return list;
	}
	// 查询单个,返回对象
	public user find(int id) throws sqlexception {
		// 创建queryrunner对象
		queryrunner runner = new queryrunner(c3p0utils.getdatasource());
		// 写sql语句
		string sql = "select * from user where id=?";
		// 调用方法
		user user = (user) runner.query(sql, 
                 new beanhandler(user.class), new object[] { id });
		return user;
	}
	// 添加用户的操作
	public boolean insert(user user) throws sqlexception {
		// 创建queryrunner对象
		queryrunner runner = new queryrunner(c3p0utils.getdatasource());
		// 写sql语句
		string sql = "insert into user (name,password) values (?,?)";
		// 调用方法
		int num = runner.update(sql,
				new object[] { user.getname(), user.getpassword() });
		if (num > 0)
			return true;
		return false;
	}
	// 修改用户的操作
	public boolean update(user user) throws sqlexception {
		// 创建queryrunner对象
		queryrunner runner = new queryrunner(c3p0utils.getdatasource());
		// 写sql语句
		string sql = "update  user set name=?,password=? where id=?";
		// 调用方法
		int num = runner.update(sql, new object[] { user.getname(),
                     user.getpassword(),user.getid() });
		if (num > 0)
			return true;
		return false;
	}
	// 删除用户的操作
	public boolean delete(int id) throws sqlexception {
		// 创建queryrunner对象
		queryrunner runner = new queryrunner(c3p0utils.getdatasource());
		// 写sql语句
		string sql = "delete from user where id=?";
		// 调用方法
		int num = runner.update(sql, id);
		if (num > 0)
			return true;
		return false;
	}
}

3、创建测试类

在cn.itcast.jdbc.demo包中创建测试类dbutilsdaotest类

代码如下:

package cn.itcast.jdbc.demo;
import java.sql.sqlexception;
import java.util.list;
import cn.itcast.chapter10.example.user;
public class dbutilsdaotest1 {
	private static dbutilsdao dao = new dbutilsdao();	
	public static void testinsert() throws sqlexception {
		user user = new user();
		user.setname("zhaoliu");
		user.setpassword("666666");
		boolean b = dao.insert(user);
		system.out.println("testinsert:"+b);
	}
	
	public static void testupdate() throws sqlexception {
		user user = new user();
		user.setname("zhaoqi");
		user.setpassword("666777");
		user.setid(1);
		boolean b = dao.update(user);
		system.out.println("testupdate:"+b);
	}
	
	public static void testdelete() throws sqlexception {
		boolean b = dao.delete(4);
		system.out.println("testdelete:"+b);
	}
	
	public static void testfindbyid() throws sqlexception {
		user user = dao.find(2);
		system.out.println(user.getid() + "," + user.getname() + ","
				+ user.getpassword());
	}
	
	public static void testfindall() throws sqlexception {
		list<user> list = dao.findall();
		for(user user : list) {
		system.out.println(user.getid() + "," + user.getname() + ","
				+ user.getpassword());
		}
	}
	public static void main(string[] args) throws sqlexception {
		testinsert();
		testupdate();
		testdelete();
		testfindbyid();
		testfindall();
	}
}

以上代码由多个测试函数组成,依次为:插入、修改、删除、根据id查询、查询所有

4、执行测试类

1.数据表user原始数据如下:

JavaWeb 使用DBUtils实现增删改查方式

执行后结果如下:

JavaWeb 使用DBUtils实现增删改查方式

之中插入和删除都是针对第四个数据进行的操作,所以没有显现

java dbutils技术访问数据库

dbutils

dbutils是操作数据库的组件,对传统操作数据库的类进行二次封装,可以把结果集转化成list。

介绍

dbutils相对以往的连接数据库得到结果集的模式,代码更加简洁,访问更加迅速,这里我对一个我自级设计的cuisine表做一个简单的例子。

JavaWeb 使用DBUtils实现增删改查方式

对数据库的查询语句的代码

对已有的菜系表cuisine查找对应菜系编号cuid的全部数据.

1、菜系表的实体类

// 菜系表的实体类
public class cuisine {
	private static final long serialversionuid = 1l;	
	private int cuid;	
	private string cuname;	
	public cuisine() {
		super();
		// todo auto-generated constructor stub
		this.cuid = 0;
		this.cuname = "";
	}
	public cuisine(int cuid, string cuname) {
		super();
		this.cuid = cuid;
		this.cuname = cuname;
	}
	public int getcuid() {
		return cuid;
	}
	public void setcuid(int cuid) {
		this.cuid = cuid;
	}
	public string getcuname() {
		return cuname;
	}
	public void setcuname(string cuname) {
		this.cuname = cuname;
	}
	@override
	public string tostring() {
		return "cuisine [cuid=" + cuid + ", cuname=" + cuname + "]";
	}	
}

2、实现数据查询的方法

// 实现数据查询
	public cuisine getcuisine(cuisine cu) {//得到对应菜系的信息
		// todo auto-generated method stub
		queryrunner queryrunner = new queryrunner();
		if(cu.getcuid() != 0){
			string sql = "select * from cuisine where cuid = ?";
			try {
				return queryrunner.query(dbutilspro.getconnection(),sql,cu.getcuid(),new beanhandler(cuisine.class));
			} catch (sqlexception e) {
				// todo auto-generated catch block
				e1.printstacktrace();
			}
		}
		return null;
	}

以上为个人经验,希望能给大家一个参考,也希望大家多多支持。