小试牛刀-教务信息管理系统(SQL)

来源:互联网 发布:mac pro需要贴膜吗 编辑:程序博客网 时间:2024/04/28 23:43
package StuAdmin;import java.sql.Connection;import java.sql.DriverManager;import java.sql.ResultSet;import java.sql.ResultSetMetaData;import java.sql.SQLException;import java.sql.Statement;import java.util.Vector;import javax.swing.JFrame;import javax.swing.table.DefaultTableModel;public class SQL extends JFrame {private static final long serialVersionUID = 1L;public String cases;private Connection conn;private Statement statement;public ResultSet resultSet;public SQL() {String url = "jdbc:mysql://localhost:3306/stuadmin";String username = "root";String password = "123456";// 加载驱动程序以连接数据库try {Class.forName("com.mysql.jdbc.Driver");conn = DriverManager.getConnection(url, username, password);} catch (ClassNotFoundException cnfex) { // 捕获加载驱动程序异常System.err.println("装载 JDBC/ODBC 驱动程序失败。");cnfex.printStackTrace();System.exit(1);} catch (SQLException sqlex) { // 捕获连接数据库异常System.err.println("无法连接数据库");sqlex.printStackTrace();System.exit(1);}}public Boolean select(String sqltext) { // 查找函数,找到返回true,没找到返回falsetry {statement = conn.createStatement();resultSet = statement.executeQuery(sqltext);if (resultSet.first()) {return true;}} catch (SQLException sqlex) {sqlex.printStackTrace();}return false;}public int othersql(String sqltext) { // 插入、删除、修改函数,成功返回变化的行数,失败返回0int queryaffected = 0;try {statement = conn.createStatement();queryaffected = statement.executeUpdate(sqltext);} catch (SQLException sqlex) {sqlex.printStackTrace();}return queryaffected;}public String getcell(String sqltext) throws SQLException { // 查找指定数据字符串并返回String strgetted = null;statement = conn.createStatement();resultSet = statement.executeQuery(sqltext);while (resultSet.next())strgetted = resultSet.getString(1);return strgetted;}public int getintcell(String sqltext) throws SQLException { // 查找指定数据字符串并返回int strgetted = 0;statement = conn.createStatement();resultSet = statement.executeQuery(sqltext);while (resultSet.next())strgetted = resultSet.getInt(1);return strgetted;}@SuppressWarnings({ "rawtypes", "unchecked" })public DefaultTableModel getTable(String sqltext) { // 查找数据库内容并将内容赋值到表格模型里并返回Object[][] p = {};String[] n = { "无相关数据" };DefaultTableModel model = new DefaultTableModel(p, n);try {// 执行SQL语句statement = conn.createStatement();resultSet = statement.executeQuery(sqltext);boolean moreRecords = resultSet.next(); // 定位到达第一条记录if (!moreRecords) { // 如果没有记录,则返回空的表格模型return model;} else { // 记录集不空时Vector columnHeads = new Vector(); // 字段Vector rows = new Vector(); // 记录try {ResultSetMetaData rsmd = resultSet.getMetaData();for (int i = 1; i <= rsmd.getColumnCount(); ++i)columnHeads.addElement(rsmd.getColumnName(i)); // 获取字段的名称do {rows.addElement(getNextRow(resultSet, rsmd)); // 获取记录集} while (resultSet.next());model = new DefaultTableModel(rows, // 生成表格模型columnHeads) {private static final long serialVersionUID = 1L;public boolean isCellEditable(int row, int column) {return false; // 表格内容不可编辑}};} catch (SQLException sqlex) {sqlex.printStackTrace();}}} catch (SQLException sqlex) {sqlex.printStackTrace();}return model; // 返回表格模型}@SuppressWarnings({ "rawtypes", "unchecked" })private Vector getNextRow(ResultSet rs, ResultSetMetaData rsmd) // 获取下一条记录,被getTable调用throws SQLException {Vector currentRow = new Vector();for (int i = 1; i <= rsmd.getColumnCount(); ++i)currentRow.addElement(rs.getString(i));return currentRow; // 返回一条记录}public void shutDown() { // 断开数据库连接try {conn.close();} catch (SQLException sqlex) {System.err.println("Unable to disconnect");sqlex.printStackTrace();}}}

0 0
原创粉丝点击