1. 程式人生 > >QueryRunner類實現對資料庫表中資料的增刪改查以及八種結果集

QueryRunner類實現對資料庫表中資料的增刪改查以及八種結果集

update()方法實現增刪改

       QueryRunner的update方法 update(Connection conn, String sql, Object… params) 能夠實現對錶中資料的增刪改,返回int型別的數值,表示對資料表影響的行數。conn為傳入的Connection連線物件,sql為要執行的sql語句,Object… params為sql中的佔位符新增引數,可以傳入一個Object陣列或者直接傳入引數。

增加操作

	//QueryRunner的insert()方法
	public static void insert() throws SQLException{
		//建立queryrunner物件
		QueryRunner queryRunner = new QueryRunner();
		String sql = "INSERT INTO goods_class (gcname,gcdescribe)VALUES(?,?)";
		//建立object陣列
		Object[] params = {"張三","李四"};
		//執行queryrunner的插入方法
		int row = queryRunner.update(connection, sql, params);
	}

刪除操作

	//QueryRunner的delete()方法
	public static void delete() throws SQLException {
			//建立queryrunner物件
			QueryRunner queryRunner = new QueryRunner();
			String sql = "delete from goods_class where gcid = ?";
			int row = queryRunner.update(connection, sql, 6);
	}

修改操作

//QueryRunner的update()方法
public static void update() throws SQLException {
		//建立queryrunner物件
		QueryRunner queryRunner = new QueryRunner();
		String sql = "UPDATE goods_class SET gcname=? WHERE gcid=?";
		//建立object陣列
		Object[] params = {"王五",6};
		int row = queryRunner.update(connection, sql, params);
}

query()方法實現查詢

       QueryRunner中的query方法query(Connection conn, String sql, ResultSetHandler rsh, Object… params) 能夠對資料表中的資料進行查詢,返回一個結果集,在不同的情況下可以使用不同的結果集。conn為傳入的Connection連線物件,sql為要執行的sql語句,Object… params為sql中的佔位符新增引數,可以傳入一個Object陣列或者直接傳入引數,ResultSetHandler 為返回的結果集型別。

  • ArrayHandler
           返回一個物件陣列,這個物件陣列包含查詢結果的第一行資料。可用於查詢某一行資料。
public static void arrayHandler() throws SQLException {
		//1.建立queryrunner物件
		QueryRunner queryRunner = new QueryRunner();
		String sql = "SELECT * FROM goods_class";
		//呼叫queryrunner的query查詢方法
		Object[] result = queryRunner.query(connection, sql, new ArrayHandler());
		for(Object obj:result) {
			System.out.print(obj + " ");
		}
	}

       執行結果
執行結果描述

  • ArrayListHandler
           返回所有的物件陣列,每一個物件陣列包含一行的資料,並裝入列表中。
public static void arrayListHandlder() throws SQLException{
		//1.建立queryrunner物件
		QueryRunner queryRunner = new QueryRunner();
		String sql = "SELECT * FROM goods_class";
		//呼叫queryrunner的query查詢方法
		List<Object[]> result = queryRunner.query(connection, sql, new ArrayListHandler());
		for(Object[] objects:result) {
			for(Object object:objects) {
				System.out.print(object + "\t");
			}
			System.out.println();
		}
	}

       執行結果
執行結果

  • BeanHandler
           返回一個類例項物件,運用這個方法時,要先建立一個類,在這個類建立資料表中列名欄位,並提供get和set方法,必須提供無參構造器。該類例項物件的欄位資料為查詢資料的第一行資料。傳入形參為改類的類載入器。可用於查詢某一行資料。
public static void beanHandler() throws SQLException {
		//1.建立queryrunner物件
		QueryRunner queryRunner = new QueryRunner();
		String sql = "SELECT * FROM goods_class";
		//呼叫queryrunner的query查詢方法
		Good_class gc = queryRunner.query(connection, sql, new BeanHandler<Good_class>(Good_class.class));
		System.out.println(gc);
	}

       執行結果
執行結果

  • BeanListHandler
           返回所有類例項物件,並將這些物件裝入列表中。運用這個方法時,要建立一個類,在這個類建立資料表中列名欄位,並提供get和set方法,必須提供無參構造器。該類例項物件的欄位資料為查詢資料的一行資料。傳入形參為改類的類載入器。
public static void beanListHandler() throws SQLException{
		//1.建立queryrunner物件
		QueryRunner queryRunner = new QueryRunner();
		String sql = "SELECT * FROM goods_class";
		//呼叫queryrunner的query查詢方法
		List<Good_class> result = queryRunner.query(connection, sql, new BeanListHandler<Good_class>(Good_class.class));
		for(Good_class good_class:result) {
			System.out.println(good_class);
		}
	}

       執行結果執行結果

  • ColumnListHandler
           返回某一列的資料。如果查詢了多列資料,可以傳入形參,形參可以為列的索引或者為列名。
public static void columnListHandler() throws SQLException {
		//1.建立queryrunner物件
		QueryRunner queryRunner = new QueryRunner();
		String sql = "SELECT * FROM goods_class";
		//呼叫queryrunner的query查詢方法
		List<Object> result= queryRunner.query(connection, sql, new ColumnListHandler<Object>("gcname"));
		for (Object object : result) {
			System.out.println(object);
		}
	}

       執行結果
執行結果

  • ScalarHandler
           返回一個物件,可以用於查詢某列的值計算(如平均值,和,總次數等)或查詢表中的某個資料
public static void scalarListHandler() throws SQLException{
		//1.建立queryrunner物件
		QueryRunner queryRunner = new QueryRunner();
		String sql = "SELECT SUM(gcid) FROM goods_class";
		//呼叫queryrunner的query查詢方法
		Object object = queryRunner.query(connection, sql, new ScalarHandler<Object>());
		System.out.println(object);
	}

       執行結果
執行結果

  • MapHandler
           返回一個物件map,key為列名,value為該列資料,只含有查詢結果的第一行資料,可用於查詢某一行資料。
public static void mapHandler() throws SQLException{
		//1.建立queryrunner物件
		QueryRunner queryRunner = new QueryRunner();
		String sql = "SELECT * FROM goods_class";
		//呼叫queryrunner的query查詢方法
		Map<String,Object> result = queryRunner.query(connection, sql, new MapHandler());
		for(String key:result.keySet()) {
			System.out.println(key + "  " + result.get(key));
		}
	}

       執行結果
執行結果

  • MapListHandler 返回所有的物件map,key為列名,value為該列資料,並將map裝入列表中。
public static void mapListHandler() throws SQLException{
		//1.建立queryrunner物件
		QueryRunner queryRunner = new QueryRunner();
		String sql = "SELECT * FROM goods_class";
		//呼叫queryrunner的query查詢方法
		List<Map<String, Object>> result = queryRunner.query(connection, sql, new MapListHandler());
		for (Map<String, Object> map : result) {
			for(String key:map.keySet()) {
				System.out.print(key + "\t" + map.get(key) + "\t");
			}
			System.out.println();
		}
	}

       執行結果
執行結果