网站后台密码错误,导航 网站 分析,wordpress菜鸟教程,百度广告搜索引擎本文主要内容有C3P0数据库连接池#xff0c;dbutils的使用#xff0c;元数据的应用
在对数据库进行增删改查时#xff0c;使用数据库连接池可以有效的提高效率#xff0c;节省资源#xff0c;C3P0是Apache组织提供的一个有效方式
C3P0的XML配置文件#xff0c;文件名必…本文主要内容有C3P0数据库连接池dbutils的使用元数据的应用
在对数据库进行增删改查时使用数据库连接池可以有效的提高效率节省资源C3P0是Apache组织提供的一个有效方式
C3P0的XML配置文件文件名必须c3p0config.xml路径必须与类相同
?xml version1.0 encodingutf-8?
c3p0-configdefault-configproperty namedriverClasscom.mysql.jdbc.Driver/propertyproperty namejdbcUrljdbc:mysql:///estore/propertyproperty nameuserestore/propertyproperty namepasswordestore/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 runnernew 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 sqldelete 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 BeanHandlerOrder(Order.class),p2_Order);}catch (Exception e) {e.printStackTrace();throw new RuntimeException(e);}}
BeanListHandler
public ListSaleInfo saleList() {// TODO 自动生成的方法存根String sql select products.id prod_id,products.name prod_name,sum(orderitem.buynum ) sale_num from orders ,orderitem ,products where orders.idorderitem.order_id and orderitem.product_idproducts.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 BeanListHandlerSaleInfo(SaleInfo.class));}catch (Exception e) {e.printStackTrace();throw new RuntimeException(e);}}
元数据
当在JSP与Servlet中传递的参数过多时元数据配合javabean可以有效的简化书写
//封装数据较验数据User usernew User();BeanUtils.populate(user, request.getParameterMap());user.setPassword(MD5Utils.md5(user.getPassword()));
需要导入commons-beanutils.jar
javaweb数据库的基本操作完成