📄 database.java
字号:
package main;
import java.sql.*;
import java.util.Vector;
import javax.swing.JOptionPane;
import javax.swing.table.DefaultTableModel;
/**
* 该类封装了对数据库进行访问的公用方法和一些变量,给其他类访问数据库带来方便
* 也减少了代码量,同时提高了代码的效率
* @author Administrator
*/
public class DataBase {
public static Connection con;
public static Statement statement;
// 静态代码块,在类加载时自动执行
static {
try {
// "com.microsoft.jdbc.sqlserver.SQLServerDriver" ;
Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver");
// Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
//System.out.println("类实例化成功!");
con = DriverManager
.getConnection(
"jdbc:microsoft:sqlserver://DINGSHUAI:1433;DatabaseName=library",
"library", "library");
// System.out.println("创建连接对像成功!");
statement = con.createStatement();
} catch (Exception e) {
JOptionPane.showMessageDialog(null, e.getMessage(), "",
JOptionPane.ERROR_MESSAGE);
}
}
public static ResultSet executeQuery(String sql) {
ResultSet innerresultSet = null;
try {
innerresultSet = statement.executeQuery(sql);
} catch (Exception e) {
System.out.println("fail to execute the sql" + ": " + sql);
}
return innerresultSet;
}
/**
* to execute 更新语句
*/
public static boolean execute(String sql) {
boolean result = false;
try {
result = statement.execute(sql);
} catch (Exception e) {
System.out.println(sql);
System.out.println("fail to execute" + e);
}
return result;
}
// columns contains the values that you want to store in Vector
// resultset is the return of value of a executive sql
// the return value vector will be used to construct a defaulttablemodel for
// JTable
public static Vector getVector(String[] columns, ResultSet result) {
Vector dataRow = new Vector();
try {
while (result.next()) {
Vector tmp = new Vector();
for (int i = 0; i < columns.length; i++) {
tmp.add((Object) result.getString(columns[i]));
}
//System.out.println((String)tmp.get(0));
dataRow.add(tmp);
}
} catch (Exception e) {
System.out.println(e);
System.out.println("fail to read data from resultset");
System.out.println("in DataBase.java line 45");
}
return dataRow;
}
public static DefaultTableModel createModelForTable(
String[] englishColumns, String[] chineseColumns, String sql) {
// datarow is contents of the table,columns is 标题 for the table
Vector dataRow = new Vector(), columns = new Vector();
// dataRow is initialized by the method DataBase.getVector();
// columns is initialized as below
for (int i = 0; i < chineseColumns.length; i++)
columns.add((Object) chineseColumns[i]);
ResultSet resultSet = DataBase.executeQuery(sql);
dataRow = DataBase.getVector(englishColumns, resultSet);
DefaultTableModel modelForTable = new DefaultTableModel(dataRow,
columns);
return modelForTable;
}
//to judge whether a certain user exist in a resultset
public static boolean exist(ResultSet resultSet){
boolean result=false;
try{
if(resultSet.next())
result=true;
}catch(Exception e){
System.out.println("exception in DataBase.java line 109"+
e);
}
return result;
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -