package com.tianma.rdp.service.util;
import lombok.Data;
import org.springframework.context.annotation.Configuration;
import javax.swing.*;
import java.sql.*;
import java.util.ArrayList;
import java.util.HashMap;
@Configuration
@Data
public class MySqlJdbcUtil {
private static Connection connection = null;
private static PreparedStatement preparedStatement = null;
private static ResultSet resultSet = null;
private static String username = "";
private static String password = "";
private static String driver = "";
private static String url = "";
public void JdbcUtilV2(String dr, String ur, String user, String passwd) {
try {
username = user;
password = passwd;
driver = dr;
url = ur;
Class.forName(driver);
} catch (Exception e) {
System.err.println("连接失败,请检查连接参数");
e.printStackTrace();
}
}
private static Connection getConnection() {
try {
connection = DriverManager.getConnection(url, username, password);
} catch (Exception e) {
JOptionPane.showConfirmDialog(null , "获取连接失败,请检查网络是否连通", "系统消息", JOptionPane.CLOSED_OPTION);
e.printStackTrace();
}
return connection;
}
public ArrayList<HashMap<String, Object>> query(String sql, Object ...params){
try {
connection = getConnection();
preparedStatement = connection.prepareStatement(sql);
setPreparedStatement(params);
resultSet = preparedStatement.executeQuery();
ResultSetMetaData metaData = resultSet.getMetaData();
int columnCount = metaData.getColumnCount();
ArrayList<HashMap<String, Object>> list = new ArrayList<HashMap<String, Object>>();
while(resultSet.next()) {
HashMap<String, Object> rowData = new HashMap<String, Object>();
for(int i = 1; i <= columnCount; ++i) {
rowData.put(metaData.getColumnName(i), resultSet.getObject(i));
}
list.add(rowData);
}
return list;
}catch (Exception e){
System.err.println("查询失败!");
e.printStackTrace();
} finally {
close();
}
return null;
}
public boolean exists(String sql, Object ...params) {
try {
connection = getConnection();
preparedStatement = connection.prepareStatement(sql);
setPreparedStatement(params);
resultSet = preparedStatement.executeQuery();
return resultSet.next();
}catch (Exception e){
System.err.println("查询失败!");
e.printStackTrace();
} finally {
close();
}
return false;
}
public boolean execute(String sql, Object ...params){
try {
connection = getConnection();
preparedStatement = connection.prepareStatement(sql);
setPreparedStatement(params);
preparedStatement.executeUpdate();
return true;
} catch (Exception e){
System.err.println("表更新失败!");
e.printStackTrace();
} finally {
close();
}
return false;
}
public void executeVoidProc(String sql, Object ...params){
try {
connection = getConnection();
preparedStatement = connection.prepareStatement(sql);
setPreparedStatement(params);
preparedStatement.execute();
}catch (Exception e){
System.err.println("查询失败!");
e.printStackTrace();
} finally {
close();
}
}
private void setPreparedStatement(Object ... params) throws SQLException {
if(params != null && params.length > 0){
for(int i = 0; i < params.length; i++){
if("null".equals(params[i])){
preparedStatement.setNull(i + 1, Types.NULL);
}else{
preparedStatement.setObject(i + 1, params[i]);
}
}
}
}
private void close() {
if (resultSet != null) {
try {
resultSet.close();
} catch (Exception e) {
e.printStackTrace();
}
resultSet = null;
}
if (preparedStatement != null) {
try {
preparedStatement.close();
} catch (Exception e) {
e.printStackTrace();
}
preparedStatement = null;
}
if (connection != null) {
try {
connection.close();
} catch (Exception e) {
e.printStackTrace();
}
connection = null;
}
}
}
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律