package java619.db层;
import java.sql.*;
//创建不拼接字符串的crud方式
public class test {
public String driverName = "com.microsoft.sqlserver.jdbc.SQLServerDriver";
public String dbURL = "jdbc:sqlserver://localhost:1433 ;Databasename =studentDB;"
+"integratedSecurity=true";
private Connection dbConn = null;
private PreparedStatement stmt = null; // sql对象可以不用拼接字符串
private ResultSet rs = null;
// 调用创建连接 http://www.worlduc.com/blog2012.aspx?bid=49167509
public test() { // 构造方法调用数据库连接。一旦创建对象,数据库建立连接
this.getConnection();
}
// 编写数据库连接的方法
public void getConnection() {
try {
Class.forName(driverName);
dbConn = DriverManager.getConnection(dbURL);
System.out.println("连接数据库成功");
} catch (Exception e) {
e.printStackTrace();
System.out.print("连接失败");
}
}
查询数据 search, Object... obj可变变化的数组长度为0或者任意
// 调用数据查询的通用方法;供dao层的代码调用,search必须有返回值
// sql=(select * from student where id = ? and name =?;) args=??
public ResultSet search(String sql, Object... obj) {
// Object... obj代表0个或多个参数
try {
stmt = dbConn.prepareStatement(sql);
if (obj!=null) {
int len = obj.length;
for (int i = 0; i < len; i++) {
stmt.setObject(i + 1, obj[i]);
}
}
rs = stmt.executeQuery();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return rs;
}
// 增删改通用方法 //insert delete update都是一个方法
public int update(String sql, Object... obj) {
int result = -1;
try {
stmt = dbConn.prepareStatement(sql);
if (obj!=null) {
int len = obj.length;
for (int i = 0; i < len; i++) {
stmt.setObject(i + 1, obj[i]);
}
}
result = stmt.executeUpdate(); //
} catch (Exception e) {
// TODO: handle exception
}
return result;
}
public int getAll(String sql) {
int result = -1;
try {
Statement stmt = dbConn.createStatement();
ResultSet rs = stmt.executeQuery(sql);
rs.next();
result = rs.getInt(1);
rs.close();
stmt.close();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return result;
}
public void close() {
// 做完后关闭数据库操作
try {
if (rs != null) {
rs.close();
rs = null;
}
if (stmt != null) {
stmt.close();
stmt = null;
}
if (dbConn != null) {
dbConn.close();
dbConn = null;
}
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
// 测试
public static void main(String[] args) {
test db = new test();
// String sql = "update T_applicant set email = ? where id= ?";
// int rs = db.update(sql, new Object[] {"123",1});
// System.out.println(rs);
// 统计记录的行数
String sql ="select count(*) from t_student";
System.out.println(db.getAll(sql));
//
}
}