67,516
社区成员
发帖
与我相关
我的任务
分享
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
/**
* 数据库通用逻辑组件
* */
public class SQLHelper {
/** 声明数据库三大连接对象 */
public static Connection conn = null;// 数据库连接对象
public static Statement stmt = null;// 数据库命令执行对象
public static PreparedStatement pStmt = null;//数据库预编译命令执行对象
public static ResultSet rs = null;// 数据库结果集对象
/** 不允许实例化该类 */
private SQLHelper(){}
/** 连接数据库语句 */
//设置数据库连接驱动,默认使用JDBC4进行连接
private static String dbDrive = "com.microsoft.sqlserver.jdbc.SQLServerDriver";
//数据库连接地址以及连接的数据库名
private static String dbLocate = "localhost";
private static String dbName = "sq_a1076";
private static String dbPort = "1433";
private static String dbURL = "jdbc:sqlserver://"+ dbLocate +":"+ dbPort +";DatabaseName="+ dbName +"";
// 数据库帐号和密码
private static String dbUser ="" ;//忽略这个吧,我删掉了
private static String dbPwd = "";
//============================================================
// 获取各种连接对象,用于内部使用
//============================================================
/** 获取Connection连接对象 */
private static Connection getConnection() {
Connection conn = null;
try {
Class.forName(dbDrive);
conn = DriverManager.getConnection(dbURL, dbUser, dbPwd);
}
catch (Exception e) {
e.printStackTrace();
}
//判断是否成功生成conn连接对象
if (conn == null) {
System.err.println("警告:数据库连接失败!");
}
return conn;
}// method
/**
* 获取Statement对象
*
* @return 返回一个指针可滚动、可更新的SQL语句执行对象
*/
public static Statement getStatement(){
conn = getConnection();
if(conn == null){
return null;
}
try{
return conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE);
}catch(Exception e){
//TO-DO 是否需要关闭Connection?
e.printStackTrace();
return null;
}
}
/**
* 获取PrepareStatement对象
*
* @param sql 特定的带'?'的SQL执行语句
* 示例:String sql = "select * from goods where goodsName=? and goodsType=?";
*
* @return 返回一个预编译指针可滚动、可更新SQL语句执行对象
*/
public static PreparedStatement getPreparedStatement(String sql){
conn = getConnection();
if(conn == null){
return null;
}
try{
return conn.prepareStatement(sql, ResultSet.TYPE_SCROLL_SENSITIVE, ResultSet.CONCUR_UPDATABLE);//使用第一个方法
}catch(Exception e){
e.printStackTrace();
return null;
}
}
/** 关闭数据库连接 */
public static void closeConnection() throws Exception{
// 关闭连接对象
try {
if (conn != null) {
conn.close();
}
} catch (Exception e) {
throw e;
}
}// method
}// class
public User findUserByUserName(String userName) throws Exception {
User user = null;//一个可以指向用户对象的变量
String sql = "select userName,userTypeId,personId from [User] where userName=?";
pstmt = SQLHelper.getPreparedStatement(sql);
pstmt.setString(1, userName);
ResultSet rs = pstmt.executeQuery();
while(rs.next()){
user = new User();
user.setUserName(rs.getString(1));
user.setUserTypeId(rs.getInt(2));
user.setPersonId(rs.getInt(3));
}
pstmt.close();
SQLHelper.closeConnection();
return user;
}