小试牛刀-教务信息管理系统(SQL)
2015-06-25 13:02
453 查看
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,没找到返回false try { statement = conn.createStatement(); resultSet = statement.executeQuery(sqltext); if (resultSet.first()) { return true; } } catch (SQLException sqlex) { sqlex.printStackTrace(); } return false; } public int othersql(String sqltext) { // 插入、删除、修改函数,成功返回变化的行数,失败返回0 int 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(); } } }
相关文章推荐
- 怎么把数据库结果集以表格形式呈现在界面上
- 什么是堡垒主机
- Core Data数据库迁移
- Oracle问题
- win7 登录本地oracle报错:ORA-12514: TNS: 监听程序当前无法识别连接描述符中请求的服
- 创建一个实现Disqus评论模版的MySQL模型
- Oracle study之--“ORA-00845: MEMORY_TARGET not supported on this system"错误
- Oracle 中的Pivoting Insert用法
- 在MySQL中创建带有IN和OUT参数的存储过程的方法
- hibernate 调用oracle 自带函数
- 自己配置的WAMP环境,扩展oracle函数库(oci)
- 在VB.NET应用中使用MySQL的方法
- SQL中IS NOT NULL与!=NULL的区别
- sql server中批量插入与更新两种解决方案分享
- 定时自动备份数据库
- mysql绿色版安装
- mysql mha安装以及安装出现问题处理办法
- SQLite
- Oracle 11gR2 alter操作结果日志的查看
- SQL Server '已超过了锁请求超时时段' 问题解决方法