连接类:
package com.tr.tools;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
/**
* @author Administrator
*
*/
public class JdbcUtil {
private String url = "jdbc:sqlserver://localhost:1433;databaseName=FireWolf";
private String user = "sa";
private String pwd = "123456";
public static JdbcUtil getJdbcUtil() {
return jdbcUtil;
}
private static JdbcUtil jdbcUtil = new JdbcUtil();
private JdbcUtil() {
}
static {
try {
Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
} catch (ClassNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
@SuppressWarnings("finally")
public Connection getConnection() {
Connection conn=null;
try {
conn=DriverManager.getConnection(url, user, pwd);
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}finally{
return conn;
}
}
}
连接操作类:
package com.tr.tools;
import java.sql.*;
import java.util.List;
import javax.servlet.jsp.jstl.sql.Result;
import javax.servlet.jsp.jstl.sql.ResultSupport;
public class DataHelp {
private Connection conn = null;
private String sql = null;
@SuppressWarnings("unchecked")
private List values = null;
@SuppressWarnings("unchecked")
public Result executeQuery(String sql, List list) {
Result result = null;
ResultSet rs = null;
Statement stmt = null;
PreparedStatement pstmt = null;
this.setSql(sql);
this.setValues(list);
try {
if (values != null && values.size() > 0) {
conn = JdbcUtil.getJdbcUtil().getConnection();
pstmt = conn.prepareStatement(sql);
setValue(pstmt, values);
rs = pstmt.executeQuery();
} else {
conn = JdbcUtil.getJdbcUtil().getConnection();
stmt = conn.createStatement();
rs = stmt.executeQuery(sql);
}
result = ResultSupport.toResult(rs);
} catch (Exception e) {
} finally {
closeConn(conn);
closeAll(stmt, pstmt, result, rs);
}
return result;
}
@SuppressWarnings("unchecked")
public int executeUpdate(String sql,List list) {
int rows=0;
ResultSet rs=null;
PreparedStatement pstmt=null;
Statement stmt=null;
Result result=null;
this.setSql(sql);
this.setValues(list);
try {
conn = JdbcUtil.getJdbcUtil().getConnection();
if (values != null && values.size() > 0) {
pstmt = conn.prepareStatement(sql);
setValue(pstmt, values);
rows = pstmt.executeUpdate();
} else {
stmt = conn.createStatement();
rows = stmt.executeUpdate(sql);
}
} catch (Exception e) {
e.printStackTrace();
}finally{
closeConn(conn);
closeAll(stmt, pstmt, result, rs);
}
return rows;
}
@SuppressWarnings("unchecked")
public int save(String sql, List list) {
int rows = 0;
ResultSet rs = null;
PreparedStatement pstmt = null;
Statement stmt = null;
Result result = null;
this.setSql(sql);
this.setValues(list);
try {
if (values != null && values.size() > 0) {
conn = JdbcUtil.getJdbcUtil().getConnection();
pstmt = conn.prepareStatement(sql,Statement.RETURN_GENERATED_KEYS);
setValue(pstmt, values);
pstmt.executeUpdate();
rs = pstmt.getGeneratedKeys();
if (rs.next())
rows = rs.getInt(1);
}
} catch (Exception e) {
e.printStackTrace();
} finally {
closeConn(conn);
closeAll(stmt, pstmt, result, rs);
}
return rows;
}
@SuppressWarnings("unchecked")
private void setValue(PreparedStatement pstmt, List values)
throws SQLException {
for (int i = 0; i < values.size(); i++) {
Object obj = values.get(i);
pstmt.setObject(i + 1, obj);
}
}
public Connection getConn() {
return conn;
}
public String getSql() {
return sql;
}
@SuppressWarnings("unchecked")
public List getValues() {
return values;
}
public void setConn(Connection conn) {
this.conn = conn;
}
public void setSql(String sql) {
this.sql = sql;
}
@SuppressWarnings("unchecked")
public void setValues(List values) {
this.values = values;
}
public static void closeAll(Statement stmt, PreparedStatement pstmt,
Result result, ResultSet rs) {
if (rs != null) {
try {
rs.close();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
if (stmt != null) {
try {
stmt.close();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
if (pstmt != null) {
try {
pstmt.close();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
public static void closeConn(Connection conn) {
try {
if (conn != null && (!conn.isClosed())) {
conn.close();
}
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}