1、名称J2EE及JAVA程序设计实验项目名 称实验6-8: 图形界面编程、抽象类与接口、数据库。指导教师教师评语教师签名:2014年 月 日一、 实验目的实验六:基本掌握使用JAVA来完成基本的图形界面等调试与编程,实现理论课上讲述的内容PPT内容的验证。实验七:掌握抽象类与接口的概念,验证代码,能写小程序。实验八:掌握利用JAVA完成数据库课程中的基本数据记录操作。二、实验内容实验六内容:调试,验证,课件ppt内容,课后布置的作业(实验报告内容中可不写)。实验七内容:完成教材12章关于抽象类与接口方面的范例内容的代码验证、后面作业的代码设计(实验报告中可不写)。实验八内容:(二选一,提交该部分
2、实验报告内容)1) 利用图形界面编程,实现C/S模式的数据库访问操作。完成SQL SERVER或MYSQL数据库管理系统的安装,配置,JAVA数据库访问环境的配置;完成数据库表的建立,记录插入等;建立用户表,包含用户名、密码字段;利用JAVA实现图形界面,用户登录验证,进入软件运行后,针对某表记录的增、删、改、查操作。2) 完成JAVA WEB应用开发,实现B/S模式的数据库访问操作。完成SQL SERVER或MYSQL数据库管理系统的安装,配置,JAVA数据库访问环境的配置,Tomcat服务器安装配置;利用JAVA实现WEB应用,通过浏览器访问WEB进行用户登录验证,进入WEB应用运行后,针
3、对某表记录的增、删、改、查操作。三、使用仪器、材料JAVA SE JDK 1.7.55TomcatSql server四、实验过程原始记录(数据、图表、计算等):以下是我所连接的数据库表结构,Book表是存储图书信息的,Reader表是存储读者信息的,Borrow表是存储借阅记录的,User表是存储用户登录用户名和密码的。为了不暴露表结构和只显示用户需要的信息,建立了一个视图record下面是用java连接数据库的过程:首先下载java连接sql数据库的驱动程序,配置环境。下面是整个程序演示过程截图:1.登录界面首先是登录界面用户名或密码错误弹出登录失败消息框2.初始界面正确后进入初始界面,从
4、视图中读取的数据库信息3.增加功能点击增加按钮弹出增加记录对话框输入增加记录的信息后点击确定,再回到初始界面点击刷新按钮,可以看到刚增加的记录已经显示在初始界面中。4.修改功能点击修改按钮,弹出修改记录对话框根据输入的读者编号和图书编号确定修改的是哪条记录,填入修改的信息后点击确定,回到初始界面点击刷新,可以看到修改的记录已修改掉5.查询功能点击查询按钮弹出搜索记录对话框输入姓名点击确定就会在下面显示此姓名的相关记录输入书名也可以查询此书相关的记录6.删除功能,可以单行删除也可以多行删除首先单行删除,选中一行后点击删除按钮就可以删除此条记录,而且数据库也相应地删除了此条记录,通过点击刷新再重新
5、读取数据库数据可以证明删除前删除后多行删除,选中多行后点击删除点击刷新后以上就是整个程序演示过程遇到的问题: 1. 借书日期和还书日期以date类型显示到界面中总会少两天,不知道为什么,所以我把date类型改为了char类型,然后就正常了。2. 开始写删除多行的时候,我是写的删除数据库的信息并一起删掉JTable中的信息,但是由于在删除JTable中信息时最开始得到的序号和删除一行后序号减少了,于是会出现越界的错误,于是我改为了删除数据库信息后再调用读取数据库信息的函数进行了刷新就没问题了。下面是连接数据库并进行相关操作的源代码import java.sql.*;import java.awt
6、.*;import java.awt.event.*;import javax.swing.*;import javax.swing.table.*;import java.util.*;/登录界面的类,也是初始类public class ConnectionDatabase extends JFrame implements ActionListener private Connection con=null;/连接数据库 private Statement stmt=null;/执行数据库sql语句 private ResultSet rs=null;/存储数据库查询结果 int if_s
7、uccess = 0;/判断是否登录成功 /登录界面的设置 private 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
8、.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(commit,BorderLayout.SOUTH); add(p1,BorderLayout.NORTH); add(p2,BorderLayout.CENTER); setSize(300,200); setTitle(登录界面 commit.addActionListener(this);/为登录按钮增加监听器 /主函数,显示
9、登录界面 public static void main(String args) ConnectionDatabase login = new ConnectionDatabase(); login.setLocationRelativeTo(null); login.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); login.setVisible(true); /点击按钮登录后判断用户名和密码是否正确,是否允许登录进去 public void actionPerformed(ActionEvent e) try String sname=na
10、me.getText(); String spwd=pwd.getText(); /连接数据库 try Class.forName(com.microsoft.sqlserver.jdbc.SQLServerDriver System.out.println(成功加载SQL驱动程序 catch(Exception exw)找不到SQL驱动程序 try con = DriverManager.getConnection(jdbc:sqlserver:/localhost:1433;DatabaseName=Library,saxyz123456数据库连接成功 catch(Exception ex
11、y)数据库连接失败 /执行sql语句,查询出用户名和密码 stmt = con.createStatement(); rs=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(
12、); frame.setVisible(true); else JOptionPane.showMessageDialog(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
13、 search = new JButton(查询 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();/建立默认的JTable模型 public readFrame()图书借还记录 setSize(600,500);
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1