ImageVerifierCode 换一换
格式:DOCX , 页数:27 ,大小:449.89KB ,
资源ID:24710850      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/24710850.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(java连接数据库课程设计.docx)为本站会员(b****3)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

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

1、java连接数据库课程设计*大 学学 生 实 验 报 告实验课程名称 J2EE及JAVA程序设计 开课实验室 DS1501 J2EE及JAVA程序设计实验报告 开课实验室:DS1501 2015 年 6 月18日学院软件学院软工2班姓名成绩课程名称J2EE及JAVA程序设计实验项目名 称实验6-8: 图形界面编程、抽象类与接口、数据库。指导教师教师评语教师签名:2014年 月 日一、 实验目的实验六:基本掌握使用JAVA来完成基本的图形界面等调试与编程,实现理论课上讲述的内容PPT内容的验证。实验七:掌握抽象类与接口的概念,验证代码,能写小程序。实验八:掌握利用JAVA完成数据库课程中的基本数

2、据记录操作。二、实验内容实验六内容:调试,验证,课件ppt内容,课后布置的作业(实验报告内容中可不写)。实验七内容:完成教材12章关于抽象类与接口方面的范例内容的代码验证、后面作业的代码设计(实验报告中可不写)。实验八内容:(二选一,提交该部分实验报告内容)1) 利用图形界面编程,实现C/S模式的数据库访问操作。完成SQL SERVER或MYSQL数据库管理系统的安装,配置,JAVA数据库访问环境的配置;完成数据库表的建立,记录插入等;建立用户表,包含用户名、密码字段;利用JAVA实现图形界面,用户登录验证,进入软件运行后,针对某表记录的增、删、改、查操作。2) 完成JAVA WEB应用开发,

3、实现B/S模式的数据库访问操作。完成SQL SERVER或MYSQL数据库管理系统的安装,配置,JAVA数据库访问环境的配置,Tomcat服务器安装配置;完成数据库表的建立,记录插入等;建立用户表,包含用户名、密码字段;利用JAVA实现WEB应用,通过浏览器访问WEB进行用户登录验证,进入WEB应用运行后,针对某表记录的增、删、改、查操作。三、使用仪器、材料JAVA SE JDK 1.7.55TomcatSql server四、实验过程原始记录(数据、图表、计算等):以下是我所连接的数据库表结构,Book表是存储图书信息的,Reader表是存储读者信息的,Borrow表是存储借阅记录的,Use

4、r表是存储用户登录用户名和密码的。为了不暴露表结构和只显示用户需要的信息,建立了一个视图record下面是用java连接数据库的过程:首先下载java连接sql数据库的驱动程序,配置环境。下面是整个程序演示过程截图:1.登录界面首先是登录界面用户名或密码错误弹出登录失败消息框2.初始界面正确后进入初始界面,从视图中读取的数据库信息3.增加功能点击增加按钮弹出增加记录对话框输入增加记录的信息后点击确定,再回到初始界面点击刷新按钮,可以看到刚增加的记录已经显示在初始界面中。4.修改功能点击修改按钮,弹出修改记录对话框根据输入的读者编号和图书编号确定修改的是哪条记录,填入修改的信息后点击确定,回到初

5、始界面点击刷新,可以看到修改的记录已修改掉5.查询功能点击查询按钮弹出搜索记录对话框输入姓名点击确定就会在下面显示此姓名的相关记录输入书名也可以查询此书相关的记录6.删除功能,可以单行删除也可以多行删除首先单行删除,选中一行后点击删除按钮就可以删除此条记录,而且数据库也相应地删除了此条记录,通过点击刷新再重新读取数据库数据可以证明删除前删除后多行删除,选中多行后点击删除删除前删除后点击刷新后以上就是整个程序演示过程遇到的问题: 1. 借书日期和还书日期以date类型显示到界面中总会少两天,不知道为什么,所以我把date类型改为了char类型,然后就正常了。2. 开始写删除多行的时候,我是写的删

6、除数据库的信息并一起删掉JTable中的信息,但是由于在删除JTable中信息时最开始得到的序号和删除一行后序号减少了,于是会出现越界的错误,于是我改为了删除数据库信息后再调用读取数据库信息的函数进行了刷新就没问题了。下面是连接数据库并进行相关操作的源代码import java.sql.*;import java.awt.*;import java.awt.event.*;import javax.swing.*;import javax.swing.table.*;import java.util.*;/登录界面的类,也是初始类public class ConnectionDatabase

7、extends JFrame implements ActionListener private Connection con=null;/连接数据库 private Statement stmt=null;/执行数据库sql语句 private ResultSet rs=null;/存储数据库查询结果 int if_success = 0;/判断是否登录成功 /登录界面的设置 private JLabel namelabel = new JLabel(用户名); private JTextField name = new JTextField(10); private JLabel pass

8、label = 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,5,20); p1.add(namelabel); p1.add(name); p1.add(passlabel); p1.add(pwd); JPanel p2=new JPanel(); p2.add(co

9、mmit,BorderLayout.SOUTH); add(p1,BorderLayout.NORTH); add(p2,BorderLayout.CENTER); setSize(300,200); setTitle(登录界面); commit.addActionListener(this);/为登录按钮增加监听器 /主函数,显示登录界面 public static void main(String args) ConnectionDatabase login = new ConnectionDatabase(); login.setLocationRelativeTo(null); log

10、in.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); login.setVisible(true); /点击按钮登录后判断用户名和密码是否正确,是否允许登录进去 public void actionPerformed(ActionEvent e) try String sname=name.getText(); String spwd=pwd.getText(); /连接数据库 try Class.forName(com.microsoft.sqlserver.jdbc.SQLServerDriver); System.out.println(成

11、功加载SQL驱动程序); catch(Exception exw) System.out.println(找不到SQL驱动程序); try con = DriverManager.getConnection(jdbc:sqlserver:/localhost:1433;DatabaseName=Library,sa,xyz123456); System.out.println(数据库连接成功); catch(Exception exy) System.out.println(数据库连接失败); /执行sql语句,查询出用户名和密码 stmt = con.createStatement(); r

12、s=stmt.executeQuery(select name,password from User); /判断用户名和密码是否正确 while(rs.next() if(sname.equals(rs.getString(name) & spwd.equals(rs.getString(password) if_success = 1; rs.close(); if(if_success=1)/正确则进入初始界面 readFrame frame = new readFrame(); frame.setVisible(true); else JOptionPane.showMessageDia

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

14、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();/建立默认的JTable模型 public readFrame() set

15、Title(图书借还记录); 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,ScrollPaneConstants.VERTICAL_SCROLLBAR_ALWAYS,Scr

16、ollPaneConstants.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); ); /点击增加按钮显示增加对话框 adding.addAc

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

18、fy.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().length;/

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

20、ctedRowIndex, 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 selRowIndexs=table.ge

21、tSelectedRows();/得到多行的行号 for(int i=0; iselRowIndexs.length; i+)/从数据库中删除这几行记录 String cValue1=(String) tableModel.getValueAt(selRowIndexsi, 0); String cValue2=(String) tableModel.getValueAt(selRowIndexsi, 1); stmt.execute(delete from Borrow where Rno=+cValue1+ and Bno=+cValue2+); read();/从数据库中重新读入数据 c

22、on.close(); stmt.close(); catch(SQLException e) e.printStackTrace(); ); read(); /连接数据库 public static void ConnectData() try Class.forName(com.microsoft.sqlserver.jdbc.SQLServerDriver); System.out.println(成功加载SQL驱动程序); catch(Exception e) System.out.println(找不到SQL驱动程序); try con = DriverManager.getConn

23、ection(jdbc:sqlserver:/localhost:1433;DatabaseName=Library,sa,xyz123456); System.out.println(数据库连接成功); catch(Exception e) System.out.println(数据库连接失败); /从数据库中读入记录 public static void read() try ConnectData(); stmt = con.createStatement(); rs=stmt.executeQuery(select *from record); Vector columnName =

24、new Vector();/字段名 VectorVector dataVector = new VectorVector();/存储rs中从数据库中查出的数据 columnName.add(读者编号); columnName.add(图书编号); columnName.add(姓名); columnName.add(书名); columnName.add(借书日期); columnName.add(还书日期); while(rs.next()/把rs中的数据赋给dataVector Vector vec = new Vector(); for(int i=1;i=6;i+) vec.add(r

25、s.getObject(i); dataVector.add(vec); tmhavesold.setDataVector(dataVector, columnName);/设定模型数据和字段 con.close(); stmt.close(); rs.close(); catch(SQLException e) e.printStackTrace(); table.setModel(tmhavesold); /查询功能的类class searchFrame extends JFrame implements ActionListener private Connection con=null

26、; private Statement stmt=null; private ResultSet rs=null; /界面设计 private JLabel namelabel = new JLabel(姓名); private JTextField name = new JTextField(5); private JLabel booklabel = new JLabel(书名); private JTextField book = new JTextField(10); private JButton commit = new JButton(确定); private JTable st

27、able=new JTable();/一样用jtable显示查询出的结果 private DefaultTableModel model = new DefaultTableModel();/建立默认的JTable模型 public searchFrame() JPanel ps2=new JPanel(); ps2.setLayout(new GridLayout(1,5); ps2.add(namelabel); ps2.add(name); ps2.add(booklabel); ps2.add(book); ps2.add(commit); JScrollPane ps3=new JS

28、crollPane(stable,ScrollPaneConstants.VERTICAL_SCROLLBAR_ALWAYS,ScrollPaneConstants.HORIZONTAL_SCROLLBAR_NEVER); add(ps2,BorderLayout.NORTH); this.getContentPane().add(ps3,BorderLayout.CENTER); this.setSize(500,380); this.setTitle(搜索记录); commit.addActionListener(this);/为确定按钮增加监听器 /点击确定后查询并显示出,过程和read()函数基本一致 public void actionPerformed(ActionEvent e) try String namevalue = name.getText();

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1