日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

javaweb数据库操作

發布時間:2025/4/9 数据库 35 豆豆
生活随笔 收集整理的這篇文章主要介紹了 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

《新程序員》:云原生和全面數字化實踐50位技術專家共同創作,文字、視頻、音頻交互閱讀

總結

以上是生活随笔為你收集整理的javaweb数据库操作的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。