package com.dao;
import java.sql.Statement;
import java.util.ArrayList;
import java.util.Date;
import java.util.HashMap;
import java.util.Map;
import javax.sound.midi.Soundbank;
import com.pojo.Userinfo;
import java.awt.List;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.ResultSetMetaData;
import java.sql.SQLException;
public class DBUtils {
private static String driver;
private static String username;
private static String password;
private static String url;
private static PreparedStatement PS;
private static Connection connection;
private static ResultSet resultSet;
private static void init(){
driver = "com.mysql.cj.jdbc.Driver";
username = "root";
password = "1006";
url = "jdbc:mysql://localhost:3306/myblog?serverTimezone=UTC&characterEncoding=utf-8";
}
//创建链接
private static void getConn() throws SQLException, ClassNotFoundException {
//注册驱动
Class.forName(driver);
System.out.println("驱动注册成功");
//创建链接
connection = DriverManager.getConnection(url,username,password);
System.out.println("数据库链接成功");
}
//创建statement
private static void createStat(final String sql) throws SQLException {
PS = connection.prepareStatement(sql);
System.out.println("创建statement成功");
}
//关闭链接
private static void close() throws SQLException {
if(resultSet != null){
resultSet.close();
}
if(PS != null){
PS.close();
}
if(connection != null){
connection = null;
}
}
// 增删查改
public static int execute(final String sql) throws Exception{
init();
getConn();
createStat(sql);
int num = PS.executeUpdate();
close();
return num;
}
// 查询
public static ArrayList executeQuery(final String sql) throws Exception {
init();
getConn();
createStat(sql);
resultSet = PS.executeQuery();
ArrayList list = resultToList(resultSet);
close();
return list;
}
// 封装Result
private static ArrayList resultToList(ResultSet resultSet) throws Exception {
// 获取列数
ResultSetMetaData mData = resultSet.getMetaData();
int colum = mData.getColumnCount();
ArrayList list = new ArrayList();
Map rowData;
while (resultSet.next()){
rowData = new HashMap(colum);
for (int i=1; i<=colum; i++){
rowData.put(mData.getColumnName(i),resultSet.getObject(i));
}
list.add(rowData);
}
return list;
}
}
调用实例
public static Userinfo loginServer(String username, String password) {
Userinfo userinfo = null;
try {
String sql = "SELECT * FROM userinfo WHERE username = '"+username+"' AND password = '"+password + "'";
ArrayList<Map<String, Object>> list = DBUtils.executeQuery(sql);
System.out.println("1");
if(list != null) {
System.out.println("2");
Map<String, Object> map = list.get(0);
userinfo = new Userinfo(String.valueOf(map.get("id")), String.valueOf(map.get("username")), String.valueOf(map.get("password")), String.valueOf(map.get("name")));
}
System.out.println(userinfo.toString());
} catch (Exception e) {
// TODO Auto-generated catch block
System.out.println(e.getMessage());
}
return userinfo;
}