本文主要内容有C3P0数据库连接池,dbutils的使用,元数据的应用

在对数据库进行增删改查时,使用数据库连接池可以有效的提高效率,节省资源,C3P0是Apache组织提供的一个有效方式

C3P0的XML配置文件,文件名必须c3p0config.xml,路径必须与类相同

<?xml version="1.0" encoding="utf-8"?>
<c3p0-config><default-config><property name="driverClass">com.mysql.jdbc.Driver</property><property name="jdbcUrl">jdbc:mysql:///estore</property><property name="user">estore</property><property name="password">estore</property></default-config>
</c3p0-config>

以上分别为设置JDBC,数据库名称,用户名和密码,注意文件名是固定的,必须导入C3P0的jar包

数据库连接类的书写

public class DaoUtils {private static DataSource source = new ComboPooledDataSource();private DaoUtils() {}public static DataSource getSource(){return source;}public static Connection getConn(){try {return source.getConnection();} catch (SQLException e) {e.printStackTrace();throw new RuntimeException(e);}}
}

以上提供了两个静态方法,分别返回数据源和连接

利用DBUtils对数据库的增删改查,需要导入Commons-dbutils.jar

插入数据

public class OrderDaoImpl implements OrderDao {@Overridepublic void addOrder(Order order) {// TODO 自动生成的方法存根String sql = "insert into orders values (?,?,?,?,null,?)";try {QueryRunner runner=new QueryRunner(DaoUtils .getSource());runner.update(sql,order.getId(),order.getMoney(),order.getReceiverinfo(),order.getPaystate(),order.getUser_id());} catch (Exception e) {// TODO: handle exceptione.printStackTrace();throw new RuntimeException(e);}}

删除数据

public void delOrderItem(String id) {// TODO 自动生成的方法存根String sql="delete from orderitem where order_id = ?";try {QueryRunner runner = new QueryRunner(DaoUtils .getSource());runner.update(sql,id);} catch (Exception e) {// TODO: handle exceptione.printStackTrace();throw new RuntimeException(e);}}

更新修改数据

public void updateState(int id) {// TODO 自动生成的方法存根String sql = "update users set state = 1 where id=?";try{QueryRunner runner = new QueryRunner(DaoUtils .getSource());runner.update(sql,id);}catch (Exception e) {e.printStackTrace();throw new RuntimeException(e);}   }

查找数据,查找数据可以分为查找单个数据和查找列表数据,其中分别用BeanHandler接口与BeanListHandler接口实现

BeanHandler

public Order findOrderById(String p2_Order) {// TODO 自动生成的方法存根String sql = "select * from orders where id = ?";try{QueryRunner runner = new QueryRunner(DaoUtils .getSource());return runner.query(sql, new BeanHandler<Order>(Order.class),p2_Order);}catch (Exception e) {e.printStackTrace();throw new RuntimeException(e);}}

BeanListHandler

public List<SaleInfo> saleList() {// TODO 自动生成的方法存根String sql = " select products.id prod_id,products.name prod_name,sum(orderitem.buynum ) sale_num"+" from orders ,orderitem ,products "+" where "+" orders.id=orderitem.order_id "+" and "+" orderitem.product_id=products.id"+" and orders.paystate = 1"+" group by products.id"+" order by sale_num desc";try{QueryRunner runner  = new QueryRunner(DaoUtils .getSource());return runner.query(sql, new BeanListHandler<SaleInfo>(SaleInfo.class));}catch (Exception e) {e.printStackTrace();throw new RuntimeException(e);}}

元数据

当在JSP与Servlet中传递的参数过多时,元数据配合javabean可以有效的简化书写

//封装数据较验数据User user=new User();BeanUtils.populate(user, request.getParameterMap());user.setPassword(MD5Utils.md5(user.getPassword()));

需要导入commons-beanutils.jar

javaweb数据库的基本操作完成

转载于:https://www.cnblogs.com/jjx2013/p/6223739.html

javaweb数据库操作相关推荐

  1. JavaWeb - 数据库,MySQL安装卸载,MySQL服务器存储结构,sql语言,使用sql操作数据库/数据库表/表中记录,聚集函数,分组操作,limit关键字,重置root密码

    转载请注明出处:https://blog.csdn.net/mythmayor/article/details/72781451 1.数据库的简介 (1)什么是数据库,就是一个文件系统,使用标准sql ...

  2. Python的数据库操作(Sqlalchemy)

    ORM 全称 Object Relational Mapping, 翻译过来叫对象关系映射.简单的说,ORM 将数据库中的表与面向对象语言中的类建立了一种对应关系.这样,我们要操作数据库,数据库中的表 ...

  3. 便捷,轻巧的Groovy数据库操作

    本文主要介绍Groovy对数据的CRUD操作,熟悉groovy.sql包,测试使用的数据库是H2. 1.数据库连接配置 //数据库连接配置 def db = [url:'jdbc:h2:mem:gro ...

  4. Django模型之数据库操作-查询

    六.数据库操作-查询 6.1基础条件查询 1 基本查询 get查询单一结果,如果不存在会抛出模型类.DoesNotExist异常. all查询多个结果.[返回的所有结果是列表] count查询结果数量 ...

  5. 命令行客户端MySQL基本命令的使用(登录、登出、数据库操作的SQL语句、表结构的SQL语句、表数据操作的SQL语句)

    1. 登录和登出数据库 登录数据库: 输入下面命令: mysql -uroot -p 说明: -u 后面是登录的用户名  [写成-u root也是可以的] -p 后面是登录密码, 如果不填写, 回车之 ...

  6. .ne中的控制器循环出来的数据如何显示在视图上_Web程序设计-ASP.NET MVC4数据库操作实例...

    ASP.NET MVC4数据库操作实例 之前文章介绍了MVC4与Pure框架结合进行的网页设计过程中如何定义控制器.方法.模型.视图等.并使用实例进行了简单说明.本文将在此基础上进一步说明如何使用MV ...

  7. oracle可以面向对象吗,Jbdc助手-数据库操作面向对象的实现(oracle)

    前言: 如果你对hibernate不是那样的推崇,但感觉jdbc的sqlr操作又不是那么OO的话,那么这篇文章可能给能带来或多或少的期望- 在很长的一段时间里,中总感觉应该对sql的操作来实现一种集成 ...

  8. yii mysql数据库操作_Yii2数据库操作常用方法小结

    本文实例讲述了Yii2数据库操作常用方法.分享给大家供大家参考,具体如下: 查询: // find the customers whose primary key value is 10 $custo ...

  9. mfc 访问局域网mysql_数据库操作:MFC连接与MYSQL

    数据库操作:MFC连接与MYSQL mysql 与MFC通常情况下都是用ODBC或者是是ADO相连接,但有点伤 我直接找网上的教程,仿照着进行连接,试了n边还是只能连接上,但无法进行如图读取,写入的操 ...

最新文章

  1. mysql中迅速插入百万条测试数据的方法
  2. 算法(Algorithms)第4版 练习 1.3.11
  3. 0基础学python编程难吗-对于0基础的人,直接学 Python 编程合适吗?
  4. 自定义工作流任务控件
  5. spark on yarn
  6. android 中间凹背景_Android实现边缘凹凸的View
  7. 9W人脸清洗的问题--20170208
  8. oracle 对象仕途,“事业型”凤凰男为了仕途不顾家,妻子的选择让他措手不及...
  9. Rust: Rust 异步入门 (作者洋芋,来自Rust语言中文社区)
  10. hive3.1.2的下载及安装
  11. 电影推荐系统kaggle
  12. 使用正交表法设计测试用例
  13. python调用swmm程序_Python SWMM5包_程序模块 - PyPI - Python中文网
  14. APM 、PX4, PIXHAWK
  15. 两条波浪线符号_波浪线符号(word小技巧)
  16. mysql中status状态说明
  17. Ps 钢笔工具的使用
  18. IDT Source Code Running Guide(Linux+ffmpeg-0.11.1+opencv-2.4.2)
  19. 叮咚小区官网新闻已不更新
  20. IP 数据库,CSV 和 MDB 格式。

热门文章

  1. CTFshow 反序列化 web269
  2. Python进阶01 词典
  3. 贝叶斯分类器(Normal Bayes 分类器)
  4. pointPolygonTest函数
  5. 录取5秒钟的KNN取景效果gif(Opencv) Python实现
  6. 【解决方案】module 'cv2.cv2' has no attribute 'xfeatures2d'
  7. 【分布式】通过Numpy创建Dask.array
  8. 第二十三讲 狄拉克函数(冲激函数)(补充)
  9. 利用keepalived和haproxy配置mysql的高可用负载均衡
  10. 【Python之路】第五篇--Python基础之杂货铺