java dbutils工具类_DbUtils工具类使用

article/2025/10/2 23:36:29

DbUtils工具类使用

创建数据库

CREATE TABLE `student` (

`userId` int(11) NOT NULL,

`userName` varchar(30) NOT NULL,

`gender` char(1) NOT NULL,

`age` int(11) DEFAULT NULL,

PRIMARY KEY (`userId`)

) ENGINE=InnoDB DEFAULT CHARSET=utf8

把相关的包引入到项目里:

9153665ce22094ad061cacfe40c16d80.png

编写Student类:

package com.t0.test;

public class Student {

private Integer userId;

private String userName;

private String gender;

private Integer age;

public Integer getUserId() {

return userId;

}

public void setUserId(Integer userId) {

this.userId = userId;

}

public String getUserName() {

return userName;

}

public void setUserName(String userName) {

this.userName = userName;

}

public String getGender() {

return gender;

}

public void setGender(String gender) {

this.gender = gender;

}

public Integer getAge() {

return age;

}

public void setAge(Integer age) {

this.age = age;

}

@Override

public String toString() {

return "student [userId=" + userId + ", userName=" + userName + ", gender=" + gender + ", age=" + age + "]";

}

}

代码:

package com.t0.test;

import java.util.Properties;

import java.sql.ResultSet;

import java.sql.SQLException;

import java.util.ArrayList;

import java.util.List;

import java.util.Map;

import javax.sql.DataSource;

import org.apache.commons.dbutils.QueryRunner;

import org.apache.commons.dbutils.ResultSetHandler;

import org.apache.commons.dbutils.handlers.BeanHandler;

import org.apache.commons.dbutils.handlers.BeanListHandler;

import org.apache.commons.dbutils.handlers.KeyedHandler;

import org.apache.commons.dbutils.handlers.MapHandler;

import org.apache.commons.dbutils.handlers.MapListHandler;

import org.apache.commons.logging.Log;

import org.apache.commons.logging.LogFactory;

import com.mysql.jdbc.jdbc2.optional.MysqlDataSource;

public class TestDbUtils {

private static Log log = LogFactory.getLog(TestDbUtils.class);

private DataSource createDataSource(Properties props) {

MysqlDataSource ds = new MysqlDataSource();

ds.setURL(props.getProperty("url"));

ds.setUser(props.getProperty("user"));

ds.setPassword(props.getProperty("password"));

return ds;

}

/**

* 创建数据源

* @return

*/

//private DataSource createDataSource() {

//MysqlDataSource ds = new MysqlDataSource();

//ds.setURL("jdbc:mysql://localhost:3306/test");

//ds.setUser("root");

//ds.setPassword("root__");

//return ds;

//}

/**

* 将查询结查返回一个数据列表List

* @param ds

*/

public void queryBeanList(DataSource ds) {

String sql = "select userId, userName, gender, age from student";

QueryRunner queryRunner = new QueryRunner(ds);

ResultSetHandler> handler = new BeanListHandler(Student.class);

List result = null;

try {

result = queryRunner.query(sql, handler);

} catch(SQLException e) {

e.printStackTrace();

}

if (null == result) {

return;

}

for (Student s : result) {

System.out.println(s);

}

}

/**

* 将查询结果返一个Bean

* @param ds

* @param id

*/

public void queryBean(DataSource ds, int id) {

String sql = "select * from student where userId = ?";

QueryRunner queryRunner = new QueryRunner(ds);

ResultSetHandler handler = new BeanHandler(Student.class);

Student result = null;

try {

result = queryRunner.query(sql, handler, id);

} catch(SQLException e) {

e.printStackTrace();

}

if (null == result) {

return;

}

System.out.println(result);

}

/**

* 将查询结果以键值对列表形式返回

* @param

*/

public void queryMapList(DataSource ds) {

String sql = "select userId, userName, gender, age from student";

QueryRunner queryRunner = new QueryRunner(ds);

ResultSetHandler>> handler = new MapListHandler();

List> result = null;

try {

result = queryRunner.query(sql, handler);

} catch (SQLException e) {

e.printStackTrace();

}

if (null == result) {

return;

}

for (Map map : result) {

System.out.println(map);

}

}

/**

* 将查询结果以键值对形式返回

* @param ds

* @param id

*/

public void queryMap(DataSource ds, int id) {

String sql = "select * from student where userId = ?";

QueryRunner queryRunner = new QueryRunner(ds);

ResultSetHandler> handler = new MapHandler();

Map result = null;

try {

result = queryRunner.query(sql, handler, id);

} catch (SQLException e) {

e.printStackTrace();

}

if (null == result) {

return;

}

System.out.println(result);

}

/**

* 自定义处理,其实也将查询结果

* @param ds

*/

public void queryCustomHandler(DataSource ds) {

String sql = "select userId, userName, gender, age from student";

QueryRunner queryRunner = new QueryRunner(ds);

ResultSetHandler> handler = new ResultSetHandler>() {

@Override

public List handle(ResultSet paramResultSet) throws SQLException {

List list = new ArrayList();

while (paramResultSet.next()) {

Student student = new Student();

student.setUserId(paramResultSet.getInt("userId"));

student.setUserName(paramResultSet.getString("userName"));

student.setGender(paramResultSet.getString("gender"));

student.setAge(paramResultSet.getInt("age"));

list.add(student);

}

return list;

}

};

List result = null;

try {

result = queryRunner.query(sql, handler);

} catch (SQLException e) {

e.printStackTrace();

}

if (null == result ) {

return;

}

for (Student student : result) {

System.out.println(student);

}

}

public int updateBean(DataSource ds,Student s) {

int n = 0;

String sql = "insert into student(userId, userName, gender, age) values('?','?','?','?');";

QueryRunner queryRunner = new QueryRunner(ds);

try {

n = queryRunner.update(sql,s.getUserId(),s.getUserName(), s.getGender(), s.getAge() );

if (0 == n) {

return 0;

}

System.out.println("插入了 " + n + " 个数据!" );

} catch (SQLException e) {

e.printStackTrace();

}

return n;

}

public int insertBean(DataSource ds, Student s) {

int n = 0;

String sql = "insert into student(userId, userName, gender, age) values(?,?,?,?)";

QueryRunner queryRunner = new QueryRunner(ds);

try {

//n = queryRunner.update(sql, new Object[] {"22", "二2222", "M","22"} );

n = queryRunner.update(sql,new Object[] {s.getUserId(), s.getUserName(), s.getGender(), s.getAge()});

} catch (SQLException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

return n;

}

public static void main(String[] args) {

Properties properties = new Properties();

properties.setProperty("url", "jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=UTF8");

properties.setProperty("user", "root");

properties.setProperty("password", "root__");

// TODO Auto-generated method stub

TestDbUtils tDbUtils = new TestDbUtils();

//DataSource ds = tDbUtils.createDataSource();

DataSource ds = tDbUtils.createDataSource(properties);

System.out.println("-------queryBeanList--------");

tDbUtils.queryBeanList(ds);

System.out.println("-------queryBean--------");

tDbUtils.queryBean(ds, 5);

System.out.println("-------queryMapList--------");

tDbUtils.queryMapList(ds);

System.out.println("-------queryMap--------");

tDbUtils.queryMap(ds, 6);

System.out.println("-------queryCustomHandler-------");

tDbUtils.queryCustomHandler(ds);

System.out.println("============================================");

Student s = new Student();

s.setUserId(13);

s.setUserName("十3郎");

s.setGender("M");

s.setAge(34);

tDbUtils.insertBean(ds, s);

}

}

执行结果:

d60669ca2a6563a8776b2ce85c30a09e.png

注意:DbUtils使用中,SQL语句中不能用单引号,我也是花了N长时间没有找到原因,至少,我是用了单引号把问号括起来一直报错.提示不需要参数,就是问号的作用没有发挥.


http://chatgpt.dhexx.cn/article/lvLfrkkY.shtml

相关文章

python DbUtils 封装

python dbutils 简介及准备工作 dbutils封装文件传送门 DBUtils是一套Python数据库连接池包,并允许对非线程安全的数据库接口进行线程安全包装。DBUtils来自Webware for Python。 DBUtils提供两种外部接口: PersistentDB :提供线程专用的数…

DBUtils工具

DBUtils工具 为了更加简单地使用JDBC,Apache组织提供了一个工具类库commons-dbutils,它是操作数据库地一个组件,实现一个对JDBC的简单封装,可以在不影响性能的情况下极大地简化JDBC地编码工作量。 API介绍 commons-dbutils的核…

java dbutils_Java学习之DBUtils

DBUtils:只是帮我们简化了CRUD 的代码。数据库连接的创建以及获取工作,不在其工作范围 一、DBUtils应用 ①、DBUtils的jar文件的下载 ②、Sql Server 、C3P0、DBUtils环境搭建(导入相应jar文件) Sql Server :sqljdbc42.jar(JDBC驱动) C3P0&am…

DBUtils介绍与使用

目录 一、DBUtils介绍二、DBUtils使用(一)导入相关Jar包(二)使用DBUtils完成数据库操作 一、DBUtils介绍 DBUtils:是为了简化JDBC的快发而产生的开发工具包,是对JDBC的一种封装。 DBUtils是个小巧的JDBC轻…

DBUtils详解

目录 DBUtils查询数据 匿名内部类方式 反射方式 反射方式查询数据的触发器分类 多表查询 DBUtils增加,删除,修改数据 前言 使用DBUtils操作数据库,会更加的方便,因为它封装了JDBC的代码,这里我们配合c3p0使用 并不是说一定要用c3p0,因为使用DBUtils 的时候需要手动传递…

JavaWeb——(13)DBUtils

目录 一、DBUtils介绍 二、DBUtils核心对象 三、DBUtils使用简单案例 四、QueryRunner对象 4.1构造函数 4.2方法 五、ResultSetHandler接口 六、DBUtils控制事务 6.1ThreadLocal 6.2模拟转账业务 一、DBUtils介绍 DBUtils是java编程中的数据库操作实用工具&#xff…

DBUtils工具类的使用方法详解

DBUtils使用方法详解 目录 DBUtils使用方法详解一、前言二、JDBC介绍1.基本概念2.JDBC访问数据库的流程 三、DBUtils介绍1.基本概念2.配置文件3.创建JDBCUtils类4.实现对数据表的增删改查 四、对以上代码的说明五、总结 一、前言 本文是关于DBUtils使用方法的介绍,…

如何用计算机解kkt条件,【直观详解】拉格朗日乘法和KKT条件

【阅读时间】8min - 10mun 【内容简介】直观的解读了什么是拉格朗日乘子法,以及如何求解拉格朗日方程,并且给出几个直观的例子,针对不等式约束解读了KKT条件的必要条件和充分条件 What & Why 拉格朗日乘法(Lagrange multiplier)是一种在最优化的问题中寻找多元函数在其变…

SVM中的KKT条件和拉格朗日对偶

首先,我们要理解KKT条件是用来干嘛的? KKT条件用来判断一个解是否属于一个非线性优化问题。 求最优解: 约束条件分为 1、等式约束 2、不等式约束 对于等式约束的优化问题,可以直接应用拉格朗日乘子法去求取最优值; …

KKT条件详解

KKT条件详解 主要参考这篇文章和这个知乎回答。 KKT最优化条件是Karush[1939],以及Kuhn和Tucker[1951]先后独立发表出來的。这组最优化条件在Kuhn和Tucker发表之后才逐渐受到重视,因此许多情况下只记载成库恩塔克条件(Kuhn-Tucker conditions…

KKT条件总结

最近学习的时候用到了最优化理论,但是我没有多少这方面的理论基础。于是翻了很多大神的博客把容易理解的内容记载到这篇博客中。因此这是篇汇总博客,不算是全部原创,但是基础理论,应该也都差不多吧。因才疏学浅,有纰漏…

KKT条件

无约束优化 首先给出一些基本概念定义: 凸集: 欧式空间中,集合中任意两点的连线都在集合中,我们就说这个集合是凸集;凸函数: 对于任意属于[0,1]的a和任意属于凸集的两点x, y,有 f ( a x ( 1 …

KKT 直观理解

KKT最优化条件是Karush[1939],以及Kuhn和Tucker[1951]先后独立发表出來的。这组最优化条件在Kuhn和Tucker发表之后才逐渐受到重视,因此许多情况下只记载成库恩塔克条件(Kuhn-Tucker conditions) 库恩塔克条件(Kuhn-Tucker conditions)是非线性…

判断kkt条件的例题_kkt条件例题(kkt条件例题求解)

kkt条件例题(kkt条件例题求解) 2020-05-08 10:54:39 共10个回答 要看目标函数的斜率,不能单凭横坐标或纵坐标确定追问能举例说明吗回答一般线性规划的图像解法是通过平移一条直线,观察与可行域的焦点来求极值的这个还是线性规划里比较基础的问题.建议你找一本线性规划的书或者是…

kkt条件的理解_直观理解KKT条件

KKT最优化条件是Karush[1939],以及Kuhn和Tucker[1951]先后独立发表出來的。这组最优化条件在Kuhn和Tucker发表之后才逐渐受到重视,因此许多情况下只记载成库恩塔克条件(Kuhn-Tucker conditions) 库恩塔克条件(Kuhn-Tucker conditions)是非线性规划领域里最重要的理论成果之一…

对偶专题——KKT条件

[对偶专题——Duality and Dual problem (一) https://blog.csdn.net/jmh1996/article/details/85030323] 对于一般的带约束的优化问题: 介绍了如何通过构造原优化目标的一个下界函数 L ( x , λ , u ) L(x,\lambda,u) L(x,λ,u),这一般通过添加一些线性…

java telnet端口_Java 实现 telnet命令 验证主机端口的连通性

Java 实现 telnet命令 验证主机端口的连通性 1、Telnet 命令 Telnet协议是TCP/IP协议族中的一员,是Internet远程登录服务的标准协议和主要方式。它为用户提供了在本地计算机上完成远程主机工作的能力。在终端使用者的电脑上使用telnet程序,用它连接到服务器。终端使用者可以在…

解决阿里云服务器telnet端口不成功的问题

问题还原 阿里服务器部署了一个API站点,端口为8079,本地电脑怎么telnet到这个端口都不成功 排查 防火墙 要么把防火墙全部关闭,或者配置入站出站规则,这里我是直接关闭服务器的防火墙 查看端口是否正常监听 确保系统内部必须…