我的编程空间,编程开发者的网络收藏夹
学习永远不晚

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

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

JavaWeb 使用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类

在class="lazy" data-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表

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

对已有的菜系表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;
	}

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

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

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

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

JavaWeb如何使用DBUtils实现增删改查

这篇文章主要讲解了“JavaWeb如何使用DBUtils实现增删改查”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“JavaWeb如何使用DBUtils实现增删改查”吧!JavaWeb 使用D
2023-06-21

怎么实现JavaWeb用户的增删改查

本篇内容介绍了“怎么实现JavaWeb用户的增删改查”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!准备工作后端技术前端技术角色维护-分页实现
2023-06-16

Entity Framework使用DBContext实现增删改查

这篇文章介绍了Entity Framework使用DBContext实现增删改查的方法,文中通过示例代码介绍的非常详细。对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
2022-11-13

php mongodb实现增删改查的方法

本篇内容主要讲解“php mongodb实现增删改查的方法”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“php mongodb实现增删改查的方法”吧!php mongodb实现增删改查的方法:1
2023-06-07

使用PyMySQL怎么实现增删查改操作

使用PyMySQL怎么实现增删查改操作?针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。1、PyMySQL的使用步骤:2、案例:2.1 查询数据库中的表的信息: # 需求:查询
2023-06-15

Entity Framework中如何使用DataBase First模式实现增删改查

本篇内容主要讲解“Entity Framework中如何使用DataBase First模式实现增删改查”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Entity Framework中如何使用D
2023-06-29

怎么使用DataBase First模式实现数据库的增删改查

本文小编为大家详细介绍“怎么使用DataBase First模式实现数据库的增删改查”,内容详细,步骤清晰,细节处理妥当,希望这篇“怎么使用DataBase First模式实现数据库的增删改查”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢
2023-06-29

怎么用eclipse实现Java增删查改

要使用Eclipse实现Java的增删查改操作,你可以按照以下步骤进行:1. 创建一个Java项目:打开Eclipse,选择File -> New -> Java Project,输入项目名称并点击Finish。2. 创建一个Java类:在
2023-08-14

Go使用Gin+mysql实现增删改查的详细实例

目录0.前置知识1.架构2.功能模块3.实现流程4.代码5.结果总结 0.前置知识Go中的struct。mysql、Gin框架。Web基础。1.架构使用mysql作为数据库,Gin作为Web框架。2.功能模块1.自定义Person
2022-12-02

JDBC 实现通用的增删改查基础类方法

java中关于数据的管理有很多的框架,如hibernate、mybatis等,但我最开始学习的就是JDBC,我觉得JDBC还是很不错的,它让我更深层次的了解了数据的操作,今天我将我写过的JDBC基础类再写一遍!加深下记忆!!!先将通用的增查
2023-05-30

如何使用Node.js和Redis实现增删改查操作

这篇文章主要介绍“如何使用Node.js和Redis实现增删改查操作”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“如何使用Node.js和Redis实现增删改查操作”文章能帮助大家解决问题。什么是N
2023-07-05

如何利用PHP+Mysql实现增删改查

这篇文章主要介绍了如何利用PHP+Mysql实现增删改查,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。PHP+Mysql实现增删改查PHP 是一种创建动态交互性站点的强有力的
2023-06-22

编程热搜

  • Python 学习之路 - Python
    一、安装Python34Windows在Python官网(https://www.python.org/downloads/)下载安装包并安装。Python的默认安装路径是:C:\Python34配置环境变量:【右键计算机】--》【属性】-
    Python 学习之路 - Python
  • chatgpt的中文全称是什么
    chatgpt的中文全称是生成型预训练变换模型。ChatGPT是什么ChatGPT是美国人工智能研究实验室OpenAI开发的一种全新聊天机器人模型,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,并协助人类完成一系列
    chatgpt的中文全称是什么
  • C/C++中extern函数使用详解
  • C/C++可变参数的使用
    可变参数的使用方法远远不止以下几种,不过在C,C++中使用可变参数时要小心,在使用printf()等函数时传入的参数个数一定不能比前面的格式化字符串中的’%’符号个数少,否则会产生访问越界,运气不好的话还会导致程序崩溃
    C/C++可变参数的使用
  • css样式文件该放在哪里
  • php中数组下标必须是连续的吗
  • Python 3 教程
    Python 3 教程 Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下兼容。 Python
    Python 3 教程
  • Python pip包管理
    一、前言    在Python中, 安装第三方模块是通过 setuptools 这个工具完成的。 Python有两个封装了 setuptools的包管理工具: easy_install  和  pip , 目前官方推荐使用 pip。    
    Python pip包管理
  • ubuntu如何重新编译内核
  • 改善Java代码之慎用java动态编译

目录