java链接数据库.doc_第1页
java链接数据库.doc_第2页
java链接数据库.doc_第3页
java链接数据库.doc_第4页
java链接数据库.doc_第5页
已阅读5页,还剩17页未读 继续免费阅读

下载本文档

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

文档简介

实训报告书实训名称: 基础项目实训 系 (部): 专业班级: 学生姓名: 学 号: 指导教师: 完成日期: 20实训课题JAVA实训人姓名 同组人员实训日期2014/11/28至2014/12/13实训成绩指导教师评语指导教师签名:_2014年12 月16日装订线目 录1 实训概述22 JAVA实训的描述22.1 课题简介22.2 模块简介23 主要模块的详细设计44 程序运行与测试175 实训总结19JAVA的设计与实现1 实训概述实训时间:月日月日地点:北京中关村分组情况:一组实训内容和题目:链接数据库课程基本信息:day1下午 互联网行业架构设计 day2 Oracle 基本操作 Sharing(分片)JDBC编程 java如何去访问数据库 day3 Mongo DB NoSQL数据库 内存性的数据库 主从 sharding Java Driver day4 软工内容 需求文档的制作 dayMongo DB 集群简单管理 2 JAVA课题的描述2.1 课题简介JDBC 是个低级接口,也就是说,它用于直接调用 SQL 命令。在这方面它的功能极佳,并比其它的数据库连接 API 易于使用,但它同时也被设计为一种基础接口,在它之上可以建立高级接口和工具。高级接口是对用户友好的接口,它使用的是一种更易理解和更为方便的 API,这种API在幕后被转换为诸如 JDBC 这样的低级接口。在关系数据库的对象/关系映射中,表中的每行对应于类的一个实例,而每列的值对应于该实例的一个属性。于是,程序员可直接对 Java 对象进行操作;存取数据所需的 SQL 调用将在掩盖下自动生成。此外还可提供更复杂的映射,例如将多个表中的行结合进一个 Java 类中。随着人们对 JDBC 的兴趣日益增涨,越来越多的开发人员一直在使用基于 JDBC 的工具,以使程序的编写更加容易。程序员也一直在编写力图使最终用户对数据库的访问变得更为简单的应用程序。例如应用程序可提供一个选择数据库任务的菜单。任务被选定后,应用程序将给出提示及空白供填写执行选定任务所需的信息。所需信息输入应用程序将自动调用所需的 SQL 命令。在这样一种程序的协助下,即使用户根本不懂 SQL 的语法,也可以执行数据库任务。2.2 模块简介 JDBC API 既支持数据库访问的两层模型(C/S),同时也支持三层模型(B/S)。在两层模型中,Java applet或应用程序将直接与数据库进行对话。这将需要一个JDBC驱动程序来与所访问的特定数据库管理系统进行 通讯。用户的SQL语句被送往数据库中,而其结果将被送回给用户。数据库可以位于另一台计算机上,用户通过网络连接到上面。这就叫做客户机/服务器配置,其中用户的计算机为客户机,提供数据库的计算机为服务器。网络可以是 Intranet(它可将公司职员连接起来),也可以是 Internet。在三层模型中,命令先是被发送到服务的中间层,然后由它将SQL 语句发送给数据库。数据库对 SQL 语句进行处理并将结果送回到中间层,中间层再将结果送回给用户。MIS 主管们都发现三层模型很吸引人,因为可用中间层来控制对公司数据的访问和可作的更新的种类。中间层的另一个好处是,用户可以利用易于使用的高级API,而中间层将把它转换为相应的低级调用。最后,许多情况下三层结构可提供一些性能上的好处。到目前为止,中间层通常都用 C 或 C+ 这类语言来编写,这些语言执行速度较快。然而,随着最优化编译器(它把 Java 字节代码转换为高效的特定于机器的代码)的引入,用 Java 来实现中间层将变得越来越实际。这将是一个很大的进步,它使人们可以充分利用 Java 的诸多优点(如坚固、多线程和安全等特征)。JDBC 对于从Java的中间层来访问数据库非常重要。2.3 数据库结构设计 表1 Readers(读者)表 字段名称数据类型字段长度字段说明备注char学生的姓名性别10学生的学号主键 3 主要模块的详细设计 添加学生package com.briup.view;import java.awt.Container;import java.awt.GridLayout;import java.awt.event.MouseAdapter;import java.awt.event.MouseEvent;import java.awt.event.WindowAdapter;import java.awt.event.WindowEvent;import javax.swing.JButton;import javax.swing.JFrame;import javax.swing.JLabel;import javax.swing.JOptionPane;import javax.swing.JPanel;import javax.swing.JTextField;import com.briup.bean.Student;import com.briup.dao.StudentDao;/添加学生public class AddStudentFrame extends JFrameprivate AdminFrame admin;private JPanel p1,p2,p3,p4,p5;private JLabel idLbl,nameLbl,ageLbl,genderLbl;private JTextField idInput,nameInput,ageInput,genderInput;private JButton submitBtn,cancelBtn;private StudentDao studentDao=new StudentDao();public AddStudentFrame(AdminFrame admin)this.admin=admin;setTitle(添加学生);setResizable(false);setBounds(400, 100, 300, 400);init();event();private void init()Container container=getContentPane();container.setLayout(new GridLayout(5, 1);p1=new JPanel();p1.setLayout(null);idLbl=new JLabel(学籍号:);idLbl.setBounds(50, 30, 50, 20);idInput=new JTextField();idInput.setBounds(100, 30, 120, 20);p1.add(idLbl);p1.add(idInput);container.add(p1);p2=new JPanel();p2.setLayout(null);nameLbl=new JLabel(姓名:);nameLbl.setBounds(50, 10, 50, 20);nameInput=new JTextField();nameInput.setBounds(100, 10, 120, 20);p2.add(nameLbl);p2.add(nameInput);container.add(p2);p3=new JPanel();p3.setLayout(null);ageLbl=new JLabel(年龄:);ageLbl.setBounds(50, 10, 50, 20);ageInput=new JTextField();ageInput.setBounds(100, 10, 120, 20);p3.add(ageLbl);p3.add(ageInput);container.add(p3);p4=new JPanel();p4.setLayout(null);genderLbl=new JLabel(性别:);genderLbl.setBounds(50, 10, 50, 20);genderInput=new JTextField();genderInput.setBounds(100, 10, 120, 20);p4.add(genderLbl);p4.add(genderInput);container.add(p4);p5=new JPanel();p5.setLayout(null);submitBtn=new JButton(确定);submitBtn.setBounds(130, 10, 60, 20);cancelBtn=new JButton(取消);cancelBtn.setBounds(195, 10, 60, 20);p5.add(submitBtn);p5.add(cancelBtn);container.add(p5);private void event()/设置当前窗口的关闭操作/此处可自定义窗口关闭时所作操作this.addWindowListener(new WindowAdapter() public void windowClosing(WindowEvent e) /将之前传递过来的那个管理窗口设置为可用if(admin!=null)admin.setEnabled(true);/释放当前窗口AddStudentFrame.this.dispose(););/取消按钮的操作cancelBtn.addMouseListener(new MouseAdapter() Overridepublic void mouseClicked(MouseEvent e) if(admin!=null)admin.setEnabled(true);AddStudentFrame.this.dispose(););/确定按钮的操作submitBtn.addMouseListener(new MouseAdapter() public void mouseClicked(MouseEvent e) /接受用户在客户端输入的值/正则表达式 String studentId=idInput.getText().trim();String studentName=nameInput.getText().trim();String age=ageInput.getText().trim();String gender=genderInput.getText().trim();Student s=new Student();/此处学籍号并未使用算法控制 所以需要注意别输入了已存在的学籍号s.setStudentid(Long.parseLong(studentId);s.setStudentName(studentName);s.setPassword(studentId);s.setAge(Integer.parseInt(age);s.setGender(gender);/将获得的值封装成一个Student对象 调用指定方法存储到数据库中boolean result=studentDao.addStudent(s);if(result)JOptionPane.showMessageDialog(null, 添加成功!);if(admin!=null)admin.setEnabled(true);AddStudentFrame.this.dispose();elseJOptionPane.showMessageDialog(null, 添加失败,请检查学籍号是否已存在!););public void go()setVisible(true);public static void main(String args) new AddStudentFrame(null).go();登陆界面package com.briup.view;import java.awt.Container;import java.awt.GridLayout;import java.awt.event.MouseAdapter;import java.awt.event.MouseEvent;import java.awt.event.WindowListener;import javax.swing.JButton;import javax.swing.JFrame;import javax.swing.JPanel;public class AdminFrame extends JFrame/构造器private JButton addStudent,findStudent,exitBtn;public AdminFrame(String username)setTitle(欢迎,+username);setBounds(100, 100, 300, 300);setResizable(false);setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);init();event();public void init()Container container=getContentPane();/将窗口设置为两行一列/启用网格布局管理器container.setLayout(new GridLayout(3,1);JPanel p1=new JPanel();p1.setLayout(null);addStudent=new JButton(添加学生);/如果容器设置了布局管理器 那么用户无法指定组件的位置和大小addStudent.setBounds(90, 40, 120, 40);p1.add(addStudent);container.add(p1);JPanel p2=new JPanel();p2.setLayout(null);findStudent=new JButton(查找学生);findStudent.setBounds(90, 30, 120, 40);p2.add(findStudent);container.add(p2);JPanel p3=new JPanel();p3.setLayout(null);exitBtn=new JButton(返回);exitBtn.setBounds(90, 20, 120, 40);p3.add(exitBtn);container.add(p3);public void go()setVisible(true);private void event()/为添加学生按钮 做事件处理/弹出新的添加学生界面 且设置当前窗口不可用addStudent.addMouseListener(new MouseAdapter() public void mouseClicked(MouseEvent e) new AddStudentFrame(AdminFrame.this).go();AdminFrame.this.setEnabled(false););exitBtn.addMouseListener(new MouseAdapter() public void mouseClicked(MouseEvent e) new LoginFrame().go();AdminFrame.this.dispose(););findStudent.addMouseListener(new MouseAdapter() public void mouseClicked(MouseEvent e) new FindStudentFrame().setVisible(true););public static void main(String args) new AdminFrame(admin).go();查找package com.briup.view;import java.awt.Container;import java.awt.GridLayout;import java.awt.event.MouseAdapter;import java.awt.event.MouseEvent;import java.awt.event.WindowAdapter;import java.awt.event.WindowEvent;import java.util.List;import javax.swing.JButton;import javax.swing.JFrame;import javax.swing.JLabel;import javax.swing.JPanel;import javax.swing.JTextField;import com.briup.bean.Student;import com.briup.dao.StudentDao;public class FindStudentFrame extends JFrameprivate StudentDao studentDao=new StudentDao();private JLabel idLbl,nameLbl;private JTextField idInput,nameInput;private JButton findBtn,cancelBtn;public FindStudentFrame()setTitle(查找学生);setBounds(405, 100, 200, 390);setResizable(false);init();event();private void init()Container container=getContentPane();container.setLayout(new GridLayout(3, 1);JPanel p1=new JPanel();p1.setLayout(null);idLbl=new JLabel(学籍号:);idLbl.setBounds(20, 55, 50, 20);idInput=new JTextField();idInput.setBounds(73, 55, 100, 20);p1.add(idLbl);p1.add(idInput);container.add(p1);JPanel p2=new JPanel();p2.setLayout(null);nameLbl=new JLabel(姓名:);nameLbl.setBounds(20, 55, 50, 20);nameInput=new JTextField();nameInput.setBounds(73, 55, 100, 20);p2.add(nameLbl);p2.add(nameInput);container.add(p2);JPanel p3=new JPanel();p3.setLayout(null);findBtn=new JButton(搜索);findBtn.setBounds(60,30,60,20);cancelBtn=new JButton(取消);cancelBtn.setBounds(123,30,60,20);p3.add(findBtn);p3.add(cancelBtn);container.add(p3);private void event()this.addWindowListener(new WindowAdapter() public void windowClosing(WindowEvent e) FindStudentFrame.this.dispose(););findBtn.addMouseListener(new MouseAdapter() public void mouseClicked(MouseEvent e) String idStr=idInput.getText().trim();String nameStr=nameInput.getText().trim();Long studentId=null;String studentName=null;if(idStr.length()!=0)/如果id有值studentId=Long.parseLong(idStr);if(nameStr.length()!=0)studentName=nameStr;List students=studentDao.findStudentByConditions(studentId, studentName);/将查询的结果传递给显示界面new ShowResultFrame(students).go(););public void go()setVisible(true);public static void main(String args) new FindStudentFrame().go();/System.out.println( .trim().length(); 正则表达式 s/System.out.println();/System.out.println(1 2 .replaceAll(s, ).length();修改密码package com.briup.view;import java.awt.Container;import java.awt.GridLayout;import java.awt.event.MouseAdapter;import java.awt.event.MouseEvent;import java.awt.event.WindowAdapter;import java.awt.event.WindowEvent;import javax.swing.JButton;import javax.swing.JFrame;import javax.swing.JLabel;import javax.swing.JOptionPane;import javax.swing.JPanel;import javax.swing.JPasswordField;import com.briup.bean.Student;public class ModifyPwdFrame extends JFrameprivate StudentFrame s;private JLabel l1,l2,l3;private JPasswordField pwd1,pwd2,pwd3;private JButton submitBtn,cancelBtn;public ModifyPwdFrame(StudentFrame s)this.s=s;setTitle(修改密码);setBounds(400, 300, 300, 200);setResizable(false);init();event();public void go()setVisible(true);private void init()Container container=getContentPane();container.setLayout(new GridLayout(4, 1);JPanel p1=new JPanel();p1.setLayout(null);l1=new JLabel(旧密码:);l1.setBounds(30, 20, 60, 20);pwd1=new JPasswordField();pwd1.setBounds(92, 20, 120, 20);p1.add(l1);p1.add(pwd1);container.add(p1);JPanel p2=new JPanel();p2.setLayout(null);l2=new JLabel(新密码:);l2.setBounds(30, 20, 60, 20);pwd2=new JPasswordField();pwd2.setBounds(92, 20, 120, 20);p2.add(l2);p2.add(pwd2);container.add(p2);JPanel p3=new JPanel();p3.setLayout(null);l3=new JLabel(确认密码:);l3.setBounds(30, 20, 60, 20);pwd3=new JPasswordField();pwd3.setBounds(92, 20, 120, 20);p3.add(l3);p3.add(pwd3);container.add(p3);JPanel p4=new JPanel();p4.setLayout(null);submitBtn=new JButton(确定);submitBtn

温馨提示

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

评论

0/150

提交评论