package cn.easybuy.util;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import cn.easybuy.tool.ConfigManager;
/**
* Dao层的公共属性和方法
*
*/
public class BaseDao {
/* 连接数据库 */
public static Connection getConnection() {
// 连接数据库的四要素
String url = ConfigManager.getInstance().getValue("url");
String user = ConfigManager.getInstance().getValue("user");
String password = ConfigManager.getInstance().getValue("password");
String driver = ConfigManager.getInstance().getValue("driverClass");
Connection connection = null;
try {
Class.forName(driver);
connection = DriverManager.getConnection(url, user, password);
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (ClassNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return connection;
}
public static boolean closeResource(Connection connection,
PreparedStatement ps, ResultSet rs) {
boolean flag = true;
if (rs != null) {
try {
rs.close();
rs = null;// GC回收
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
flag = false;
}
}
if (ps != null) {
try {
ps.close();
ps = null;
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
flag = false;
}
}
if (connection != null) {
try {
connection.close();
connection = null;
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
flag = false;
}
}
return flag;
}
/**
* 查询操作
*
* @throws Exception
*/
public static ResultSet execute(Connection connection,
PreparedStatement ps, ResultSet rs, String sql, Object[] params)
throws Exception {
ps = connection.prepareStatement(sql);
for (int i = 0; i < params.length; i++) {
ps.setObject(i + 1, params[i]);
}
rs = ps.executeQuery();
return rs;
}
/**
* 更新操作
*
* @throws Exception
*/
public static int execute(Connection connection, PreparedStatement ps,
String sql, Object[] params) throws Exception {
int updateRows = 0;
ps = connection.prepareStatement(sql);
for (int i = 0; i < params.length; i++) {
ps.setObject(i + 1, params[i]);
}
updateRows = ps.executeUpdate();
return updateRows;
}
}