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原始数据如下:
执行后结果如下:
之中插入和删除都是针对第四个数据进行的操作,所以没有显现
java dbutils技术访问数据库
dbutils
dbutils是操作数据库的组件,对传统操作数据库的类进行二次封装,可以把结果集转化成list。
介绍
dbutils相对以往的连接数据库得到结果集的模式,代码更加简洁,访问更加迅速,这里我对一个我自级设计的cuisine表做一个简单的例子。
对数据库的查询语句的代码
对已有的菜系表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; }
以上为个人经验,希望能给大家一个参考,也希望大家多多支持。
推荐阅读
-
oracle/mysql连接德鲁伊数据库连接池和使用dbutils第三方jar包简化dao层实现增删改查
-
关于学生对象的增删改查的“改”(网页界面,bootstrap)(续,使用模态窗的修改操作)第二种实现方式(JavaScript DOM操作)
-
JavaWeb 使用DBUtils实现增删改查方式
-
JAVAWEB开发之mybatis详解(一)——mybatis的入门(实现增删改查操作)、自定义别名、抽取代码块以及动态SQL的使用
-
使用DbUtils实现增删改查
-
Mybatis(一),使用三种方式实现对数据库表的增删改查
-
使用DbUtils实现增删改查ResultSetHandler接口的实现类
-
关于学生对象的增删改查的“改”(网页界面,bootstrap)(续,使用模态窗的修改操作)第二种实现方式(JavaScript DOM操作)
-
JavaWeb 使用DBUtils实现增删改查方式
-
oracle/mysql连接德鲁伊数据库连接池和使用dbutils第三方jar包简化dao层实现增删改查