JavaWeb?使用DBUtils實現(xiàn)增刪改查方式
JavaWeb 使用DBUtils實現(xiàn)增刪改查
1、創(chuàng)建C3p0Utils類
創(chuàng)建cn.itcast.jdbc.utils包
代碼如下:
package cn.itcast.jdbc.utils; import javax.sql.DataSource; import com.mchange.v2.c3p0.ComboPooledDataSource; public class C3p0Utils { private static DataSource ds; static { ds = new ComboPooledDataSource(); } public static DataSource getDataSource() { return ds; } }
2、創(chuàng)建DBUtilsDao類
在src目錄下,創(chuàng)建一個cn.itcast.jdbc.demo的包,在該包下創(chuàng)建一個DBUtilsDao類
代碼如下:
package cn.itcast.jdbc.demo; import java.sql.SQLException; import java.util.List; import org.apache.commons.dbutils.QueryRunner; import org.apache.commons.dbutils.handlers.BeanHandler; import org.apache.commons.dbutils.handlers.BeanListHandler; import cn.itcast.chapter10.example.User; import cn.itcast.jdbc.utils.C3p0Utils; public class DBUtilsDao { // 查詢所有,返回List集合 public List findAll() throws SQLException { // 創(chuàng)建QueryRunner對象 QueryRunner runner = new QueryRunner(C3p0Utils.getDataSource()); // 寫SQL語句 String sql = "select * from user"; // 調(diào)用方法 List list = (List) runner.query(sql, new BeanListHandler(User.class)); return list; } // 查詢單個,返回對象 public User find(int id) throws SQLException { // 創(chuàng)建QueryRunner對象 QueryRunner runner = new QueryRunner(C3p0Utils.getDataSource()); // 寫SQL語句 String sql = "select * from user where id=?"; // 調(diào)用方法 User user = (User) runner.query(sql, new BeanHandler(User.class), new Object[] { id }); return user; } // 添加用戶的操作 public Boolean insert(User user) throws SQLException { // 創(chuàng)建QueryRunner對象 QueryRunner runner = new QueryRunner(C3p0Utils.getDataSource()); // 寫SQL語句 String sql = "insert into user (name,password) values (?,?)"; // 調(diào)用方法 int num = runner.update(sql, new Object[] { user.getName(), user.getPassword() }); if (num > 0) return true; return false; } // 修改用戶的操作 public Boolean update(User user) throws SQLException { // 創(chuàng)建QueryRunner對象 QueryRunner runner = new QueryRunner(C3p0Utils.getDataSource()); // 寫SQL語句 String sql = "update user set name=?,password=? where id=?"; // 調(diào)用方法 int num = runner.update(sql, new Object[] { user.getName(), user.getPassword(),user.getId() }); if (num > 0) return true; return false; } // 刪除用戶的操作 public Boolean delete(int id) throws SQLException { // 創(chuàng)建QueryRunner對象 QueryRunner runner = new QueryRunner(C3p0Utils.getDataSource()); // 寫SQL語句 String sql = "delete from user where id=?"; // 調(diào)用方法 int num = runner.update(sql, id); if (num > 0) return true; return false; } }
3、創(chuàng)建測試類
在cn.itcast.jdbc.demo包中創(chuàng)建測試類DBUtilsDaoTest類
代碼如下:
package cn.itcast.jdbc.demo; import java.sql.SQLException; import java.util.List; import cn.itcast.chapter10.example.User; public class DBUtilsDaoTest1 { private static DBUtilsDao dao = new DBUtilsDao(); public static void testInsert() throws SQLException { User user = new User(); user.setName("zhaoliu"); user.setPassword("666666"); boolean b = dao.insert(user); System.out.println("testInsert:"+b); } public static void testupdate() throws SQLException { User user = new User(); user.setName("zhaoqi"); user.setPassword("666777"); user.setId(1); boolean b = dao.update(user); System.out.println("testupdate:"+b); } public static void testdelete() throws SQLException { boolean b = dao.delete(4); System.out.println("testdelete:"+b); } public static void testfindById() throws SQLException { User user = dao.find(2); System.out.println(user.getId() + "," + user.getName() + "," + user.getPassword()); } public static void testfindAll() throws SQLException { List<User> list = dao.findAll(); for(User user : list) { System.out.println(user.getId() + "," + user.getName() + "," + user.getPassword()); } } public static void main(String[] args) throws SQLException { testInsert(); testupdate(); testdelete(); testfindById(); testfindAll(); } }
以上代碼由多個測試函數(shù)組成,依次為:插入、修改、刪除、根據(jù)id查詢、查詢所有
4、執(zhí)行測試類
1.數(shù)據(jù)表user原始數(shù)據(jù)如下:
執(zhí)行后結(jié)果如下:
之中插入和刪除都是針對第四個數(shù)據(jù)進行的操作,所以沒有顯現(xiàn)
Java DBUtils技術(shù)訪問數(shù)據(jù)庫
DBUtils
Dbutils是操作數(shù)據(jù)庫的組件,對傳統(tǒng)操作數(shù)據(jù)庫的類進行二次封裝,可以把結(jié)果集轉(zhuǎn)化成List。
介紹
DBUtils相對以往的連接數(shù)據(jù)庫得到結(jié)果集的模式,代碼更加簡潔,訪問更加迅速,這里我對一個我自級設(shè)計的Cuisine表做一個簡單的例子。
對數(shù)據(jù)庫的查詢語句的代碼
對已有的菜系表Cuisine查找對應(yīng)菜系編號cuid的全部數(shù)據(jù).
1、菜系表的實體類
// 菜系表的實體類 public class Cuisine { private static final long serialVersionUID = 1L; private int cuid; private String cuname; public Cuisine() { super(); // TODO Auto-generated constructor stub this.cuid = 0; this.cuname = ""; } public Cuisine(int cuid, String cuname) { super(); this.cuid = cuid; this.cuname = cuname; } public int getCuid() { return cuid; } public void setCuid(int cuid) { this.cuid = cuid; } public String getCuname() { return cuname; } public void setCuname(String cuname) { this.cuname = cuname; } @Override public String toString() { return "Cuisine [cuid=" + cuid + ", cuname=" + cuname + "]"; } }
2、實現(xiàn)數(shù)據(jù)查詢的方法
// 實現(xiàn)數(shù)據(jù)查詢 public Cuisine getCuisine(Cuisine cu) {//得到對應(yīng)菜系的信息 // TODO Auto-generated method stub QueryRunner queryRunner = new QueryRunner(); if(cu.getCuid() != 0){ String sql = "select * from cuisine where cuid = ?"; try { return queryRunner.query(DBUtilsPro.getConnection(),sql,cu.getCuid(),new BeanHandler(Cuisine.class)); } catch (SQLException e) { // TODO Auto-generated catch block e1.printStackTrace(); } } return null; }
以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
SpringCloud 搭建企業(yè)級開發(fā)框架之實現(xiàn)多租戶多平臺短信通知服務(wù)(微服務(wù)實戰(zhàn))
這篇文章主要介紹了SpringCloud 搭建企業(yè)級開發(fā)框架之實現(xiàn)多租戶多平臺短信通知服務(wù),系統(tǒng)可以支持多家云平臺提供的短信服務(wù)。這里以阿里云和騰訊云為例,集成短信通知服務(wù),需要的朋友可以參考下2021-11-11Spring MVC實現(xiàn)mysql數(shù)據(jù)庫增刪改查完整實例
這篇文章主要介紹了Spring MVC實現(xiàn)mysql數(shù)據(jù)庫增刪改查完整實例,從創(chuàng)建一個web項目開始,分享了項目結(jié)構(gòu)以及具體Java代碼和前端頁面等相關(guān)內(nèi)容,具有一定借鑒價值,需要的朋友可以了解下。2017-12-12java 驗證用戶是否已經(jīng)登錄與實現(xiàn)自動登錄方法詳解
本文主要介紹了java 驗證用戶是否已經(jīng)登錄與實現(xiàn)自動登錄的方法。具有一定的參考價值,下面跟著小編一起來看下吧2017-01-01Java+MySQL實現(xiàn)設(shè)計優(yōu)惠券系統(tǒng)
這篇文章主要介紹了Java+MySQL實現(xiàn)設(shè)計優(yōu)惠券系統(tǒng),文章基于Java與MySQL的相關(guān)資料展開詳細的內(nèi)容介紹,具有一定的參考價值,需要的小伙伴可以參考一下2022-05-05