JDBC工具类完整版!
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
JDBC⼯具类完整版!package com.aaa.util;
import java.sql.*;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
/**
* JDBC⼯具类?
* ⼀、增删改的通⽤⽅法
* ⼆、查询的通⽤⽅法
* 三、关闭的通⽤⽅法
*/
public class DBUtil {
static {
try {
Class.forName("com.mysql.jdbc.Driver");
} catch (ClassNotFoundException e) {
e.printStackTrace();
}
}
public static Connection getConnection(){
try {
return DriverManager.getConnection("jdbc:mysql://localhost:3306/qy66?characterEnconding=UTF-8", "root", "root"); } catch (SQLException e) {
e.printStackTrace();
}
return null;
}
/** 增删改的通⽤⽅法
* @paramString sql 要执⾏的sql
* @paramObject[] obj 对象类型的数组⾥⾯存放着 sql执⾏的占位符参数
* 【name,age,id】
* 【id】
* 【name,age】
* Object... 可变参数
* */
public static boolean executeUpdate(String sql,Object... args){
Connection conn = null;
PreparedStatement ps = null;
try {
conn = getConnection();
ps = conn.prepareStatement(sql);
for (int i=0;i<args.length;i++){
ps.setObject(i+1,args[i]);
}
int i = ps.executeUpdate();
if (i>0)return true;
} catch (SQLException e) {
e.printStackTrace();
} finally {
//关闭
close(conn,ps,null);
}
return false;
}
/**
* c查询的通⽤⽅法
* @param sql
* @param args
* @return
*/
public static List<Map<String,Object>> executeQuery(String sql,Object... args){ //可变参数 Object... args
Connection conn = null;
PreparedStatement ps = null;
ResultSet set = null;
try {
conn = DBUtil.getConnection();
ps = conn.prepareStatement(sql);
/* 有可能有参数 */
for (int i=0;i<args.length;i++){
ps.setObject(i+1,args[i]);
}
/*执⾏*/
set = ps.executeQuery();
/*需要将所有数据都存放到 List中每⼀⾏⽤⼀个 map存放*/
List<Map<String,Object>> list = new ArrayList<>();
/*获取本次查询结果集有多少列*/
int count = set.getMetaData().getColumnCount();
while(set.next()){
Map<String, Object> map = new HashMap<>();//⼀⾏数据⽤⼀个map 接收/*
我们不⽤在乎数据库表中有⼏列
通过 getMetData().getColumnLabel() 获取列
因为⽤的map键值对集合得到了列就能得到相应的values值
*/
for(int i=0;i<count;i++){
String name = set.getMetaData().getColumnLabel(i+1);
map.put(name,set.getObject(name));
}
/*将每⾏的map存放到 List中*/
list.add(map);
}
return list;
} catch (Exception e) {
e.printStackTrace();
}finally {
close(conn,ps,set);
}
return null;
}
/** 关闭的通⽤⽅法
* 先进后出的原则
* */
private static void close(Connection conn,PreparedStatement st,ResultSet set){
try {
if(set!=null){
set.close();
}
if(st!=null){
st.close();
}
if(conn != null){
conn.close();
}
}catch (Exception e){
e.printStackTrace();
}
}
}。