package util;
import java.sql.Connection;
import java.sql.Driver;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.ResultSetMetaData;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
public class DateExecute {
public static Connection getConnection(String name, String password)
throws InstantiationException, IllegalAccessException,
ClassNotFoundException, SQLException {
Connection con;
String driverName = "com.mysql.jdbc.Driver";
Driver d = (Driver) Class.forName(driverName).newInstance();
con = DriverManager.getConnection("jdbc:mysql://localhost:3307/nona",
name, password);
return con;
}
public static List<Map<String, Object>> getDateList(String sql)
throws InstantiationException, IllegalAccessException,
ClassNotFoundException, SQLException {
Connection conn = getConnection("root", "root");
PreparedStatement stmt;
List<Map<String, Object>> list = new ArrayList<Map<String, Object>>();
try {
stmt = conn.prepareStatement(sql);
ResultSet rs = stmt.executeQuery(sql);
list = convertList(rs);
} catch (SQLException e) {
System.out.println("数据库连接失败");
e.printStackTrace();
}
return list;
}
private static List convertList(ResultSet rs)
throws SQLException {
List list = new ArrayList();
ResultSetMetaData md = rs.getMetaData();
int columnCount = md.getColumnCount(); // Map rowData;
while (rs.next()) { // rowData = new HashMap(columnCount);
Map<String, Object> rowData = new HashMap<String, Object>();
for (int i = 1; i <= columnCount; i++) {
rowData.put(md.getColumnName(i), rs.getObject(i));
}
list.add(rowData);
}
return list;
}
public static int executeUpdate(String sql)
throws InstantiationException, IllegalAccessException,
ClassNotFoundException, SQLException {
Connection conn = getConnection("root", "root");
PreparedStatement stmt;
int success = 0 ;
try {
stmt = conn.prepareStatement(sql);
success = stmt.executeUpdate(sql);
} catch (SQLException e) {
System.out.println("数据库连接失败");
e.printStackTrace();
}
return success;
}
}