JDBC和DBUtils区别(查询时jdbc只能返回ResultSet需要po转vo,dbutils返回的BeanListHandler与BeanHandler对应集合与对象)
17:34 2013/6/7
JDBC
//添加客户
public void addNewCustomer(Customer c) throws DAOException {
Connection conn = null;
PreparedStatement pst = null;
try{
conn = JDBCUtils.getConnection();
pst = conn.prepareStatement("insert into customer values(?,?,?,?,?,?,?,?)");
//赋值
pst.setString(1, c.getCid());
pst.setString(2, c.getName());
pst.setString(3, c.getGender());
pst.setDate(4, new java.sql.Date(c.getBirthday().getTime()));
pst.setString(5,c.getCellphone());
pst.setString(6, c.getEmail());
pst.setString(7, c.getType());
pst.setString(8,c.getDescription());
//执行
pst.executeUpdate();
}catch(Exception ex){
throw new DAOException(ex);
}finally{
JDBCUtils.release(conn, pst, null);
}
}
查:
//查询所有客户
public List<Customer> findAllCustomer() throws DAOException {
List<Customer> list = new ArrayList<Customer>(); Connection conn = null;
PreparedStatement pst = null;
ResultSet rs = null;
try{
conn = JDBCUtils.getConnection();
pst = conn.prepareStatement("select * from customer");
rs = pst.executeQuery();
while(rs.next()){
//取每个客户
Customer c = new Customer();
c.setCid(rs.getString("cid"));
c.setName(rs.getString("name"));
c.setGender(rs.getString("gender"));
c.setBirthday(rs.getDate("birthday"));
c.setCellphone(rs.getString("cellphone"));
c.setEmail(rs.getString("email"));
c.setType(rs.getString("type"));
c.setDescription(rs.getString("description")); //放入集合
list.add(c);
}
}catch(Exception ex){
throw new DAOException(ex);
}finally{
JDBCUtils.release(conn, pst, rs);
} return list;
}
JDBC连接池DBUtils
增:
public void create(User user){
try {
// 1 核心对象
QueryRunner runner = new QueryRunner(JdbcUtils.getDataSource());
// 2 sql
String sql = "insert into user(id,username,password) values(?,?,?)";
// 3 准备数据
Object[] params = {user.getId(),user.getUsername(),user.getPassword()};
// 4 执行
runner.update(sql, params);
} catch (SQLException e) {
throw new RuntimeException(e.getMessage(), e);
}
}
查:
public User findByUsernameAndPassword(String username, String password) {
try {
QueryRunner runner = new QueryRunner(JdbcUtils.getDataSource()); String sql = "select * from user where username = ? and password = ?"; Object[] params = {username,password}; return runner.query(sql, new BeanHandler<User>(User.class) ,params);
} catch (SQLException e) {
throw new RuntimeException(e.getMessage(), e);
}
} }
JDBC和DBUtils区别(查询时jdbc只能返回ResultSet需要po转vo,dbutils返回的BeanListHandler与BeanHandler对应集合与对象)的更多相关文章
- jdbc中的Statement对象和Preparedstatement对象的区别,以及通过jdbc操作调用存储过程
一. java.sql.* 和 javax.sql.*的包的类结构 |- Driver接口: 表示java驱动程序接口.所有的具体的数据库厂商要来实现此接口. |- connect(url, p ...
- JDBC之PreparedStatement模糊查询
今天要做一个关于模糊查询的需求,以前用JDBC做精确查询都是用 "SELECT * FROM test WHERE id = ?",所以用模糊查询时理所当然的也用了"SE ...
- JDBC 连接mysql获取中文时的乱码问题
前段时间学习JDBC,要连接mysql获取数据.按照老师的样例数据,要存一些名字之类的信息,用的都是英文名,我当时就不太想用英文,就把我室友的名字存了进去,嘿嘿,结果,出问题了. 连接数据库语句: s ...
- 详解JDBC与Hibernate区别
详解JDBC与Hibernate区别 引用地址:http://www.cnblogs.com/JemBai/archive/2011/04/13/2014940.html 刚开始学习JAVA时,认为H ...
- 尝试通过 JDBC 将 UTF-8 插入 MySQL 时出现“乱码”
这是我的连接设置方式: Connection conn = DriverManager.getConnection(url + dbName + "?useUnicode=true& ...
- 当没有用 EXISTS 引入子查询时,在选择列表中只能指定一个表达式。
当没有用 EXISTS 引入子查询时,在选择列表中只能指定一个表达式.比如 select * from T_Employee where FNumber not in ( select top 5* ...
- com.mysql.jdbc.Driver 和 com.mysql.cj.jdbc.Driver的区别 serverTimezone设定
转自: http://blog.csdn.net/superdangbo/article/details/78732700 com.mysql.jdbc.Driver 和 com.mysql.cj.j ...
- 使用JDBC从数据库中查询数据的方法
* ResultSet 结果集:封装了使用JDBC 进行查询的结果 * 1. 调用Statement 对象的 executeQuery(sql) 方法可以得到结果集 * 2. ResultSet 返回 ...
- JDBC编程之数据查询
----------------siwuxie095 JDBC 编程之数据查询 首先下载 MySQL 的 JDBC 驱动 ...
随机推荐
- JSP的三种类型的元素
JSP有三种类型的元素:指令元素(directive element).行为元素(action element).和脚本元素(script element). 指令元素用于指定整个JSP页面的相关信息 ...
- GitHub帮助文档翻译2——contribution
工欲善其事必先利其器 ,都不知道 GitHub到底是什么,还怎么玩?因为总是会读了第一句就忘了下一句,形成不了感觉,所以希望把读GitHub的帮助文档都翻译出来,总是看大段大段的东西,谁都会懵圈的.希 ...
- rails 项目部署中 nginx 报错及解决方法
错误1 1. 报403错误,是因为启动nginx的用户默认是nobody,没有对项目目录的访问权限. user myName; worker_processes ; 错误2 2. 报404错误,是因为 ...
- logstash-input-file 参数说明
参数 close_older close_older: # This has different implications depending on if a file is being tailed ...
- ASP保存远程图片文件到本地代码
<% Function SaveRemoteFile(LocalFileName,RemoteFileUrl) SaveRemoteFile=True dim Ads,Retrieval,Get ...
- Ubuntu 16.04 - 64bit 访问Windows磁盘报错 he NTFS partition is in an unsafe state. Please resume and shutdown Windows fully (no hibernation ...
今天在打开某个磁盘时,突然报错,报错信息如下 原因:Windows 未正常关闭,导致系统误以为存在临时缓存文件 解决方法: http://www.linuxidc.com/Linux/2014-05/ ...
- activity调用finish方法理解
/** * Call this when your activity is done and should be closed. The * ActivityResult is propagated ...
- Android的自动对焦
1,什么是自动对焦? ---安卓的自动对焦的概念是指能够在指定的位置计算出准确的焦点位置. 这个就好像是传统意义上的手动对焦.但是google是这个意思. 2.什么是追焦? ----安卓的追焦是指FO ...
- Js替换地址栏参数
开了博客竟然有9个月没在来写过了.真是惭愧.今天需要用到一个用js替换地址栏参数的的功能.就自己用JS自己写了一个简单的函数.贴出来仅供大家参考.代码都写了注释.如下: /* js替换URL参数值,无 ...
- oracle学习(1)
1.安装完oracle数据库后,远程第一次无法登陆,需要进入sys用户后,更改以此后才有效. 2.TNS去读取配置的时候,如果在环境变量中已经配置了 TNS_ADMIN 后,则直接从此目录下读取. 3 ...