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对应集合与对象)的更多相关文章

  1. jdbc中的Statement对象和Preparedstatement对象的区别,以及通过jdbc操作调用存储过程

    一. java.sql.*   和  javax.sql.*的包的类结构 |- Driver接口: 表示java驱动程序接口.所有的具体的数据库厂商要来实现此接口. |- connect(url, p ...

  2. JDBC之PreparedStatement模糊查询

    今天要做一个关于模糊查询的需求,以前用JDBC做精确查询都是用 "SELECT * FROM test WHERE id = ?",所以用模糊查询时理所当然的也用了"SE ...

  3. JDBC 连接mysql获取中文时的乱码问题

    前段时间学习JDBC,要连接mysql获取数据.按照老师的样例数据,要存一些名字之类的信息,用的都是英文名,我当时就不太想用英文,就把我室友的名字存了进去,嘿嘿,结果,出问题了. 连接数据库语句: s ...

  4. 详解JDBC与Hibernate区别

    详解JDBC与Hibernate区别 引用地址:http://www.cnblogs.com/JemBai/archive/2011/04/13/2014940.html 刚开始学习JAVA时,认为H ...

  5. 尝试通过 JDBC 将 UTF-8 插入 MySQL 时出现“乱码”

    这是我的连接设置方式: Connection conn = DriverManager.getConnection(url + dbName + "?useUnicode=true& ...

  6. 当没有用 EXISTS 引入子查询时,在选择列表中只能指定一个表达式。

    当没有用 EXISTS 引入子查询时,在选择列表中只能指定一个表达式.比如 select * from T_Employee where FNumber not in ( select top 5*  ...

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

  8. 使用JDBC从数据库中查询数据的方法

    * ResultSet 结果集:封装了使用JDBC 进行查询的结果 * 1. 调用Statement 对象的 executeQuery(sql) 方法可以得到结果集 * 2. ResultSet 返回 ...

  9. JDBC编程之数据查询

    ----------------siwuxie095                             JDBC 编程之数据查询             首先下载 MySQL 的 JDBC 驱动 ...

随机推荐

  1. VB.NET中使用代表对方法异步调用

    按照我们常规的思维方式,计算机应该是干完一件事,然后再干下一件.用术语来说,这种执行任务的方式叫做同步执行(Synchronous Execution).既然这样,那么为什么要引入异步执行的概念呢? ...

  2. angualrjs学习总结二(作用域、控制器、过滤器)

    一:Scope简介 Scope(作用域) 是应用在 HTML (视图) 和 JavaScript (控制器)之间的纽带.Scope 是一个对象,有可用的方法和属性.Scope 可应用在视图和控制器上. ...

  3. 【二分答案+贪心】UVa 1335 - Beijing Guards

    Beijing was once surrounded by four rings of city walls: the Forbidden City Wall, the Imperial City ...

  4. Centos 7中 vim 中文乱码

    参考:http://www.myexception.cn/operating-system/1534005.html 一. sudo vim /etc/vimrc 在文件中加入如下几行:      s ...

  5. 类结构体 与 byte[] 转换类

    public static class StructConvert { public static object BytesToStruct(byte[] bytes, Type strcutType ...

  6. oracle数据库不支持mysql中limit功能

    oracle数据库不支持mysql中limit功能,但可以通过rownum来限制返回的结果集的行数,rownum并不是用户添加的字段,而是oracle系统自动添加的. (1)使查询结果最多返回前10行 ...

  7. TFS2013 安装出现TF400102错误解决

    我是参照:http://www.cnblogs.com/zhibincai/archive/2013/11/25/3442285.html 进行安装的windows 2012 + sql 2012 S ...

  8. 在DataTable中添加行和列数据

    DataRow newRow = dtResult.NewRow(); newRow["ProName"] = "名字"; newRow["ProPr ...

  9. 20160503-spring入门2

    使用Spring需要的jar 到http://www.springsource.org/download下载spring,然后进行解压缩,在解压目录中找到下面jar文件,拷贝到类路径下 dist\sp ...

  10. [转]第一章 Windows Shell是什么 【来源:http://blog.csdn.net/wangqiulin123456/article/details/7987862】

    一个操作系统外壳的不错的定义是它是一个系统提供的用户界面,它允许用户执行公共的任务,如访问文件系统,导出执行程序,改变系统设置等.MS-DOS有一个Command.COM扮演着这个角色.然而Windo ...