javaweb数据库操作
生活随笔
收集整理的這篇文章主要介紹了
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数据库操作的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Tesseract 3.02 OCR文字
- 下一篇: Redis事件管理(三)