当前位置:文档之家› JAVA-JDBC连接数据库(查询_添加_修改_删除)

JAVA-JDBC连接数据库(查询_添加_修改_删除)

一实验目的(1)理解JDBC的工作原理,熟悉java.sql包中与数据库访问相关的类及其用法,如DriverManager、 Connection、Statement、ResultSet。

(2)熟悉利用JDBC进行数据库访问的步骤:—加载JDBC驱动程序(Class.forName()—建立数据库连接(DriverManager.getConnection())—发布SQL命令(stmt=Con.createStatement(),stmt.executeQuery())—取结果集并处理(ResultSet的next()方法和.get***()方法) —关闭连接,释放对象(close())(3)掌握建立ODBC数据源的方法,会使用JDBC-ODBC Bridge进行数据库访问。

二实验内容编写图形界面程序,利用JDBC实现图书/同学通讯录/校园卡/团员/教师/学生管理系统。

(任选1题,也可自拟题目,但需指导教师同意!)三实验要求(1) 进行规范的数据库设计,正确地定义关系数据表的结构及表间联系(包括:字段的数据类型、宽度、精度、主键、外键、缺省值)。

(2)要求界面布局紧凑、流畅、美观,实现的功能较为完善(3)本实验分两次完成,第一次可以先做一些准备测试,旨在熟悉JDBCAPI编程接口中相关类的使用方法,测试中可以先基于字符界面实现功能,再逐步过渡到图形界面。

四实验步骤(1)在Access或SQL Server中建立数据库及基础表。

在控制面板中正确配置ODBC数据源,并测试成功。

(2)编写图形界面的Application,利用JDBC-ODBC Bridge进行数据库访问,实现要求的功能。

五实验主要代码六运行界面主界面:录入演示:删除演示:删除后再查询:学号:511020830|姓名:朱凯周|性别:男|班级:D软件101|籍贯:无锡|生日:1992-03-16| 已删除。

在学号文本框内输入学号,按下回车,其他信息自动显示。

把“D软件101”改成“D计算机101”import java.sql.*;import java.awt.*;import java.awt.event.*;import javax.swing.*;//加载包。

public class jdbc_winXsy{public static void main(String args[]){InfoWindow win=new InfoWindow();}}//主控函数class InfoWindow extends Frame implements ActionListener{Button 录入=new Button("录入");//新建按钮,录入。

Button 查询=new Button("查询");//新建按钮,查询。

Button 判断=new Button("判断");//新建按钮,判断。

Button 删除=new Button("删除");//新建按钮,删除。

Button 修改=new Button("修改");//新建按钮,修改。

Button 清空=new Button("清空");//新建按钮,清空。

TextArea 显示区=new TextArea(10,68);//新建文本区,这里是长为68个字符,高为10行。

InfoWindow()//与类同名的构造函数。

{setLayout(new FlowLayout());/*设置布局格式,这里是FlowLayout布局,具体就是组件会按照加入的先后顺序从左到右排列,一行排满之后才会转到下一行。

这里FlowLayout.LEFT指的是所有的组件左对齐。

组件调用setSize()方法设置的大小无效。

*/setTitle("学生信息管理-Xsy");//设置窗口标题显示区.append("\n\n\n");显示区.append("=============================================\n");显示区.append(" == ==\n");显示区.append(" == 欢迎使用学生信息管理系统 ==\n");显示区.append(" == ==\n");显示区.append(" == ==\n");显示区.append(" == designedby 薛思雨 ==\n");显示区.append("=============================================\n");//欢迎界面add(new Label("学生信息表"));//添加标签:“学生信息表:”。

add(显示区); //添加文本区。

add(录入); //添加“录入”按钮。

录入.addActionListener(this);//给录入按钮注册ActionListener监听器。

add(查询); //添加“查询”按钮。

查询.addActionListener(this);//给查询按钮注册ActionListener监听器。

add(判断); //添加“判断”按钮。

判断.addActionListener(this);//给判断按钮注册ActionListener监听器。

add(删除); //添加“删除”按钮。

删除.addActionListener(this);//给删除按钮注册ActionListener监听器。

add(修改); //添加“修改”按钮。

修改.addActionListener(this);//给修改按钮注册ActionListener监听器。

add(清空); //添加“修改”按钮。

清空.addActionListener(this);//给清空按钮注册ActionListener监听器。

addWindowListener(new WindowAdapter(){public void windowClosing(WindowEvent e){ System.exit(0);}});//添加窗口监听器,在实现“关闭窗口”这个事件时,程序退出。

setVisible(true);//设置可见。

setBounds(100,100,520,300);//设置弹出窗口的坐标位置和大小。

前两个数/是以屏幕//左上角为原点的坐标,后两个数字,是窗口的宽与高。

validate();}public void actionPerformed(ActionEvent e){Connection con;Statement stmt;ResultSet rs;PreparedStatement prestmt;try{Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");//加载驱动程序。

}catch(ClassNotFoundException ex) { }if(e.getSource()==查询)//点击查询按钮执行的操作。

{try{con=DriverManager.getConnection("jdbc:odbc:sun","","");//连接数据源。

stmt=con.createStatement();//发送 SQL 语句并处理结果rs=stmt.executeQuery("select * from information order by number");//返回结果集。

while(rs.next())//列出表中的所有信息。

{String number=rs.getString(1);String name=rs.getString(2);String sex=rs.getString(3);String sclass=rs.getString(4);String nativeplace=rs.getString(5);String birthday=rs.getString(6);显示区.append("学号:"+number+"|");显示区.append("姓名:"+name+"|");显示区.append("性别:"+sex+"|");显示区.append("班级:"+sclass+"|");显示区.append("籍贯:"+nativeplace+"|");显示区.append("生日:"+birthday+"|"+"\n");}显示区.append("==================================================================== =======\n");con.close();//关闭连接。

}catch(SQLException ex) {}}//“查询”按钮执行结束。

else if (e.getSource()==录入)//当点击“录入”按钮时。

{LDialog dia=new LDialog(this,"录入");//弹出“录入”界面。

}//“录入”按钮执行结束。

else if (e.getSource()==判断)//当点击“判断”按钮时。

{//弹出问题对话框。

上面显示“请输入需要判断的学生学号:”,下面有空框,可以输入。

String number= JOptionPane.showInputDialog(this,"请输入需要判断的学生学号:","判断",JOptionPane.QUESTION_MESSAGE);char n1[],n2[];//定义两个数组n1,n2。

n1=new char [2];//n1的存放空间是2个字符。

n2=new char [2];//n2的存放空间是2个字符。

number.getChars(3,5,n1,0);/*获取“学号”文本框内的字符串,截取第4,5两个字符存放到n1中。

在东港的学号中,4,5两位是所在书院的号码;6,7两位是所在班级的号码。

相关主题