package com.AppCount.DBClass;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
public class DB {
private String className; // 驱动名
private String url; // 连接数据库的URL地址
private String username; // 数据库的用户名
private String password; // 数据库的密码
private Connection con; // 数据库连接对象
private PreparedStatement pstm; // 数据库预编译处理对象
public DB() {
className = "com.microsoft.sqlserver.jdbc.SQLServerDriver";
url = "jdbc:sqlserver://HFP-20170511NJC:1433;databasename=portData";
username = "sa";
password = "1234567";
try {
Class.forName(className);
} catch (ClassNotFoundException e) {
System.out.println("加载数据库驱动程序失败!");
e.printStackTrace();
}
}
public void getCon() {
try {
con = DriverManager.getConnection(url, username, password);
} catch (SQLException e) {
System.out.println("获取数据库连接失败!");
e.printStackTrace();
}
}
// 对象数组。如:String[] obj = new String[]{"宾桀锋","201321173083"};
public void doPstm(String sql, Object[] params) {
if (sql != null && !sql.equals("")) {
System.out.println(sql);
if (con == null)
getCon();
try {
pstm = con.prepareStatement(sql, ResultSet.TYPE_SCROLL_INSENSITIVE, ResultSet.CONCUR_READ_ONLY);
if (params == null) {
params = new Object[0];
}
for (int i = 0; i < params.length; i++) {
pstm.setObject(i + 1, params[i]);
}
pstm.execute();
} catch (SQLException e) {
System.out.println("调用DB类中doPstm方法时出错!");
e.printStackTrace();
}
}
}
public ResultSet getRs() {
try {
return pstm.getResultSet();
} catch (SQLException e) {
System.out.println("DB类中的getRs()方法出错!");
e.printStackTrace();
return null;
}
}
public int getUpdate() {
try {
return pstm.getUpdateCount();
} catch (SQLException e) {
e.printStackTrace();
return -1;
}
}
public ResultSet ExecuteResultSet(String sql, Object[] params) {
if (sql != null && !sql.equals("")) {
System.out.println(sql);
if (con == null)
getCon();
try {
pstm = con.prepareStatement(sql, ResultSet.TYPE_SCROLL_INSENSITIVE, ResultSet.CONCUR_READ_ONLY);
if (params == null) {
params = new Object[0];
}
for (int i = 0; i < params.length; i++) {
pstm.setObject(i + 1, params[i]);
}
return pstm.executeQuery();
} catch (SQLException e) {
System.out.println("调用DB类中ExecuteNonQuery方法时出错!");
e.printStackTrace();
return null;
}
} else {
return null;
}
}
public int ExecuteNonQuery(String sql, Object[] params) {
if (sql != null && !sql.equals("")) {
System.out.println(sql);
if (con == null)
getCon();
try {
pstm = con.prepareStatement(sql, ResultSet.TYPE_SCROLL_INSENSITIVE, ResultSet.CONCUR_READ_ONLY);
if (params == null) {
params = new Object[0];
}
for (int i = 0; i < params.length; i++) {
pstm.setObject(i + 1, params[i]);
}
return pstm.executeUpdate();
} catch (SQLException e) {
System.out.println("调用DB类中ExecuteNonQuery方法时出错!");
e.printStackTrace();
return -1;
}
} else {
return -1;
}
}
public void closed() {
try {
if (pstm != null)
pstm.close();
} catch (Exception e) {
System.out.println("关闭pstm对象失败!");
}
try {
if (con != null)
con.close();
} catch (Exception e) {
System.out.println("关闭con对象失败!");
}
}
}
// 调用
String sql = "select * from user_test";
Object params[] =null;
DB db1 = new DB();
try {
ResultSet rs = db1.ExecuteResultSet(sql, params);
while (rs.next()) {
// do something;
System.out.print(rs.getString(2) + " ");
}
rs.close();
} catch (SQLException e) {
e.printStackTrace();
}
调用 2
int user_id = 15565;
String sql = "select * from user_test where user_id=?";
Object params[] = { user_id };
try {
ResultSet rs = db1.ExecuteResultSet(sql, params);
while (rs.next()) {
// do something;
System.out.print(rs.getString(2) + " ");
}
rs.close();
} catch (SQLException e) {
e.printStackTrace();
}
调用 3 增加数据
int user_id=453434;
String user_name="try 中的语句";
String created_time="2019-06-20 15:34:20";
String sqlin = "insert into user_test(user_id,user_name,created_time) values(?,?,?)";
Object params1[] = { user_id, user_name,created_time};
DB db1 = new DB();
int k =db1.ExecuteNonQuery(sqlin, params1);
写的不好的地方欢迎大能指正,