javaweb数据库操作
本文主要内容有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数据库操作相关推荐
- JavaWeb - 数据库,MySQL安装卸载,MySQL服务器存储结构,sql语言,使用sql操作数据库/数据库表/表中记录,聚集函数,分组操作,limit关键字,重置root密码
转载请注明出处:https://blog.csdn.net/mythmayor/article/details/72781451 1.数据库的简介 (1)什么是数据库,就是一个文件系统,使用标准sql ...
- Python的数据库操作(Sqlalchemy)
ORM 全称 Object Relational Mapping, 翻译过来叫对象关系映射.简单的说,ORM 将数据库中的表与面向对象语言中的类建立了一种对应关系.这样,我们要操作数据库,数据库中的表 ...
- 便捷,轻巧的Groovy数据库操作
本文主要介绍Groovy对数据的CRUD操作,熟悉groovy.sql包,测试使用的数据库是H2. 1.数据库连接配置 //数据库连接配置 def db = [url:'jdbc:h2:mem:gro ...
- Django模型之数据库操作-查询
六.数据库操作-查询 6.1基础条件查询 1 基本查询 get查询单一结果,如果不存在会抛出模型类.DoesNotExist异常. all查询多个结果.[返回的所有结果是列表] count查询结果数量 ...
- 命令行客户端MySQL基本命令的使用(登录、登出、数据库操作的SQL语句、表结构的SQL语句、表数据操作的SQL语句)
1. 登录和登出数据库 登录数据库: 输入下面命令: mysql -uroot -p 说明: -u 后面是登录的用户名 [写成-u root也是可以的] -p 后面是登录密码, 如果不填写, 回车之 ...
- .ne中的控制器循环出来的数据如何显示在视图上_Web程序设计-ASP.NET MVC4数据库操作实例...
ASP.NET MVC4数据库操作实例 之前文章介绍了MVC4与Pure框架结合进行的网页设计过程中如何定义控制器.方法.模型.视图等.并使用实例进行了简单说明.本文将在此基础上进一步说明如何使用MV ...
- oracle可以面向对象吗,Jbdc助手-数据库操作面向对象的实现(oracle)
前言: 如果你对hibernate不是那样的推崇,但感觉jdbc的sqlr操作又不是那么OO的话,那么这篇文章可能给能带来或多或少的期望- 在很长的一段时间里,中总感觉应该对sql的操作来实现一种集成 ...
- yii mysql数据库操作_Yii2数据库操作常用方法小结
本文实例讲述了Yii2数据库操作常用方法.分享给大家供大家参考,具体如下: 查询: // find the customers whose primary key value is 10 $custo ...
- mfc 访问局域网mysql_数据库操作:MFC连接与MYSQL
数据库操作:MFC连接与MYSQL mysql 与MFC通常情况下都是用ODBC或者是是ADO相连接,但有点伤 我直接找网上的教程,仿照着进行连接,试了n边还是只能连接上,但无法进行如图读取,写入的操 ...
最新文章
- mysql中迅速插入百万条测试数据的方法
- 算法(Algorithms)第4版 练习 1.3.11
- 0基础学python编程难吗-对于0基础的人,直接学 Python 编程合适吗?
- 自定义工作流任务控件
- spark on yarn
- android 中间凹背景_Android实现边缘凹凸的View
- 9W人脸清洗的问题--20170208
- oracle 对象仕途,“事业型”凤凰男为了仕途不顾家,妻子的选择让他措手不及...
- Rust: Rust 异步入门 (作者洋芋,来自Rust语言中文社区)
- hive3.1.2的下载及安装
- 电影推荐系统kaggle
- 使用正交表法设计测试用例
- python调用swmm程序_Python SWMM5包_程序模块 - PyPI - Python中文网
- APM 、PX4, PIXHAWK
- 两条波浪线符号_波浪线符号(word小技巧)
- mysql中status状态说明
- Ps 钢笔工具的使用
- IDT Source Code Running Guide(Linux+ffmpeg-0.11.1+opencv-2.4.2)
- 叮咚小区官网新闻已不更新
- IP 数据库,CSV 和 MDB 格式。
热门文章
- CTFshow 反序列化 web269
- Python进阶01 词典
- 贝叶斯分类器(Normal Bayes 分类器)
- pointPolygonTest函数
- 录取5秒钟的KNN取景效果gif(Opencv) Python实现
- 【解决方案】module 'cv2.cv2' has no attribute 'xfeatures2d'
- 【分布式】通过Numpy创建Dask.array
- 第二十三讲 狄拉克函数(冲激函数)(补充)
- 利用keepalived和haproxy配置mysql的高可用负载均衡
- 【Python之路】第五篇--Python基础之杂货铺