收藏 分享(赏)

java连接数据库课程设计.doc

上传人:精品资料 文档编号:8656048 上传时间:2019-07-07 格式:DOC 页数:21 大小:527.50KB
下载 相关 举报
java连接数据库课程设计.doc_第1页
第1页 / 共21页
java连接数据库课程设计.doc_第2页
第2页 / 共21页
java连接数据库课程设计.doc_第3页
第3页 / 共21页
java连接数据库课程设计.doc_第4页
第4页 / 共21页
java连接数据库课程设计.doc_第5页
第5页 / 共21页
点击查看更多>>
资源描述

1、*大 学学 生 实 验 报 告实验课程名称 J2EE 及 JAVA 程序设计 开课实验室 DS1501 学 院 软件学院 年级 2012 专业班 2 班 学 生 姓 名 学 号 开 课 时 间 2013 至 2014 学年第 2 学期总 成 绩教师签名软件学院制J2EE 及 JAVA 程序设计实验报告开课实验室:DS1501 2015 年 6 月 18 日学院 软件学院 软工 2 班 姓名 成绩课程名称J2EE 及 JAVA 程序设计实验项目名 称实验6-8: 图形界面编程、抽象类与接口、数据库。 指导教师教师评语教师签名:2014 年 月 日一、 实验目的实验六:基本掌握使用 JAVA 来完

2、成基本的图形界面等调试与编程,实现理论课上讲述的内容 PPT 内容的验证。实验七:掌握抽象类与接口的概念,验证代码,能写小程序。实验八:掌握利用JAVA完成数据库课程中的基本数据记录操作。二、实验内容实验六内容:调试,验证,课件ppt内容,课后布置的作业(实验报告内容中可不写) 。实验七内容:完成教材12章关于抽象类与接口方面的范例内容的代码验证、后面作业的代码设计(实验报告中可不写) 。实验八内容:(二选一,提交该部分实验报告内容)1) 利用图形界面编程,实现C/S模式的数据库访问操作。完成SQL SERVER或MYSQL数据库管理系统的安装,配置,JAVA数据库访问环境的配置;完成数据库表

3、的建立,记录插入等;建立用户表,包含用户名、密码字段;利用JAVA实现图形界面,用户登录验证,进入软件运行后,针对某表记录的增、删、改、查操作。2) 完成JAVA WEB应用开发,实现B/S模式的数据库访问操作。完成SQL SERVER或MYSQL 数据库管理系统的安装,配置,JAVA数据库访问环境的配置,Tomcat服务器安装配置;完成数据库表的建立,记录插入等;建立用户表,包含用户名、密码字段;利用JAVA实现WEB应用,通过浏览器访问WEB进行用户登录验证,进入WEB应用运行后,针对某表记录的增、删、改、查操作。三、使用仪器、材料JAVA SE JDK 1.7.55TomcatSql s

4、erver四、实验过程原始记录(数据、图表、计算等):以下是我所连接的数据库表结构,Book 表是存储图书信息的,Reader 表是存储读者信息的,Borrow 表是存储借阅记录的,User 表是存储用户登录用户名和密码的。为了不暴露表结构和只显示用户需要的信息,建立了一个视图 record下面是用 java 连接数据库的过程:首先下载 java 连接 sql 数据库的驱动程序,配置环境。下面是整个程序演示过程截图:1.登录界面首先是登录界面用户名或密码错误弹出登录失败消息框2.初始界面正确后进入初始界面,从视图中读取的数据库信息3.增加功能点击增加按钮弹出增加记录对话框输入增加记录的信息后点

5、击确定,再回到初始界面点击刷新按钮,可以看到刚增加的记录已经显示在初始界面中。4.修改功能点击修改按钮,弹出修改记录对话框根据输入的读者编号和图书编号确定修改的是哪条记录,填入修改的信息后点击确定,回到初始界面点击刷新,可以看到修改的记录已修改掉5.查询功能点击查询按钮弹出搜索记录对话框输入姓名点击确定就会在下面显示此姓名的相关记录输入书名也可以查询此书相关的记录6.删除功能,可以单行删除也可以多行删除首先单行删除,选中一行后点击删除按钮就可以删除此条记录,而且数据库也相应地删除了此条记录,通过点击刷新再重新读取数据库数据可以证明删除前删除后多行删除,选中多行后点击删除删除前删除后点击刷新后以

6、上就是整个程序演示过程遇到的问题:1. 借书日期和还书日期以 date 类型显示到界面中总会少两天,不知道为什么,所以我把 date类型改为了 char 类型,然后就正常了。2. 开始写删除多行的时候,我是写的删除数据库的信息并一起删掉 JTable 中的信息,但是由于在删除 JTable 中信息时最开始得到的序号和删除一行后序号减少了,于是会出现越界的错误,于是我改为了删除数据库信息后再调用读取数据库信息的函数进行了刷新就没问题了。下面是连接数据库并进行相关操作的源代码import java.sql.*;import java.awt.*;import java.awt.event.*;im

7、port javax.swing.*;import javax.swing.table.*;import java.util.*;/登录界面的类,也是初始类public class ConnectionDatabase extends JFrame implements ActionListenerprivate Connection con=null;/连接数据库private Statement stmt=null;/执行数据库 sql 语句private ResultSet rs=null;/存储数据库查询结果int if_success = 0;/判断是否登录成功/登录界面的设置pri

8、vate JLabel namelabel = new JLabel(“用户名“);private JTextField name = new JTextField(10);private JLabel passlabel = new JLabel(“密码“);private JTextField pwd = new JTextField(30);private JButton commit = new JButton(“登录“);public ConnectionDatabase()JPanel p1=new JPanel();p1.setLayout(new GridLayout(2,2,

9、5,20);p1.add(namelabel);p1.add(name);p1.add(passlabel);p1.add(pwd);JPanel p2=new JPanel();p2.add(commit,BorderLayout.SOUTH);add(p1,BorderLayout.NORTH);add(p2,BorderLayout.CENTER);setSize(300,200);setTitle(“登录界面“);commit.addActionListener(this);/为登录按钮增加监听器/主函数,显示登录界面public static void main(String arg

10、s)ConnectionDatabase login = new ConnectionDatabase();login.setLocationRelativeTo(null);login.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);login.setVisible(true); /点击按钮登录后判断用户名和密码是否正确,是否允许登录进去public void actionPerformed(ActionEvent e)tryString sname=name.getText();String spwd=pwd.getText();/连接数据库t

11、ry Class.forName(“com.microsoft.sqlserver.jdbc.SQLServerDriver“);System.out.println(“成功加载 SQL 驱动程序“);catch(Exception exw)System.out.println(“找不到 SQL 驱动程序“);trycon = DriverManager.getConnection(“jdbc:sqlserver:/localhost:1433;DatabaseName=Library“,“sa“,“xyz123456“);System.out.println(“数据库连接成功“);catch

12、(Exception exy)System.out.println(“数据库连接失败“); /执行 sql 语句,查询出用户名和密码 stmt = con.createStatement();rs=stmt.executeQuery(“select name,password from User“);/判断用户名和密码是否正确while(rs.next()if(sname.equals(rs.getString(“name“) rs.close();if(if_success=1)/正确则进入初始界面readFrame frame = new readFrame();frame.setVisi

13、ble(true);elseJOptionPane.showMessageDialog(null,“登录失败!“); catch(SQLException ex)ex.printStackTrace();/从数据库中读入视图中的记录初始界面class readFrame extends JFrameprivate static Connection con = null;private static Statement stmt = null;private static ResultSet rs = null;/界面设置private JButton search = new JButton

14、(“查询“);private JButton adding = new JButton(“增加“);private JButton delete = new JButton(“删除“);private JButton modify = new JButton(“修改“);private JButton fresh = new JButton(“刷新“);private static JTable table=new JTable();/JTable 用于显示记录private static DefaultTableModel tmhavesold = new DefaultTableModel

15、();/建立默认的 JTable 模型public readFrame()setTitle(“图书借还记录“);setSize(600,500);JPanel p1 = new JPanel();/创建面板 p1 放置四个按钮.p1.setLayout(new GridLayout(1,5);p1.add(adding);p1.add(delete);p1.add(modify);p1.add(search);p1.add(fresh);add(p1,BorderLayout.NORTH);JScrollPane p2=new JScrollPane(table,ScrollPaneConst

16、ants.VERTICAL_SCROLLBAR_ALWAYS,ScrollPaneConstants.HORIZONTAL_SCROLLBAR_NEVER);this.getContentPane().add(p2,BorderLayout.CENTER);/点击查询按钮显示查询对话框search.addActionListener(new ActionListener()public void actionPerformed(ActionEvent e1)JFrame queryFrame = new searchFrame();queryFrame.setVisible(true););/

17、点击增加按钮显示增加对话框adding.addActionListener(new ActionListener()public void actionPerformed(ActionEvent e2)JFrame addingFrame = new addFrame();addingFrame.setVisible(true););/点击刷新按钮从数据库中重新读入数据fresh.addActionListener(new ActionListener()public void actionPerformed(ActionEvent e3)read();/从数据库视图中读入数据);/点击修改按

18、钮弹出修改记录对话框modify.addActionListener(new ActionListener()public void actionPerformed(ActionEvent e4)JFrame myframe = new modifyFrame();myframe.setVisible(true););/点击删除按钮后的操作delete.addActionListener(new ActionListener()public void actionPerformed(ActionEvent e5)int selectRows=table.getSelectedRows().le

19、ngth;/ 取得用户所选行的行数DefaultTableModel tableModel = (DefaultTableModel) table.getModel();/得到 jtable 中的数据try ConnectData();/连接数据库stmt = con.createStatement();if(selectRows=1)/如果选中单行int selectedRowIndex = table.getSelectedRow(); / 取得用户所选单行 /得到选中行的 Rno 和 Bno 值 String cellValue1=(String) tableModel.getValue

20、At(selectedRowIndex, 0);String cellValue2=(String) tableModel.getValueAt(selectedRowIndex, 1);stmt.execute(“delete from Borrow where Rno=“+cellValue1+“ and Bno=“+cellValue2+“);/根据 Rno 和 Bno 的值删除数据库表 Borrow 中此行记录tableModel.removeRow(selectedRowIndex);/从 JTable 中删除此行else if(selectRows1)/选中多行int selRow

21、Indexs=table.getSelectedRows();/得到多行的行号for(int i=0; i columnName = new Vector();/字段名Vector dataVector = new Vector();/存储rs 中从数据库中查出的数据columnName.add(“读者编号“);columnName.add(“图书编号“); columnName.add(“姓名“);columnName.add(“书名“);columnName.add(“借书日期“);columnName.add(“还书日期“);while(rs.next()/把 rs 中的数据赋给 dat

22、aVectorVector vec = new Vector();for(int i=1;i columnName = new Vector();/字段名Vector dataVector = new Vector();columnName.add(“读者编号“);columnName.add(“图书编号“); columnName.add(“姓名“);columnName.add(“书名“);columnName.add(“借书日期“);columnName.add(“还书日期“);while(rs.next()Vector vec = new Vector();for(int i=1;i=

23、6;i+)vec.add(rs.getObject(i);dataVector.add(vec);model.setDataVector(dataVector, columnName);/设定模型数据和字段con.close();stmt.close();rs.close(); catch(SQLException ex)ex.printStackTrace();stable.setModel(model);/增加功能类class addFrame extends JFrame implements ActionListener private Connection con=null;priv

24、ate Statement stmt=null;/界面设计private JLabel borrowlabel = new JLabel(“借阅日期“);private JTextField borrow = new JTextField(10);private JLabel returnlabel = new JLabel(“归还日期“);private JTextField reback = new JTextField(10);private JButton commit = new JButton(“确定“);private JLabel rnolabel = new JLabel(“

25、读者编号“);private JTextField rno = new JTextField(5);private JLabel bnolabel = new JLabel(“书编号“);private JTextField bno = new JTextField(5);public addFrame()JPanel p1=new JPanel();p1.setLayout(new GridLayout(4,2);p1.add(rnolabel);p1.add(rno);p1.add(bnolabel);p1.add(bno);p1.add(borrowlabel);p1.add(borro

26、w);p1.add(returnlabel);p1.add(reback);JPanel p2=new JPanel();p2.add(commit);add(p1,BorderLayout.NORTH);add(p2,BorderLayout.CENTER);setSize(300,200);setTitle(“增加记录“);commit.addActionListener(this);/为确定按钮增加监听器/点击确定按钮后的相关操作public void actionPerformed(ActionEvent e)try String rnovalue = rno.getText();St

27、ring bnovalue = bno.getText();String borrowvalue = borrow.getText();String returnvalue = reback.getText();try Class.forName(“com.microsoft.sqlserver.jdbc.SQLServerDriver“);System.out.println(“成功加载 SQL 驱动程序“);catch(Exception exw)System.out.println(“找不到 SQL 驱动程序“);trycon = DriverManager.getConnection(

28、“jdbc:sqlserver:/localhost:1433;DatabaseName=Library“,“sa“,“xyz123456“);System.out.println(“数据库连接成功“);catch(Exception exy)System.out.println(“数据库连接失败“); stmt = con.createStatement();stmt.executeUpdate(“insert into Borrow values(“+rnovalue+“,“+bnovalue+“,“+borrowvalue+“,“+returnvalue+“)“);/执行增加的 sql

29、语句con.close();stmt.close(); catch(SQLException ex)ex.printStackTrace();/修改功能的类class modifyFrame extends JFrame implements ActionListener private Connection con=null;private Statement stmt=null;/界面设计private JLabel findlabel = new JLabel(“根据输入的读者编号和书籍编号确定修改记录的位置“);private JLabel borrowlabel = new JLab

30、el(“借阅日期“);private JTextField borrow = new JTextField(10);private JLabel returnlabel = new JLabel(“归还日期“);private JTextField reback = new JTextField(10);private JButton commit = new JButton(“确定“);private JLabel rnolabel = new JLabel(“读者编号“);private JTextField rno = new JTextField(5);private JLabel b

31、nolabel = new JLabel(“书编号“);private JTextField bno = new JTextField(5);public modifyFrame()JPanel p1=new JPanel();p1.setLayout(new GridLayout(4,2);p1.add(rnolabel);p1.add(rno);p1.add(bnolabel);p1.add(bno);p1.add(borrowlabel);p1.add(borrow);p1.add(returnlabel);p1.add(reback);JPanel p2=new JPanel();p2

32、.add(commit);JPanel p3=new JPanel();p3.add(findlabel);add(p1,BorderLayout.NORTH);add(p2,BorderLayout.CENTER);add(p3,BorderLayout.SOUTH);setSize(350,200);setTitle(“修改记录“);commit.addActionListener(this);/为确定按钮增加监听器/点击确定后确定修改,执行相关操作public void actionPerformed(ActionEvent e)try String rnovalue = rno.get

33、Text();String bnovalue = bno.getText();String borrowvalue = borrow.getText();String returnvalue = reback.getText();try Class.forName(“com.microsoft.sqlserver.jdbc.SQLServerDriver“);System.out.println(“成功加载 SQL 驱动程序“);catch(Exception exw)System.out.println(“找不到 SQL 驱动程序“);trycon = DriverManager.getCo

34、nnection(“jdbc:sqlserver:/localhost:1433;DatabaseName=Library“,“sa“,“xyz123456“);System.out.println(“数据库连接成功“);catch(Exception exy)System.out.println(“数据库连接失败“); stmt = con.createStatement();/根据读者编号和书的编号确定修改的记录stmt.executeUpdate(“update Borrow set BorrowDate=“+borrowvalue+“ where Rno=“+rnovalue+“and Bno=“+bnovalue+“);/根据 Rno 和 BNo 修改此记录的借书日期stmt.executeUpdate(“update Borrow set ReturnDate=“+returnvalue+“ where Rno=“+rnovalue+“and Bno=“+bnovalue+“);/根据 Rno 和 BNo 修改此记录的还书日期con.close();stmt.close(); catch(SQLException ex)ex.printStackTrace();

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 企业管理 > 管理学资料

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报