dbutil操作数据库工具类

步骤

导入jar包

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

把c3p0配置文件放到src目录下(src下一级目录,否则出错),

c3p0-config.xml  (连接数据库的驱动,url,名字,密码,,,,等)

创建连接池

ComboPooledDataSource  ds = new ComboPooledDataSource();

拿到执行sql的关键对象QueryRunner

QueryRunner  qr = new QueryRunner(ds);

写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";

将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.class), id);

查一批

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

注:增删改都可用Query对象的update方法,查询的同时将查到的数据封装成对应的对象或者集合。

示例代码:

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 {

//构造数据源

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.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;

}

}

mysql dbutil_通过dbutil操作数据库相关推荐

  1. php django mysql配置文件_Mysql学习Django+mysql配置与简单操作数据库实例代码

    <Mysql学习Django+mysql配置与简单操作数据库实例代码>要点: 本文介绍了Mysql学习Django+mysql配置与简单操作数据库实例代码,希望对您有用.如果有疑问,可以联 ...

  2. 数据库应用——MySQL基础知识和操作数据库

    这里写目录标题 初识MySQL 什么是数据库 数据库分类 MySQL简介 安装MYSQL win10安装 安装SQLyog 连接数据库 linux安装 使用Navicat Premium连接数据库 操 ...

  3. C++利用MySQL API连接和操作数据库

    1.C++连接和操作MySQL的方式 在Windows平台,我们可以使用ADO.ODBC或者MySQL API进行连接和操作.ADO (ActiveX Data Objects,ActiveX数据对象 ...

  4. yaf mysql pdo 封装_PDO 操作数据库

    # PDO 操作数据库 *** Yaf 框架(3.0.5版本)目前并没有提供数据库 ORM 类,据鸟哥的博客来说,以后或许会提供.使用了 ORM 类为团队带来的便捷和规范,但是带来了性能的下降.直接使 ...

  5. MySql学习【一】mysql的安装,操作数据库/表/查询表中数据/mysql日期计算

    1.安装和连接数据库的注意事项 1.在mac电脑上安装mysql,官网下载即可. 2.mysql返回的执行行数和时间,时间并不精确.其中时间是指挂钟时间 [返回进程启动到调用函数时所经过的CPU时钟计 ...

  6. MySQL学习第二天—操作数据库\数据表命令

    文章目录 一.登录数据库 二.基本数据库操作命令 1. 操作数据库 1.1 创建数据库 1.2 删除数据库 1.3 查看数据库 1.4 使用数据库 1.5 其他操作 2.操作数据表 2.1 创建数据表 ...

  7. java连接mysql通用方法_jdbc操作数据库通用方法

    1 /** 2 * 增删改查操作公共类(以oracle数据库为例)3 * 2017-8-29 wuyafei4 *5 */ 6 public classCrudUtil {7 /** 8 * 1.获取 ...

  8. jsp mysql事务锁,JSP操作数据库的事务回滚

    基础介绍 1.先设置为手动提交 conn.setAutoCommit(false); //将自动提交设置为false 2.若成功则提交 conn.commit(); //当操作成功后手动提交 3.若失 ...

  9. pbp 读取 mysql数据_SqlAlchemy 中操作数据库时session和scoped_session的区别(源码分析)...

    原生session: from sqlalchemy.orm import sessionmaker from sqlalchemy import create_engine from sqlalch ...

  10. php获取mysql数据菜鸟_PHP操作数据库

    function con(){ // MYSQL连接参数 $dsn='mysql:host=127.0.0.1;dbname=hello;charset=utf8;port=3306;'; $dbna ...

最新文章

  1. 算法--------数组类---------总结
  2. 破解加密PDF文件pdfcrack
  3. java面试题,将String字符串转换成数字
  4. 一个直角三角形的两个直角边是 a,b(a≤b),其斜边是 c,且 a,b,c都是正整数。现在我们已经知道了斜边长度c,请问这个直角三角形的两个直角边的长度是什么?Java
  5. java二维数组数字数显次数_【每日一题】118.数组中数字出现的次数
  6. shiro框架的学习
  7. 蓝桥杯第六届省赛JAVA真题----循环节长度
  8. C语言课后习题(61)
  9. 记一次线上Zabbix对Redis监控实录
  10. php 获取文件加的名称
  11. 触动精灵将图片转成base64字符串后通过post方式上传给服务器
  12. 保研计算机专硕还是学硕,考研怎么选报专硕还是学硕
  13. 诡异事件:天翼云主机CentOS8.2配置RedisServer5.0.3无法启动
  14. Lambda 表达式详解
  15. TypeScript数据类型
  16. 连接Linux服务器下Oracle数据库提示:ORA-12541: TNS: 无监听程序
  17. sql 窗口函数ROW_NUMBER() 分组/排序/计数
  18. AI测谎仪:通过微表情在法庭检测谎言,性能已优于人类
  19. 湖南师范大学 C语言考试操作题汇总。
  20. 流程图符号及流程图的例子

热门文章

  1. 转载:真正高人的解读——《三体 读后感》【宇宙尺度的战争】
  2. T-SQL 小数点转换百分数
  3. web前端优化--图片优化
  4. Smart SVN客户端使用
  5. 倒车雷达c语言编程,基于单片机的倒车雷达设计
  6. csgo准星设置代码_csgo准星参数代码
  7. c mysql学生管理系统_C++ 简单的学生信息管理系统
  8. 如何对接VOLVO EDI系统?
  9. vue根据拼音选择城市better-scroll
  10. Adobe-CC-2017 安装教程