最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

JavaWeb?使用DBUtils實現增刪改查方式

 更新時間:2021年12月04日 09:20:55   作者:「已注銷」  
這篇文章主要介紹了JavaWeb?使用DBUtils實現增刪改查方式,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教

JavaWeb 使用DBUtils實現增刪改查

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";
		// 調用方法
		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=?";
		// 調用方法
		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 (?,?)";
		// 調用方法
		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=?";
		// 調用方法
		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=?";
		// 調用方法
		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();
	}
}

以上代碼由多個測試函數組成,依次為:插入、修改、刪除、根據id查詢、查詢所有

4、執(zhí)行測試類

1.數據表user原始數據如下:

執(zhí)行后結果如下:

之中插入和刪除都是針對第四個數據進行的操作,所以沒有顯現

Java DBUtils技術訪問數據庫

DBUtils

Dbutils是操作數據庫的組件,對傳統(tǒng)操作數據庫的類進行二次封裝,可以把結果集轉化成List。

介紹

DBUtils相對以往的連接數據庫得到結果集的模式,代碼更加簡潔,訪問更加迅速,這里我對一個我自級設計的Cuisine表做一個簡單的例子。

Cuisine表

對數據庫的查詢語句的代碼

對已有的菜系表Cuisine查找對應菜系編號cuid的全部數據.

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、實現數據查詢的方法

// 實現數據查詢
	public Cuisine getCuisine(Cuisine cu) {//得到對應菜系的信息
		// 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;
	}

以上為個人經驗,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關文章

  • 分享Java8中通過Stream對列表進行去重的實現

    分享Java8中通過Stream對列表進行去重的實現

    本文主要介紹了分享Java8中通過Stream對列表進行去重的實現,包括兩種方法,具有一定的參考價值,感興趣的可以了解一下
    2023-11-11
  • Java實現自定義LinkedList類的示例代碼

    Java實現自定義LinkedList類的示例代碼

    LinkedList類跟ArrayList類不同,它通過指針以及結點的操作對鏈表進行增刪改查。本文就來和大家分享下Java如何為實現自定義LinkedList類,需要的可以參考一下
    2022-08-08
  • java數據結構與算法之插入算法實現數值排序示例

    java數據結構與算法之插入算法實現數值排序示例

    這篇文章主要介紹了java數據結構與算法之插入算法實現數值排序的方法,結合簡單實例形式分析了插入算法的節(jié)點操作與排序相關實現技巧,需要的朋友可以參考下
    2016-08-08
  • java如何使用正則表達式限制特殊字符的個數

    java如何使用正則表達式限制特殊字符的個數

    這篇文章主要介紹了java如何使用正則表達式限制特殊字符的個數,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-11-11
  • mybatis模糊查詢之bind標簽和concat函數用法詳解

    mybatis模糊查詢之bind標簽和concat函數用法詳解

    大家都知道bind 標簽可以使用 OGNL 表達式創(chuàng)建一個變量井將其綁定到上下文中,接下來通過本文給大家介紹了mybatis模糊查詢——bind標簽和concat函數用法,需要的朋友可以參考下
    2022-08-08
  • java配置多個過濾器優(yōu)先級以及幾個常用過濾器操作

    java配置多個過濾器優(yōu)先級以及幾個常用過濾器操作

    這篇文章主要介紹了java配置多個過濾器優(yōu)先級以及幾個常用過濾器的操作,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-07-07
  • Java面試題之HashSet的實現原理

    Java面試題之HashSet的實現原理

    這篇文章主要介紹了Java面試題之HashSet的實現原理,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2020-01-01
  • java循環(huán)刪除List元素報錯的原因分析與解決

    java循環(huán)刪除List元素報錯的原因分析與解決

    大家在工作中應該都會遇到從List集合中刪除某一個或多個元素的業(yè)務場景,相信大家都會避開在循環(huán)里面刪除元素,使用其他方式處理,這是為什么呢,下面小編就來和大家詳細聊聊
    2023-11-11
  • Springboot詳解RocketMQ實現廣播消息流程

    Springboot詳解RocketMQ實現廣播消息流程

    RocketMQ作為一款純java、分布式、隊列模型的開源消息中間件,支持事務消息、順序消息、批量消息、定時消息、消息回溯等,本篇我們了解如何實現廣播消息
    2022-06-06
  • springboot中的RestTemplate使用詳解

    springboot中的RestTemplate使用詳解

    這篇文章主要介紹了springboot中的RestTemplate使用詳解,RestTemplate繼承自InterceptingHttpAccessor并且實現了RestOperations接口,其中RestOperations接口定義了基本的RESTful操作,這些操作在RestTemplate中都得到了實現,需要的朋友可以參考下
    2023-09-09

最新評論

磐安县| 承德市| 渑池县| 沿河| 建湖县| 大渡口区| 石嘴山市| 安阳市| 醴陵市| 巩留县| 永昌县| 双城市| 梓潼县| 同江市| 房产| 视频| 彝良县| 清远市| 弋阳县| 沛县| 罗平县| 监利县| 稷山县| 新兴县| 乌审旗| 景宁| 抚州市| 林口县| 吴忠市| 永登县| 奉化市| 盐山县| 香河县| 呼伦贝尔市| 山东省| 隆德县| 刚察县| 淮滨县| 临沭县| 扬中市| 玉山县|