java课程设计 数据库操作.doc_第1页
java课程设计 数据库操作.doc_第2页
java课程设计 数据库操作.doc_第3页
java课程设计 数据库操作.doc_第4页
java课程设计 数据库操作.doc_第5页
已阅读5页,还剩6页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

package student;import java.awt.*;import java.awt.event.ActionEvent;import java.sql.Connection;import java.sql.DriverManager;import java.sql.ResultSet;import java.sql.SQLException;import java.sql.Statement;import java.util.Vector;import javax.swing.JFrame;import javax.swing.JOptionPane;import javax.swing.JPanel;import javax.swing.JScrollPane;import javax.swing.JTable;import javax.swing.table.AbstractTableModel;public class SD ResultSet rs; /定义返回结果值 String strurl = jdbc:odbc:myDB;/创建指定数据库的URL String strdriver = sun.jdbc.odbc.JdbcOdbcDriver;/创建驱动程序 public Connection con=null; public Statement st=null; /查询方法,返回查询结果集 public static void main(String args) MainFrame mainFrame = new MainFrame(); mainFrame.setSize(500,500);/宽和高 mainFrame.setVisible(true); mainFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); /end main public ResultSet getResult(String sql) try Class.forName(strdriver); con = DriverManager.getConnection(strurl); st = con.createStatement(); rs = st.executeQuery(sql); return rs; /end try catch(Exception e) System.out.println(getResult +e.toString(); return null; /end catch /end getResult /执行更新、删除语句方法 public void executeSql(String sql) try Class.forName(strdriver); con = DriverManager.getConnection(strurl); st = con.createStatement(); st.executeUpdate(sql); mit(); /end try catch(Exception e) System.out.println(getResult + e.toString(); /end catch /end executeSql public void close() throws SQLException if(con!=null) con.close(); /end close class MainFrame extends JFrame private JPanel contentPane; /设置按纽 private Button showButton = new Button(); private Button searchButton = new Button(); private Button insertButton = new Button(); private Button deleteButton = new Button(); private Button modifyButton = new Button(); /设置标签 private Label numLabel = new Label(); private Label nameLabel = new Label(); private Label chineseLabel = new Label(); private Label mathLabel = new Label(); private Label englishLabel = new Label(); /设置文本框 private TextField numField = new TextField(); private TextField nameField = new TextField(); private TextField chineseField = new TextField(); private TextField mathField = new TextField(); private TextField englishField = new TextField(); String title = 学号,姓名,语文,数学,英语;/二维表列列名 Connection con = null;/声明Connection接口对象 ResultSet rs = null;/定义数据库查询的结果集 Statement state = null;/定义查询数据库的Statement对象 Vector vect;/声明一个向量对象 AbstractTableModel tm;/声明一个AbstractTableModel对象 JScrollPane scroll;/声明一个滚动条对象 public MainFrame() jbInit(); /end MainFrame private void jbInit() contentPane = (JPanel) this.getContentPane(); showButton.setLabel(显示); showButton.setBounds(400,335,80,25); searchButton.setLabel(查找); searchButton.setBounds(0,335,80,25); insertButton.setLabel(插入); insertButton.setBounds(100,335,80,25); deleteButton.setLabel(删除); deleteButton.setBounds(200,335,80,25); modifyButton.setLabel(修改); modifyButton.setBounds(300,335,80,25); numLabel.setText(学号); numLabel.setBounds(0,230,25,25); nameLabel.setText(姓名); nameLabel.setBounds(120,230,25,25); chineseLabel.setText(语文); chineseLabel.setBounds(0,280,25,25); mathLabel.setText(数学); mathLabel.setBounds(120,280,25,25); englishLabel.setText(英语); englishLabel.setBounds(240,280,25,25); numField.setBounds(35,230,80,25); nameField.setBounds(160,230,80,25); chineseField.setBounds(35,280,80,25); mathField.setBounds(160,280,80,25); englishField.setBounds(295,280,80,25); showButton.addActionListener(new java.awt.event.ActionListener() public void actionPerformed(ActionEvent e) showButton_actionPerformed(e); ); searchButton.addActionListener(new java.awt.event.ActionListener() public void actionPerformed(ActionEvent e) searchButton_actionPerformed(e); ); insertButton.addActionListener(new java.awt.event.ActionListener() public void actionPerformed(ActionEvent e) insertButton_actionPerformed(e); ); deleteButton.addActionListener(new java.awt.event.ActionListener() public void actionPerformed(ActionEvent e) deleteButton_actionPerformed(e); ); modifyButton.addActionListener(new java.awt.event.ActionListener() public void actionPerformed(ActionEvent e) modifyButton_actionPerformed(e); ); contentPane.setLayout(null); this.setTitle(简易学生成绩管理-安生); /添加组件 contentPane.add(showButton,null); contentPane.add(searchButton,null); contentPane.add(insertButton,null); contentPane.add(deleteButton,null); contentPane.add(modifyButton,null); contentPane.add(numLabel,null); contentPane.add(numField,null); contentPane.add(nameLabel,null); contentPane.add(nameField,null); contentPane.add(chineseLabel,null); contentPane.add(chineseField,null); contentPane.add(mathLabel,null); contentPane.add(mathField,null); contentPane.add(englishLabel,null); contentPane.add(englishField,null); /end jbInit void initTable() JTable table; vect = new Vector(); tm = new AbstractTableModel() public int getColumnCount() return title.length;/取得表的列数 public int getRowCount() return vect.size();/取得表的行数 public Object getValueAt(int row,int column) if(!vect.isEmpty()return (Vector) vect.elementAt(row).elementAt(column); else return null; /取得单元格中的属性值 /数据模型不可编辑,方法设为空 public void setValueAt(Object value,int row,int column) /取得表格列名 public String getColumnName(int column)return titlecolumn; /取得列所属对象类 public Class getColumnClass(int c)return getValueAt(0,c).getClass(); /设置单元格不可编辑,为默认实现 public boolean isCellEditable(int row,int column)return false; ;/end tm table = new JTable(tm);/生成自己的数据模型 table.setShowHorizontalLines(true);/显示水平线 table.setShowVerticalLines(true);/显示垂直线 scroll = new JScrollPane(table);/给表格加上滚动条 scroll.setBounds(10,10,400,200); contentPane.add(scroll,null); /end initTable void showData(ResultSet rs) vect.removeAllElements();/初始化向量对象 tm.fireTableStructureChanged();/更新表格内容 try while(rs.next() Vector rec_vector = new Vector(); /从结果集中取向量放入rec_vector中 rec_vector.addElement(rs.getString(学号); rec_vector.addElement(rs.getString(姓名); rec_vector.addElement(rs.getString(语文); rec_vector.addElement(rs.getString(数学); rec_vector.addElement(rs.getString(英语); /向量rec_vector加入向量vect中 vect.addElement(rec_vector); /end while tm.fireTableStructureChanged();/更新表格 scroll.setVisible(true); rs.close(); /end try catch(Exception e) /end showData void clearText() numField.setText(); nameField.setText(); chineseField.setText(); mathField.setText(); englishField.setText(); /end clearText void showButton_actionPerformed(ActionEvent e) SD db = new SD(); initTable(); String sql1 = select * from student; rs = db.getResult(sql1); showData(rs); /end showButton_actionPerformed void insertButton_actionPerformed(ActionEvent e) try SD db = new SD(); initTable(); if(nameField.getText().length()=0|chineseField.getText().length()=0|mathField.getText().length()=0|englishField.getText().length()=0) JOptionPane.showMessageDialog(null, 字段输入不能有空值, 警告, JOptionPane.WARNING_MESSAGE); clearText(); String sql1 = select * from student; rs = db.getResult(sql1); showData(rs); else String sql21 = insert into student(学号,姓名,语文,数学,英语) values( + Integer.parseInt(numField.getText() + ,+nameField.getText() +,+Integer.parseInt(chineseField.getText()+,+Integer.parseInt(mathField.getText()+,+Integer.parseInt(englishField.getText()+); db.executeSql(sql21); clearText(); db.close(); initTable(); String sql22 = select * from student; rs = db.getResult(sql22); vect.removeAllElements();/初始化向量对象 tm.fireTableStructureChanged();/更新表格内容 showData(rs); /end try catch(SQLException exc) exc.printStackTrace();System.exit(1); /end insertButton_actionPerformed void deleteButton_actionPerformed(ActionEvent e) try SD db = new SD(); initTable(); String sql31 = delete from student where 学号=+Integer.parseInt(numField.getText(); db.executeSql(sql31); clearText(); db.close(); initTable(); String sql32 = select * from student; vect.removeAllElements();/初始化向量对象 tm.fireTableStructureChanged();/更新表格内容 rs = db.getResult(sql32); showData(rs); /end try catch(SQLException exc) exc.printStackTrace();System.exit(1); /end deleteButton_actionPerformed void searchButton_actionPerformed(ActionEvent e) SD db = new SD(); initTable(); String sql4 = select * from student where 学号=+Integer.parseInt(numField.getText(); rs = db.getResult(sql4); clearText(); try if (!rs.next() JOptionPane.showMessageDialog(null, 无此学号记录, 警告, JOptionPane.WARNING_MESSAGE); String sql1 = select * from student; rs = db.getResult(sql1); showData(rs); else rs = db.getResult(sql4); clearText(); showData(rs); db.close(); /end try catch(SQLException exc) exc.printStackTrace();System.exit(

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论