public class DBUtil {
/**
* 获取数据库连接
*/
private static Connection getConnection(){
String url = "jdbc:mysql://localhost:3306/test1";
String user = "root";
String password = "root";
String driverClass ="com.mysql.jdbc.Driver";
Connection con = null;
try {
try {
Class.forName(driverClass);
} catch (ClassNotFoundException e) {
System.out.println("驱动加载失败");
e.printStackTrace();
}
con = DriverManager.getConnection(url, user, password);
} catch (SQLException e) {
e.printStackTrace();
}
return con;
}
/**
* 关闭数据库资源
*/
public static void close(Connection con ,PreparedStatement ps,ResultSet rs){
if(con!=null){
try {
con.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
if(ps!=null){
try {
ps.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
if(rs!=null){
try {
rs.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
}
/**
* 获取查询数据
*/
public static List<Map<String,Object>> getData(String sql ,Object...arrays){
List<Map<String,Object>> list = new ArrayList<Map<String,Object>>();
Connection con = getConnection();
PreparedStatement ps=null;
ResultSet rs = null;
try {
ps = con.prepareStatement(sql);
if(arrays!=null){
for(int i=0;i<arrays.length;i++){
ps.setObject(i+1, arrays[i]);
}
}
rs = ps.executeQuery();
int size = rs.getMetaData().getColumnCount();
while(rs.next()){
Map<String,Object> map = new HashMap<String, Object>();
for(int i=0;i<size;i++){//每一行作为一个map
String columnName = rs.getMetaData().getColumnLabel(i+1); //获取查询结果的字段名称
Object columnValue = rs.getObject(i+1);//字段名称对应的值
map.put(columnName, columnValue);
}
list.add(map);
}
} catch (SQLException e) {
e.printStackTrace();
}finally{
close(con,ps,rs);
}
return list;
}
/**
* 更新数据(增,删,改)
*/
public static void updateData(String sql ,Object...arrays){
Connection con = getConnection();
PreparedStatement ps=null;
if(con!=null){
try {
ps = con.prepareStatement(sql);
if(ps!=null){
if(arrays!=null){
for(int i=0;i<arrays.length;i++)//设置sql语句中的参数值
ps.setObject(i+1, arrays[i]);
}
ps.executeUpdate();
}else{
System.out.println("语句执行失败");
}
} catch (SQLException e) {
e.printStackTrace();
}finally{
close(con,ps,null);
}
}
}
}