非常好用的 jdbc工具類 (mysql) 這你只有乾貨
阿新 • • 發佈:2020-12-19
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";