JAVA 例题.docx
- 文档编号:8425765
- 上传时间:2023-01-31
- 格式:DOCX
- 页数:15
- 大小:111.74KB
JAVA 例题.docx
《JAVA 例题.docx》由会员分享,可在线阅读,更多相关《JAVA 例题.docx(15页珍藏版)》请在冰豆网上搜索。
JAVA例题
福建信息职业技术学院软件工程系实验报告
2012–2012学年第1学期任课老师:
余先锋
课程名称
Java程序设计
班级
控制1011
座号
31
姓名
吴杏龙
实验名称
实验十一:
数据库编程方法
实验时间
第14周星期1第节
实验目的
进一步掌握数据库的连接方法
掌握数据库的添加、更新和删除方法
实验环境
PC/windows2000/2003/XP/Eclipse/JcreatorPro。
实验内容安排
必做题:
【实验11-1】创建数据库db,并建立一个student数据表,表结构如图9-1a所示。
同时向数据表输入若干个学生的信息数据(如图9-1b)。
设计一个类Dbop,通过类的方法实现对数据库的连接以及数据表student的记录内容的显示。
程序Experiment11.java应用该类完成数据库的连接和数据表的访问操作。
主要程序代码提示:
a)导入数据源访问和处理的API包:
importjava.sql.*;
b)Access数据库连接字:
"jdbc:
odbc:
driver={MicrosoftAccessDriver(*.mdb)};DBQ="+数据库文件路径及文件名;
c)建立数据库连接:
Connectionconn=null;//conn和stmt为成员变量
Statementstmt=null;
voidconn()//方法功能:
完成数据库连接
{Stringdburl="jdbc:
odbc:
driver={MicrosoftAccessDriver(*.mdb)};DBQ="+数据库文件名;
try
{Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");//加载数据库驱动程序
}
catch(ClassNotFoundExceptione)
{System.out.println("加载数据库驱动程序错误!
");
}
try
{conn=DriverManager.getConnection(dburl,"","");//创建数据库连接对象
stmt=conn.createStatement();//创建SQL命令执行对象
}
catch(SQLExceptione)
{System.out.println("创建数据库连接错误!
");
}
}
d)实现数据库查询:
voidselectAll()//方法功能:
数据表查询
{ResultSetrs;//记录集对象
Stringstr="SELECT*FROMstudent";//SQL命令
try
{rs=stmt.executeQuery(str);//执行SQL命令返回一个记录集
System.out.println("学号\t\t姓名\t性别\t班级");
while(rs.next())//读取每一条记录
{System.out.print(rs.getString("stu_id")+"\t");
System.out.print(rs.getString("stu_name")+"\t");
System.out.print(rs.getString("xb")+"\t");
System.out.print(rs.getString("bj")+"\n");
}
conn.close();
}
catch(SQLExceptione)
{System.out.println("访问数据表错误!
");
}
}
要求:
将数据库连接过程设计为类的方法conn(),并在构造方法当中完成数据库连接。
将数据表查询过程设计为类的一个方法selectAll();
【实验11-2】在前一题所设计的类DBop中添加一个insert()方法,该方法在student数据表中添加一个学生的信息,其中学号、姓名、性别、班级、团员等作为方法的参数。
程序提示:
voidinsert(Stringid,Stringname,Stringxb,Stringbj,booleanty)
{Stringstr="INSERTINTOstudent(stu_id,stu_name,xb,bj,ty)
VALUES('"+id+"','"+name+"','"+xb+"','"+bj+"',"+ty+")";//SQL命令
try
{stmt.executeUpdate(str);//执行插入命令
conn.close();
}
catch(SQLExceptione)
{System.out.println("插入数据记录错误!
");
}
}
选做题:
【实验11-3】同【实验11-2】,在类DBop中添加一个update()方法,该方法修改student数据表中某个学号同学的姓名(或性别、班级、团员等其他信息)。
【实验11-4】同【实验11-2】,在类DBop中添加一个delete()方法,该方法修改将数据表中指定学号同学的记录删除。
【实验11-5】修改【实验10-3】程序,将图形界面中所输入的学生信息,作为一条新的记录写入到数据表中。
程序保存为Experiment11_5.java。
程序代码提示:
publicvoidactionPerformed(ActionEvente)
{Stringid,name,xb,bj,jj;
Booleanty;
id=;//读取学号
name=;//读取姓名
……;//读取其他学生信息
//创建数据库连接
……
Stringstr="INSERT……"//建立SQL命令语句
//执行SQL命令
……
}
有关程序代码,可参照【实验11-2】程序。
实验要点:
完成本实验时,注意以下几个问题:
1、数据库操作基本步骤是:
①加载数据库驱动程序:
Class.forName("驱动类名");
②创建数据库连接对象:
Connectionconn=DriverManager.getConnection(url,uid,pwd);
③创建SQL命令执行对象
Statementstmt=conn.createStatement();
④执行sql语句(ExecutetheSQL),分为查询和更新两种操作:
查询操作,执行SQL的SELECT命令,返回查询结果记录集对象:
ResultSetrs=stmt.executeQuery(sql);
更新操作,执行DELETE、UPDATE、INSERT等SQL命令:
stmt.executeUpdate(sql);
2、对查询命令所返回的记录集对象,使用rs.next()等方法移动记录指针,并使用rs.getXXX(字段)方法读取记录字段内容。
3、数据库连接、SQL命令记录读取、记录字段的提取均需要进行异常处理。
实验过程记录
(学生写出实验步骤及中间的结果与现象,在实验中做了什么,怎么做,发生的现象和中间结果)
实验结果分析与总结
1、程序运行结果或结果截图:
实验一:
实验二:
2、你在实验过程中遇到的问题与解决方法:
问同学老师还有查XX
3、实验过程中的发现与收获,未解决或需进一步解决的问题:
作业与问题(答题内容请用蓝色字体)
1、数据库访问操作需要哪些步骤?
加载连接驱动,创建连接,创建执行对象
2、如何创建数据库的连接?
根据不同数据库,加载不同驱动和用不同的语句建立连接对象
3、Statement命令执行对象的作用是什么?
查询与其他更新操作的命令执行方法有何区别?
操作数据库数据。
查询操作有返回结果集,其他更新操作没有。
4、如何创建ResultSet对象?
如何从ResultSet对象中读出数据记录和字段?
根据Statement对象创建ResultSet对象。
根据字段名或字段位置读取数据。
有乱码,还需字符串转型
指导老师评阅意见
指导老师:
年月日
填写内容时,可把表格扩大。
附:
实验源程序代码
实验一:
importjava.sql.*;
importjava.io.UnsupportedEncodingException;
publicclasswxl01{
publicstaticvoidmain(String[]args){
Dbopdb=newDbop();
db.selectAll();
}
}
classDbop{
Connectionconn=null;//conn和stmt为成员变量
Statementstmt=null;
Dbop()//方法功能:
完成数据库连接
{Stringdburl="jdbc:
odbc:
driver={MicrosoftAccessDriver(*.mdb)};DBQ=F:
\\wxl\\wxl.mdb";
try
{Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");//加载数据库驱动程序
}
catch(ClassNotFoundExceptione)
{System.out.println("加载数据库驱动程序错误!
");
}
try
{conn=DriverManager.getConnection(dburl,"","");//创建数据库连接对象
stmt=conn.createStatement();//创建SQL命令执行对象
}
catch(SQLExceptione)
{
e.printStackTrace();
System.out.println("创建数据库连接错误!
");
}
}
voidselectAll()//方法功能:
数据表查询
{ResultSetrs;//记录集对象
Stringstr="SELECT*FROMwxl";//SQL命令
try
{rs=stmt.executeQuery(str);//执行SQL命令返回一个记录集
System.out.println("学号\t\t姓名\t性别\t班级");
while(rs.next())//读取每一条记录
{try{
System.out.print(newString(rs.getBytes("stu_id"),"gbk")+"\t");
System.out.print(newString(rs.getBytes("stu_name"),"gbk")+"\t");
System.out.print(newString(rs.getBytes("xb"),"gbk")+"\t");
System.out.print(newString(rs.getBytes("bj"),"gbk")+"\n");
}catch(UnsupportedEncodingExceptione){
e.printStackTrace();
}
}
conn.close();
}
catch(SQLExceptione)
{System.out.println("访问数据表错误!
");
}
}
}
实验二:
importjava.io.UnsupportedEncodingException;
importjava.sql.*;
importjava.util.Properties;
importjava.awt.BorderLayout;
importjava.awt.FlowLayout;
importjava.awt.Font;
importjava.awt.event.ActionEvent;
importjava.awt.event.ActionListener;
importjavax.swing.*;
classFrame1extendsJFrameimplementsActionListener{
JButtonjb=newJButton("确定");
JLabeljl1=newJLabel("学号:
"),jl2=newJLabel("姓名:
"),jl3=newJLabel(
"性别:
"),jl4=newJLabel("班级:
"),jl5=newJLabel("简介:
"),
jl6=newJLabel("团员:
");
JTextAreatext=newJTextArea(5,12);
JTextFieldjtf1=newJTextField(12),jtf2=newJTextField(12);
JPaneljp1=newJPanel(),jp2=newJPanel(),jp3=newJPanel(),
jp4=newJPanel(),jp5=newJPanel(),jp6=newJPanel();
JRadioButtonjr1=newJRadioButton("男"),jr2=newJRadioButton("女");
ButtonGroupbg=newButtonGroup();
JCheckBoxjc=newJCheckBox();
JComboBoxjcb=newJComboBox(newObject[]{"控制1011","控制1012"});
Frame1(){
jp1.add(jl1);
jp1.add(jtf1);
jp2.add(jl2);
jp2.add(jtf2);
jp3.add(jl3);
bg.add(jr1);
bg.add(jr2);
jr1.setSelected(true);
jp3.add(jr1);
jp3.add(jr2);
jp3.add(jl6);
jp3.add(jc);
jp4.add(jl4);
jp4.add(jcb);
jp5.add(jl5);
jp5.add(text);
text.setLineWrap(true);
jp6.add(jb);
jp1.setLayout(newFlowLayout(FlowLayout.LEFT));
jp2.setLayout(newFlowLayout(FlowLayout.LEFT));
jp3.setLayout(newFlowLayout(FlowLayout.LEFT));
jp4.setLayout(newFlowLayout(FlowLayout.LEFT));
jp5.setLayout(newFlowLayout(FlowLayout.LEFT));
jp6.setLayout(newFlowLayout(FlowLayout.CENTER));
setLayout(newBoxLayout(this.getContentPane(),BoxLayout.Y_AXIS));
add(jp1);
add(jp2);
add(jp3);
add(jp4);
add(jp5);
add(jp6);
jb.addActionListener(this);
setBounds(400,300,220,300);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setVisible(true);
}
publicvoidactionPerformed(ActionEvente){
Stringid=jtf1.getText();
Stringname=jtf2.getText();
if(!
id.trim().equals("")&&!
name.trim().equals("")){
text.replaceRange("",0,text.getText().length());
Stringsex;
if(jr1.isSelected()){
sex=jr1.getText();
}else{
sex=jr2.getText();
}
Booleandd;
if(jc.isSelected()){
dd=true;
}else{
dd=false;
}
Stringcls=jcb.getSelectedItem().toString();
Dbopdb=newDbop();
db.insert(id,name,sex,cls,true);
db.selectAll();
db.closeCon();
text.append("学号:
"+id+"\n");
text.append("姓名:
"+name+"\n");
text.append("性别:
"+sex+"\n");
text.append("团员:
"+dd+"\n");
text.append("班级:
"+cls);
}else{
JOptionPane.showMessageDialog(this,"学号和姓名不能为空!
","警告",JOptionPane.WARNING_MESSAGE);
}
}
}
publicclasswxl01{
publicstaticvoidmain(String[]args){
newFrame1();
}
}
classDbop{
Connectionconn=null;//conn和stmt为成员变量
Statementstmt=null;
Dbop()//方法功能:
完成数据库连接
{
Stringdburl="jdbc:
odbc:
driver={MicrosoftAccessDriver(*.mdb)};DBQ=F:
\\wxl\\wxl.mdb";
try{
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");//加载数据库驱动程序
}catch(ClassNotFoundExceptione){
System.out.println("加载数据库驱动程序错误!
");
}
try{
conn=DriverManager.getConnection(dburl,"","");//创建数据库连接对象
stmt=conn.createStatement();//创建SQL命令执行对象
}catch(SQLExceptione){
e.printStackTrace();
System.out.println("创建数据库连接错误!
");
}
}
voidselectAll()//方法功能:
数据表查询
{
ResultSetrs;//记录集对象
Stringstr="SELECT*FROMwxl";//SQL命令
try{
rs=stmt.executeQuery(str);//执行SQL命令返回一个记录集
System.out.println("学号\t\t姓名\t性别\t班级");
while(rs.next())//读取每一条记录
{
try{
System.out.print(newString(rs.getBytes("stu_id"),"gbk")
+"\t");
System.out.print(newString(rs.getBytes("stu_name"),"gbk")
+"\t");
System.out.print(newString(rs.getBytes("xb"),"gbk")
+"\t");
System.out.print(newString(rs.getBytes("bj"),"gbk")
+"\n");
}catch(UnsupportedEncodingExceptione){
e.printStackTrace();
}
}
}catch(SQLExceptione){
System.out.println("访问数据表错误!
");
}
}
voidinsert(Stringid,Stringname,Stringxb,Stringbj,booleanty){
Stringstr="INSERTINTOstudent(stu_id,stu_name,xb,bj,ty)VALUES('"
+id+"','"+name+"','"+xb+"','"+bj+"',"+ty+")";//SQL命令
try{
stmt.executeUpdate(str);//执行插入命令
}catch(SQLExceptione){
e.printStackTrace();
System.out.println("插入数据记录错误!
");
}
}
voidupdate(Stringid,Stringname,Stringxb,Stringbj,booleanty){
Stringstr="updatestudentsetstu_name='"+name+"',xb='"+xb+"',bj='"+bj+"',ty="+ty+"wherestu_id=
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- JAVA 例题