java可視化界面操作數(shù)據(jù)庫(kù)編程_第1頁(yè)
java可視化界面操作數(shù)據(jù)庫(kù)編程_第2頁(yè)
java可視化界面操作數(shù)據(jù)庫(kù)編程_第3頁(yè)
java可視化界面操作數(shù)據(jù)庫(kù)編程_第4頁(yè)
java可視化界面操作數(shù)據(jù)庫(kù)編程_第5頁(yè)
已閱讀5頁(yè),還剩19頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、天津理工大學(xué)實(shí)驗(yàn)報(bào)告學(xué)院(系)名稱(chēng):計(jì)算機(jī)與通信工程學(xué)院姓名晴小天學(xué)號(hào)201356xxxx專(zhuān)業(yè)計(jì)算機(jī)科學(xué)與技術(shù)班級(jí)2013級(jí)2班實(shí)驗(yàn)項(xiàng)目實(shí)驗(yàn)五:小型信息管理系統(tǒng)設(shè)計(jì)開(kāi)發(fā)課程名稱(chēng)Java語(yǔ)言程序設(shè)計(jì)課程代碼0667056實(shí)驗(yàn)時(shí)間2015年11月12日、20日、25日第3、4節(jié)實(shí)驗(yàn)地點(diǎn)7-219批改意見(jiàn)成績(jī)教師簽字: 實(shí)驗(yàn)內(nèi)容:1. 參考實(shí)驗(yàn)資料,自擬題目,設(shè)計(jì)制作一個(gè)小型信息管理系統(tǒng)。實(shí)驗(yàn)?zāi)康模?理解并掌握J(rèn)ava數(shù)據(jù)庫(kù)訪問(wèn)技術(shù)。2掌握對(duì)數(shù)據(jù)進(jìn)行增加、刪除、修改、查詢。實(shí)驗(yàn)要求:1按照要求編制程序;3為增加程序可讀性,請(qǐng)?jiān)诔绦蛑袑?duì)類(lèi)成員進(jìn)行適當(dāng)注釋說(shuō)明;4整理上機(jī)步驟,總結(jié)經(jīng)驗(yàn)和體會(huì);5認(rèn)真完成

2、并按時(shí)提交實(shí)驗(yàn)報(bào)告。【實(shí)驗(yàn)過(guò)程記錄(源程序、測(cè)試用例、測(cè)試結(jié)果及心得體會(huì)等)】一、 MIS系統(tǒng)系統(tǒng)名稱(chēng):學(xué)生信息管理系統(tǒng)操作系統(tǒng): Window8.1Java環(huán)境; jdk 1.7.0_21 、jre 1.7.0_21集成開(kāi)發(fā)環(huán)境:MyEclipse Professional 2013數(shù)據(jù)庫(kù)軟件版本:SQL Server 2010 連接驅(qū)動(dòng):jdbc-odbc二、 系統(tǒng)主要功能本項(xiàng)目主要實(shí)現(xiàn)了java界面的登錄功能,以及登陸后的增刪改查功能,主要是對(duì)student表實(shí)現(xiàn)增加一條學(xué)生信息、刪除一條學(xué)生信息記錄、更新學(xué)生信息表,以及查詢學(xué)生信息表的數(shù)據(jù)學(xué)生信息管理系統(tǒng)登陸模塊功能模塊添加刪除更新查

3、找三、數(shù)據(jù)庫(kù)結(jié)構(gòu)1. 數(shù)據(jù)庫(kù)名稱(chēng):SchoolDB2. 數(shù)據(jù)表:student表具體字段信息如下表:字段名類(lèi)型長(zhǎng)度小數(shù)點(diǎn)不是nullsname(主鍵)varchar200snamevarchar200sdeptvarchar200sgradevarchar200saddressvarchar200sname, sname, sdept, sgrade、saddress分別保存學(xué)生的姓名、專(zhuān)業(yè)、學(xué)院、成績(jī)、家庭住址等學(xué)生基本信息,其中sname為主鍵且不為空。四、關(guān)鍵功能界面截圖1. 登陸界面用戶輸入數(shù)據(jù)庫(kù)中存在的用戶名和密碼后,便可登陸成功,否則提示密碼錯(cuò)誤 正確的用戶名,錯(cuò)誤的密碼正確的用戶

4、名正確的密碼后進(jìn)入學(xué)生信息管理系統(tǒng):2. 添加功能:輸入界面中的所有數(shù)據(jù)之后,點(diǎn)擊添加,即可向數(shù)據(jù)庫(kù)中加入一條學(xué)生記錄3.刪除功能:輸入姓名,即可把數(shù)據(jù)庫(kù)中對(duì)應(yīng)姓名的一條學(xué)生信息刪除4.更新功能:輸入要修改學(xué)生的信息,即可修改該學(xué)生在數(shù)據(jù)庫(kù)中的記錄5.查找功能:點(diǎn)擊查找可以查詢數(shù)據(jù)庫(kù)中的所有學(xué)生信息,每頁(yè)9條記錄,其余的學(xué)生信息的點(diǎn)擊下一頁(yè),可以查看,還可以點(diǎn)擊上一頁(yè),來(lái)切換數(shù)據(jù)點(diǎn)擊下一頁(yè):五、關(guān)鍵代碼分析DBConnetion用于連接數(shù)據(jù)庫(kù):package edu;import java.sql.Connection;import java.sql.DriverManager;import

5、java.sql.SQLException;public class DBConnection public static Connection getConnection() Connection conn = null; String driver = "sun.jdbc.odbc.JdbcOdbcDriver" String url = "jdbc:odbc:schoolData" String username = "sa" String password = "123456" try Class.forN

6、ame(driver); conn = DriverManager.getConnection(url,username,password); catch (ClassNotFoundException e) e.printStackTrace(); catch (SQLException e) e.printStackTrace(); return conn; 登陸的窗體類(lèi)LoginFrame、JFrame:package edu;import java.awt.Container;import java.awt.FlowLayout;import java.awt.GridLayout;i

7、mport java.awt.event.ActionEvent;import java.awt.event.ActionListener;import java.sql.Connection;import java.sql.SQLException;import javax.swing.JButton;import javax.swing.JLabel;import javax.swing.JOptionPane;import javax.swing.JPanel;import javax.swing.JPasswordField;import javax.swing.JTextField;

8、import javax.swing.SwingUtilities;public class Jswing implements ActionListenerprivate LoginFrame frame;private JLabel lname;private JLabel lpassword;private JTextField tname;private JPasswordField tpassword;private JButton byes;private JButton bno;private JPanel p1;private JPanel p2;private JPanel

9、p3;private String userName,password;/* * 初始化窗口數(shù)據(jù) */public void initData() frame=new LoginFrame("登陸");frame.setResizable(false);frame.setLayout(new GridLayout(3, 2);Container c=frame.getContentPane();lname=new JLabel("用戶名:");lpassword=new JLabel("密 碼: ");tname=new JTextF

10、ield(8);tpassword=new JPasswordField(8);byes=new JButton("確定");bno=new JButton("取消");p1=new JPanel();p2=new JPanel();p3=new JPanel();p1.add(lname);p1.add(tname);c.add(p1);p2.add(lpassword);p2.add(tpassword);c.add(p2);p3.add(byes);p3.add(bno);c.add(p3);frame.setVisible(true);byes.

11、addActionListener(this);bno.addActionListener(this);userName=null;password=null;Overridepublic void actionPerformed(ActionEvent e) if(e.getSource()=bno)System.exit(1);elseif(e.getSource()=byes)userName=tname.getText().trim();password=new String(tpassword.getPassword();boolean result=false;result=Sch

12、oolOperate.login(userName, password);if(result)frame.setVisible(false);SwingUtilities.invokeLater(new Runnable() public void run() SchoolInfoGui application = new SchoolInfoGui(); application.getJFrame().setVisible(true); );elseString error=null;if(result=false)error="用戶名或密碼錯(cuò)誤,請(qǐng)重試!"JOption

13、Pane.showMessageDialog(null, error);public static void main(String args) new Jswing().initData();package edu;import java.awt.HeadlessException;import javax.swing.JFrame;public class LoginFrame extends JFramepublic LoginFrame(String title) throws HeadlessException super();setTitle(title);setDefaultCl

14、oseOperation(JFrame.EXIT_ON_CLOSE);setBounds(540,200, 280, 200);學(xué)生信息管理系統(tǒng)主界面的SchoolInfoGui:package edu;import java.awt.Rectangle;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import java.util.List;import javax.swing.JButton;import javax.swing.JComboBox;import javax.swing.JFra

15、me;import javax.swing.JLabel;import javax.swing.JOptionPane;import javax.swing.JPanel;import javax.swing.JScrollPane;import javax.swing.JTable;import javax.swing.JTextField;import javax.swing.SwingUtilities;public class SchoolInfoGui implements ActionListener private JFrame jFrame; private JPanel jC

16、ontentPane; private JLabel lblName = null; private JTextField tfName = null; private JLabel lblRegion = null; private JComboBox cbRegion = null; private JLabel lblArea = null; private JTextField tfArea = null; private JLabel lblPopu = null; private JTextField tfPopu = null; private JLabel lblGdp = n

17、ull; private JTextField tfGDP = null; private JButton btnAdd = null; private JButton btnDel = null; private JButton btnModify = null; private JButton btnQuery = null; private JButton btnUpPage = null; private JButton btnDownPage = null; private JTable table = null; TableModel tm = null; JScrollPane

18、jsp = null; private JTextField getTfName() if (tfName = null) tfName = new JTextField(); tfName.setBounds(new Rectangle(89, 17, 173, 27); return tfName; private JComboBox getCbRegion() if (cbRegion = null) String str = "請(qǐng)選擇", "計(jì)算機(jī)科學(xué)與技術(shù)", "信息安全", "網(wǎng)絡(luò)工程", "

19、信息與計(jì)算科學(xué)", "物流工程", "軟件工程" cbRegion = new JComboBox(str); cbRegion.setBounds(new Rectangle(360, 17, 229, 28); return cbRegion; private JTextField getTfArea() if (tfArea = null) tfArea = new JTextField(); tfArea.setBounds(new Rectangle(89, 61, 173, 27); return tfArea; private J

20、TextField getTfPopu() if (tfPopu = null) tfPopu = new JTextField(); tfPopu.setBounds(new Rectangle(360, 61, 229, 28); return tfPopu; private JTextField getTfGDP() if (tfGDP = null) tfGDP = new JTextField(); tfGDP.setBounds(new Rectangle(89, 105, 173, 27); return tfGDP; private JButton getBtnAdd() if

21、 (btnAdd = null) btnAdd = new JButton(); btnAdd.setBounds(new Rectangle(46, 152, 71, 30); btnAdd.addActionListener(this); btnAdd.setText("添加"); return btnAdd; private JButton getBtnUpPage() if (btnUpPage = null) btnUpPage = new JButton("上一頁(yè)"); btnUpPage.addActionListener(this); b

22、tnUpPage.setBounds(200, 390, 80, 30); return btnUpPage; private JButton getBtnDownPage() if (btnDownPage = null) btnDownPage = new JButton("下一頁(yè)"); btnDownPage.addActionListener(this); btnDownPage.setBounds(300, 390, 80, 30); return btnDownPage; private JButton getBtnDel() if (btnDel = null

23、) btnDel = new JButton(); btnDel.setBounds(new Rectangle(189, 152, 71, 30); btnDel.addActionListener(this); btnDel.setText("刪除"); return btnDel; private JButton getBtnModify() if (btnModify = null) btnModify = new JButton(); btnModify.setBounds(new Rectangle(342, 152, 71, 30); btnModify.ad

24、dActionListener(this); btnModify.setText("更新"); return btnModify; private JButton getBtnQuery() if (btnQuery = null) btnQuery = new JButton(); btnQuery.setBounds(new Rectangle(484, 152, 71, 30); btnQuery.addActionListener(this); btnQuery.setText("查找"); return btnQuery; JFrame get

25、JFrame() if (jFrame = null) jFrame = new JFrame(); jFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); jFrame.setBounds(new Rectangle(450, 250, 610, 454); jFrame.setContentPane(getJContentPane(); jFrame.setTitle("學(xué)生信息管理系統(tǒng)"); return jFrame; private JPanel getJContentPane() if (jContentPa

26、ne = null) lblGdp = new JLabel(); lblGdp.setBounds(new Rectangle(15, 106, 63, 27); lblGdp.setText("家庭住址"); lblPopu = new JLabel(); lblPopu.setBounds(new Rectangle(285, 61, 63, 27); lblPopu.setText("成績(jī)"); lblArea = new JLabel(); lblArea.setBounds(new Rectangle(15, 61, 63, 27); lbl

27、Area.setText("學(xué)院"); lblRegion = new JLabel(); lblRegion.setBounds(new Rectangle(285, 17, 63, 27); lblRegion.setText("專(zhuān)業(yè)"); lblName = new JLabel(); lblName.setBounds(new Rectangle(15, 17, 63, 27); lblName.setText("姓名"); jContentPane = new JPanel(); jContentPane.setLayout

28、(null); jContentPane.add(lblName, null); jContentPane.add(getTfName(), null); jContentPane.add(lblRegion, null); jContentPane.add(getCbRegion(), null); jContentPane.add(lblArea, null); jContentPane.add(getTfArea(), null); jContentPane.add(lblPopu, null); jContentPane.add(getTfPopu(), null); jContent

29、Pane.add(lblGdp, null); jContentPane.add(getTfGDP(), null); jContentPane.add(getBtnAdd(), null); jContentPane.add(getBtnDel(), null); jContentPane.add(getBtnModify(), null); jContentPane.add(getBtnQuery(), null); jContentPane.add(getBtnUpPage(), null); jContentPane.add(getBtnDownPage(), null); retur

30、n jContentPane; public void actionPerformed(ActionEvent e) if (e.getActionCommand().equals("查找") selectAll(); else if (e.getActionCommand().equals("下一頁(yè)") selectDownPage(); else if (e.getActionCommand().equals("上一頁(yè)") selectUpPage(); else if (e.getActionCommand().equals(&

31、quot;添加") if (tfName.getText().equals("") | cbRegion.getSelectedItem().equals("請(qǐng)選擇") | tfArea.getText().equals("") | tfPopu.getText().equals("") | tfGDP.getText().equals("") JOptionPane.showMessageDialog(jFrame, "請(qǐng)?zhí)顚?xiě)相關(guān)信息"); else Studen

32、t co = new Student(); co.setSname(tfName.getText(); co.setSpro(String) cbRegion.getSelectedItem(); co.setSdept(tfArea.getText(); co.setSgrade(tfPopu.getText(); co.setSaddress(tfGDP.getText(); boolean flag = SchoolOperate.add(co); if (flag) JOptionPane.showMessageDialog(jFrame, "添加成功"); els

33、e JOptionPane.showMessageDialog(jFrame, "添加失敗"); else if (e.getActionCommand().equals("刪除") if(!tfName.getText().equals("") String key = tfName.getText(); boolean flag = SchoolOperate.del(key); if (flag) JOptionPane.showMessageDialog(jFrame, "刪除成功"); else JOpt

34、ionPane.showMessageDialog(jFrame, "刪除失敗"); else JOptionPane.showMessageDialog(jFrame, "請(qǐng)?zhí)顚?xiě)一個(gè)國(guó)家名字"); else if (e.getActionCommand().equals("更新") if (!tfName.getText().equals("") && !cbRegion.getSelectedItem().equals("請(qǐng)選擇") && !tfArea.ge

35、tText().equals("") && !tfPopu.getText().equals("") && !tfGDP.getText().equals("") Student cou = new Student(); cou.setSname(tfName.getText(); cou.setSpro(String)cbRegion.getSelectedItem(); cou.setSdept(tfPopu.getText(); cou.setSgrade(tfArea.getText(); co

36、u.setSaddress(tfGDP.getText(); boolean flag = SchoolOperate.modify(cou); if(flag) JOptionPane.showMessageDialog(jFrame, "更新成功"); else JOptionPane.showMessageDialog(jFrame, "更新失敗"); else JOptionPane.showMessageDialog(jFrame, "請(qǐng)?zhí)顚?xiě)相應(yīng)的信息"); public void setValues(Object obj)

37、 this.tm.setDatavalues(obj); public void selectAll() String spro=cbRegion.getSelectedItem().toString(); List<Student> list = SchoolOperate.queryFirst(); Object datavalues = new Objectlist.size()5; for (int i = 0; i < list.size(); i+) Student co = list.get(i); datavaluesi0 = co.getSname(); d

38、atavaluesi1 = co.getSpro(); datavaluesi2 = co.getSdept(); datavaluesi3 = co.getSgrade(); datavaluesi4 = co.getSaddress(); tm = new TableModel(); this.setValues(datavalues); table = new JTable(tm); table.updateUI(); JScrollPane jsp = new JScrollPane(table); jsp.setBounds(0, 200, 600, 182); jContentPa

39、ne.add(jsp); public void selectDownPage() List<Student> list = SchoolOperate.downPage(); if (list != null) Object datavalues = new Objectlist.size()5; for (int i = 0; i < list.size(); i+) Student co = list.get(i); datavaluesi0 = co.getSname(); datavaluesi1 = co.getSpro(); datavaluesi2 = co.

40、getSdept(); datavaluesi3 = co.getSgrade(); datavaluesi4 = co.getSaddress(); this.setValues(datavalues); table.updateUI(); else JOptionPane.showMessageDialog(jFrame, "已經(jīng)是最后一頁(yè)"); public void selectUpPage() List<Student> list = SchoolOperate.upPage(); if (list != null) Object datavalues

41、 = new Objectlist.size()5; for (int i = 0; i < list.size(); i+) Student co = list.get(i); datavaluesi0 = co.getSname(); datavaluesi1 = co.getSpro(); datavaluesi2 = co.getSdept(); datavaluesi3 = co.getSgrade(); datavaluesi4 = co.getSaddress(); this.setValues(datavalues); table.updateUI(); else JOp

42、tionPane.showMessageDialog(jFrame, "已經(jīng)是第一頁(yè)"); 針對(duì)數(shù)據(jù)庫(kù)的增刪改查操作方法類(lèi);package edu;import java.sql.Connection;import java.sql.PreparedStatement;import java.sql.ResultSet;import java.sql.SQLException;import java.sql.Statement;import java.util.ArrayList;import java.util.List;public class SchoolOperat

43、e static int i = 1; static int x = 0; public static List<Student> queryFirst() String sql = "select top 9 * from student order by sname" List<Student> list = query(sql); return list; public static List<Student> downPage() int y = queryCount(); List<Student> list = n

44、ull; int count = 0; / 總頁(yè)數(shù) if (y % 5 = 0) count = y / 5; else count = y / 5 + 1; if (i < count) x = (+i) - 1) * 5; String sql = "select top " + x + " * from (select * from student where sname not in(select top " + x + " sname from student order by sname) as A " list =

45、 query(sql); else if (i >= count) list = null; return list; public static boolean login(String userName,String password) boolean result=false; Connection con = DBConnection.getConnection(); String sql="select passWord from login where userName=?" PreparedStatement ps = null; ResultSet r

46、s = null; tryps=con.prepareStatement(sql);ps.setObject(1, userName);rs=ps.executeQuery();while(rs.next()if(password.equals(rs.getString("passWord").trim()result=true;catch (SQLException e) / TODO Auto-generated catch blocke.printStackTrace();finallytryif(rs!=null)rs.close();catch(SQLExcept

47、ion e)e.printStackTrace();try if(ps!=null)ps.close(); catch (SQLException e) e.printStackTrace();tryif(con!=null)con.close();catch(SQLException e)e.printStackTrace();return result; public static int queryCount() int count = 0; Connection conn = DBConnection.getConnection(); String sql = "select

48、 count(*) from student" Statement stmt = null; ResultSet rs = null; try stmt = conn.createStatement(); rs = stmt.executeQuery(sql); while (rs.next() count = rs.getInt(1); catch (SQLException e) e.printStackTrace(); finally try if (rs != null) rs.close(); if (stmt != null) stmt.close(); if (conn

49、 != null) conn.close(); catch (SQLException e) e.printStackTrace(); return count; public static List<Student> query(String sql) Connection conn = DBConnection.getConnection(); List<Student> list = new ArrayList<Student>(); Statement stmt = null; ResultSet rs = null; try stmt = conn

50、.createStatement(); rs = stmt.executeQuery(sql); while (rs.next() Student cou = new Student(); cou.setSname(rs.getString(1); cou.setSpro(rs.getString(2); cou.setSdept(rs.getString(3); cou.setSgrade(rs.getString(4); cou.setSaddress(rs.getString(5); list.add(cou); catch (SQLException e) e.printStackTr

51、ace(); finally try if (rs != null) rs.close(); if (stmt != null) stmt.close(); if (conn != null) conn.close(); catch (SQLException e) e.printStackTrace(); return list; public static List<Student> upPage() List<Student> list = null; if (i > 2) x = (-i) - 1) * 5; String sql = "select top " + x + " * from (select * from student where sname not in(select top " + x + " sname from student order by sname) as A " list = query(sql); else if (i = 2) list = queryFirst(); i-; else if (i < 2) list = null; return list

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論