1. 程式人生 > 其它 >非常好用的 jdbc工具類 (mysql) 這你只有乾貨

非常好用的 jdbc工具類 (mysql) 這你只有乾貨

1.第一 放入jar包

在這裡插入圖片描述jar包一定放 在web-inf 的 lib 中 不然程式碼後面有可能回 報錯
在這裡插入圖片描述
然後吧 工具放入 在 util 包下 在這裡插入圖片描述

在這裡插入程式碼片
package com.blb.seven03;



import java.sql.SQLException;
import java.util.List;
import java.util.Map;

import org.apache.commons.dbutils.BasicRowProcessor;
import org.apache.commons.dbutils.GenerousBeanProcessor;
import
org.apache.commons.dbutils.QueryRunner; import org.apache.commons.dbutils.handlers.BeanHandler; import org.apache.commons.dbutils.handlers.BeanListHandler; import org.apache.commons.dbutils.handlers.MapHandler; import org.apache.commons.dbutils.handlers.MapListHandler; import com.alibaba.druid.pool.
DruidDataSource; public class DBUtils { // 要連線的驅動型別 private static final String DRIVER = "com.mysql.jdbc.Driver"; // 要連線的資料庫名 private static final String DATABASE = "blb_db" ; // 要連線的資料庫的使用者名稱 private static final String USER = "root"; // 要連線的資料庫的密碼 private static final String PWD =
"123456"; //要連線的URL private static final String URL = "jdbc:mysql://127.0.0.1:3306/"+DATABASE+"?useUnicode=true&characterEncoding=UTF-8"; //dbutils中查詢物件 private static QueryRunner runner ; static{ DruidDataSource ds = new DruidDataSource(); ds.setUrl(URL); ds.setUsername(USER); ds.setPassword(PWD); ds.setDriverClassName(DRIVER); runner = new QueryRunner(ds); } /** * 進行新增、修改、刪除操作 * @param sql 進行操作的SQL語句 * @param param 操作對應的引數,替代SQL中的佔位符 * @return SQL執行後受影響的行 */ public static int udpate(String sql ,Object... param ){ try { return runner.update(sql, param); } catch (SQLException e) { e.printStackTrace(); } return 0 ; } /** * 查詢1個物件封裝成Bean物件 * @param sql 進行操作的SQL語句 * @param clazz 結果封裝的Bean型別 * @param param 操作對應的引數,替代SQL中的佔位符 * @return SQL操作後的Bean物件,如果異常則返回null */ public static<T> T queryOneToBean(String sql, Class<T> clazz,Object... param ){ try { BasicRowProcessor brp = new BasicRowProcessor(new GenerousBeanProcessor()); return runner.query(sql, new BeanHandler<T>(clazz,brp),param); } catch (SQLException e) { e.printStackTrace(); } return null; } /** * 查詢只有1行結果的操作,結果封裝成Map * @param sql 進行操作的SQL語句 * @param param 操作對應的引數,替代SQL中的佔位符 * @return SQL操作後的1行內容封裝到Map中,如果異常則返回null */ public static Map<String,Object> queryOneToMap(String sql, Object... param ){ try { return runner.query(sql,new MapHandler(),param); } catch (SQLException e) { e.printStackTrace(); } return null; } /** * 有多行結果的查詢操作,結果封裝成List,元素為bean型別 * @param sql sql 進行操作的SQL語句 * @param clazz 結果封裝的Bean型別 * @param param 操作對應的引數,替代SQL中的佔位符 * @return SQL操作後的多行內容封裝到List中,如果異常則返回null */ public static<T> List<T> queryAllList(String sql, Class<T> clazz,Object... param ){ try { BasicRowProcessor brp = new BasicRowProcessor(new GenerousBeanProcessor()); return runner.query(sql, new BeanListHandler<T>(clazz,brp),param); } catch (SQLException e) { e.printStackTrace(); } return null; } /** * 查詢有多行結果的操作,結果封裝成List中,元素為map型別 * @param sql 進行操作的SQL語句 * @param param 操作對應的引數,替代SQL中的佔位符 * @return SQL操作後的多行內容封裝到List中,如果異常則返回null */ public static List<Map<String,Object>> queryAllMap(String sql, Object... param ){ try { return runner.query(sql,new MapListHandler(),param ); } catch (SQLException e) { e.printStackTrace(); } return null; } }

將 DATABASE 改成 自己的庫名 即可
測試 程式碼

public static void main(String[] args) {
        String sql="select * from phone ";
        List<Phone> phones = DBUtils.queryAllList(sql, Phone.class);

        phones.forEach(System.out::println);

    }

連結資料庫的基本資訊

sqlserver
	private static final String DRIVER = "com.microsoft.sqlserver.jdbc.SQLServerDriver"; 
	private static final String URL = "jdbc:sqlserver://127.0.0.1:1433;database=apsfcDB";
	private static final String USER = "sa";
	private static final String PWD = "123456";
	
	
	// oracle
	private static final String DRIVER = "oracle.jdbc.driver.OracleDriver"; 
	private static final String URL = "jdbc:oracle:thin:@127.0.0.1:1521:orcl";
	private static final String USER = "scott";
	private static final String PWD = "tiger";
	
	
	//mysql
	private static final String DRIVER = "com.mysql.jdbc.Driver"; 
	private static final String URL = "jdbc:mysql://127.0.0.1:3306/test?useUnicode=true&characterEncoding=UTF-8";
	private static final String USER = "root";
	private static final String PWD = "admin";