package com.test.dbutil;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.List;
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 com.mysql.jdbc.jdbc2.optional.MysqlDataSource;
public class UserDaoImpl implements UserDao {
public DataSource getDataSource(){
String url = "jdbc:mysql://127.0.0.1:3306/testdbutils";
MysqlDataSource ds = new MysqlDataSource();
ds.setServerName("127.0.0.1");
// ds.setDatabaseName("testdbutils");
ds.setURL(url);
ds.setUser("root");
ds.setPassword("123456");
ds.setCharacterEncoding("utf8");
return ds;
}
public BeanListHandler<User> getBeanListHandler(){
return new BeanListHandler<User>(User.class);
}
public BeanHandler<User> getBeanHandler(){
return new BeanHandler<User>(User.class);
}
public void delete(int id) {
QueryRunner runner = new QueryRunner(getDataSource());
try {
int affectedRows = runner.update("delete from user where id = ?",id);
System.out.println("删除成功,影响的行数:"+affectedRows);
} catch (SQLException e) {
System.out.println("删除id为"+id+"的记录失败。错误为:"+e.getMessage());
}
}
public void delete(User user) {
delete(user.getId());
}
public List<User> getAllUsers() {
QueryRunner runner = new QueryRunner(getDataSource());
try {
return runner.query("select * from user", getBeanListHandler());
} catch (SQLException e) {
e.printStackTrace();
return null;
}
}
public User getById(int id) {
QueryRunner runner = new QueryRunner(getDataSource());
User user = null;
try {
user = runner.query("select * from user where id = ?", getBeanHandler(),id);
} catch (SQLException e) {
e.printStackTrace();
}
return user;
}
public void save(User user) {
QueryRunner runner = new QueryRunner(getDataSource());
try {
runner.update("insert into user values(?,?,?,?,?)",new Object[]{
user.getId(),
user.getName(),
user.getAge(),
user.getSex(),
user.getBirth()
});
} catch (SQLException e) {
System.out.println("插入失败,失败原因:"+e.getMessage());
}
}
public long getCount() {
QueryRunner runner = new QueryRunner(getDataSource());
try {
Long count = runner.query("select count(*) as count from user", new ResultSetHandler<Long>(){
public Long handle(ResultSet rs) throws SQLException {
if(rs.next()){
return rs.getLong(1); //或者rs.getLong("count");
}
return 0L;
}
});
//或者用ScalarHandler, 这里的new ScalarHandler() 可以加上“count”参数
// Long count = (Long)runner.query("select count(*) as count from user",new ScalarHandler(){
//
// @Override
// public Object handle(ResultSet rs) throws SQLException {
// return super.handle(rs);
// }
//
// });
return (Long)count;
} catch (SQLException e) {
e.printStackTrace();
return 0L;
}
}
}
如果什么框架都不想用,那就最基础的jdbc吧,简单封装下。
分享到:
相关推荐
DBUtils的核心类包括`org.apache.commons.dbutils.DbUtils`、`org.apache.commons.dbutils.QueryRunner`以及一个接口`org.apache.commons.dbutils.ResultSetHandler`。下面我们将详细探讨这些类和接口的功能。 1. `...
Apache DBUtils 是一个轻量级的 Java 数据库连接(JDBC)工具,它提供了一些实用功能,简化了数据库操作。DBUtils 最主要的功能是对 JDBC 结果集进行封装,能够将查询结果直接转换为 JavaBean 对象,从而减轻开发...
Apache DBUtils是一个基于Java的开源库,它提供了一种简单且有效的处理数据库连接的方法,减少了在应用程序中编写数据库操作代码的复杂性。DBUtils的主要设计目标是简化数据库访问,通过提供一套实用工具来处理常见...
Apache DbUtils是一个由Apache软件基金会开发的开源Java库,它主要设计用于简化JDBC(Java Database Connectivity)操作。DbUtils库提供了一套实用工具方法,能够帮助开发者更高效、更安全地执行数据库操作,避免了...
这个是Apache DbUtils 1.5 API,是我根据官方的制作的
该项目是一款基于Spring MVC框架和Apache Dbutils集成的图形化模板定制工具,旨在实现一键化自动生成Model、DAO、Service代码及Spring Web配置文件。该工具采用Freemarker模板语言进行代码生成,支持事务控制,并...
Apache DBUtils是一个开源的Java库,它为数据库操作提供了一个简单且有效的工具集。这个库是基于Apache Commons项目的一部分,旨在简化Java应用程序与数据库之间的交互。DBUtils的主要目标是通过处理许多常见的...
commons-dbutils是Apache组织提供的一个开源JDBC工具类库,它是对JDBC的简单封装,学习成本极低,并且使用dbutils能极大简化jdbc编码的工作量,同时也不会影响程序的性能。 springmvc与springmvc 整合demo
基于springmvc 、SpringBoot与apache dbutils整合的SWT、JFACE实现自动生成 model、dao、service代码 以及配置文件,并实现了事务。此工具源码请关注https://gitee.com/00fly/springmvc_dbutils_plus
Springmvc、Apache Dbutils、SpringBoot、Mybatis、MybatisPlus、SpringDataJPA等技术项目代码生成工具,此工具源码请关注https://gitee.com/00fly/javacode-all-in-one
commons-dbutils是Apache组织提供的一个开源JDBC工具类库,它是对JDBC的简单封装,学习成本极低,并且使用dbutils能极大简化jdbc编码的工作量,同时也不会影响程序的性能。因此dbutils成为很多不喜欢hibernate的公司...
Apache DBUtils是一个轻量级的Java数据库连接工具框架,它为开发者提供了简洁、高效且可靠的数据库操作API。DBUtils的主要目标是简化Java应用程序中的数据库访问,通过减少代码量和异常处理,让开发者能够更加专注于...
Apache Commons DbUtils 1.6 API 是一个Java库,它为数据库操作提供了简化的、异常安全的工具。这个API设计的目的是为了简化JDBC(Java Database Connectivity)编程,减轻开发人员处理数据库连接、事务和结果集时的...
Apache DBUtils是一个开源的Java库,它为Java应用程序提供了简单且有效的数据库连接管理。这个工具包简化了JDBC(Java Database Connectivity)的使用,通过提供一个健壮且易于使用的抽象层,使得数据库操作变得更加...
Apache DBCP,工具亲测有效,=================================================================================
Apache DbUtils是Apache软件基金会开发的一个轻量级Java数据库操作工具库,主要目的是简化数据库的交互,使得开发者能够更高效地处理SQL操作。DbUtils 1.6版本是该库的一个较新版本,包含了丰富的API和功能,尤其...
首先,`dbutils`是Apache软件基金会提供的一个开源项目,它基于Java,提供了简单易用的API,使得开发者可以便捷地执行SQL语句,处理结果集,实现了对数据库的基本操作。它的核心组件包括QueryRunner和DBUtils,其中...
apache commons dbutils api_zh
使用了Apache Commons DbUtils库中的类和方法封装JDBC,使用了org.apache.commons.dbutils.QueryRunner、org.apache.commons.dbutils.handlers.BeanHandler和org.apache.commons.dbutils.handlers.BeanListHandler等...
DBUtils是Apache Commons库中的一个组件,它提供了一套简单易用的数据库操作API,用于简化Java中的数据库访问。在本项目中,你将找到一个自己编写的简易DBUtils实现,虽然它不是Apache官方的DBUtils,但其设计思想和...