Java程序设计实验指导书.doc_第1页
Java程序设计实验指导书.doc_第2页
Java程序设计实验指导书.doc_第3页
Java程序设计实验指导书.doc_第4页
Java程序设计实验指导书.doc_第5页
已阅读5页,还剩3页未读 继续免费阅读

下载本文档

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

文档简介

烟台南山学院Java程序设计实验指导书适合专业:计算机科学、软件技术、计算机应用课程名称:Java程序设计实验学时:32学时适应专业:计算机科学、软件技术、计算机应用承担单位:计算机科学与技术教研室参考教材:Java大学使用教程,耿祥义,张跃平,电子工业出版社,2012实验十二 JDBC编程1. 实验目的与意义(1)掌握Java连接数据库的基本步骤和相关类的常用方法。(2)掌握数据库SQL的CRUD操作实现。(3)掌握条件查询及Java变量在SQL中的嵌套方法。(4)掌握预处理语句PreparedStatement的用法。(5)掌握结果集更新数据库(表)的方法。(5)掌握JDBC事务处理。(6)掌握数据库记录的离线处理。(7)掌握JDBC批处理。2. 主要仪器设备及耗材微型计算机,Windows XP操作系统,记事本,JDK1.63. 实验原理(1)Connection、Statement、PreparedStatement、ResultSet类常用方法。(2)SQL实现增、删、改、查。(3)预编译语句的使用。(4)事务处理方法。(5)数据库的离线处理CachedRowSetImpl类。4. 实验内容及步骤4.1 实验步骤步骤1:开始附件记事本,打开记事本应用程序,输入源程序;步骤2:将源程序保存,文件名必须与public的类的名字相同,扩展名为.java。步骤3:开始运行,输入“cmd”,打开命令行窗口。输入保存Java源文件的盘符,回车。步骤4:输入“cd 目录”进入保存Java源文件的目录,输入“javac 源文件名.java”并回车编译Java源程序,得到class字节码文件。步骤5:输入“java 字节码文件”回车,运行Java程序,观察结果。4.2 实验内容4.2.1 JDBC连接数据库的基本步骤及预编译语句使用配置ODBC数据源,然后键入以下代码。实现功能:查询指定姓名(Smith)的记录。import java.io.UnsupportedEncodingException;import java.sql.Connection;import java.sql.DriverManager;import java.sql.PreparedStatement;import java.sql.ResultSet;import java.sql.SQLException;import java.util.Scanner;public class DBConn public static void main(String args) / TODO Auto-generated method stubtry /Scanner s = new Scanner(System.in);/String name = s.nextLine();/ 第1步:加载驱动,自动把驱动注册给DriverManagerClass.forName(sun.jdbc.odbc.JdbcOdbcDriver);/ 第2步:获取数据库连接Connection conn = DriverManager.getConnection(jdbc:odbc:student,sa, 123456);/ 数据库的URL地址:protocol:/ip:port,DatabaseName=数据库名/ 第3步:执行SQL语句String query = select * from student where stuName = ?;PreparedStatement pstmt = conn.prepareStatement(query);pstmt.setString(1, Smith);ResultSet rs = pstmt.executeQuery();/ 第4步:处理查询数据while(rs.next() String stuName = new String(rs.getBytes(stuName), gbk);System.out.println(rs.getLong(1)+ t + stuName+ t + rs.getInt(3)+ t + rs.getDate(stuBirth);/ 第5步: 关闭数据库相关对象rs.close();pstmt.close();conn.close(); catch (ClassNotFoundException e) / TODO Auto-generated catch blocke.printStackTrace(); / Java反射机制catch (SQLException e) / TODO Auto-generated catch blocke.printStackTrace(); catch (UnsupportedEncodingException e) / TODO Auto-generated catch blocke.printStackTrace();4.2.2 Statement语句的使用请使用Statement代替PreparedStatement重新实现以上4.2.1的功能。4.2.3 数据库CRUD操作根据4.2.1的步骤,实现以下功能:(1) 向数据库中添加几条记录;(2) 修改指定学号的学生的年龄;(3) 删除指定学号的学生。4.2.4 用结果集更新表import java.sql.Connection;import java.sql.DriverManager;import java.sql.ResultSet;import java.sql.SQLException;import java.sql.Statement;import java.util.Calendar;public class ResultSetUpdateTable public static void main(String args) Connection con; Statement sql; ResultSet rs; Calendar calendar=Calendar.getInstance(); calendar.set(1999,9,18); /注意9代表十月 java.sql.Date date=new java.sql.Date(calendar.getTimeInMillis(); try Class.forName(sun.jdbc.odbc.JdbcOdbcDriver); catch(ClassNotFoundException e) System.out.println(+e); try con=DriverManager.getConnection(jdbc:odbc:hello,); sql=con.createStatement (ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE); rs=sql.executeQuery(SELECT * FROM student); rs.absolute(2); rs.updateString(2,John); rs.updateRow(); /将message表第2行记录的name的值更新为“John” rs.moveToInsertRow(); rs.updateLong(1,20120005); rs.updateString(2, Jane); rs.updateInt(3,19); rs.updateDate(4,date); rs.insertRow(); /向message表插入一行记录 rs=sql.executeQuery(SELECT * FROM message); while(rs.next() long number=rs.getLong(1); String name=rs.getString(2); int age =rs.getInt(3); java.sql.Date birth=rs.getDate(4); System.out.println(number+,+name+,+age+,+birth); con.close(); catch(SQLException e) System.out.println(e); 4.2.5 数据库离线处理import .*; import java.sql.*;import com.sun.rowset.*; public class Example12_5 public static void main(String args) Connection con; Statement sql; ResultSet rs; CachedRowSetImpl rowSet; try Class.forName(sun.jdbc.odbc.JdbcOdbcDriver); catch(ClassNotFoundException e) System.out.println(+e); try con=DriverManager.getConnection(jdbc:odbc:student,); sql=con.createStatement(); rs=sql.executeQuery(SELECT * FROM student); rowSet=new CachedRowSetImpl(); rowSet.populate(rs); con.close(); /现在就可以关闭连接了 while(rowSet.next() long stuId=rowSet.getLong(1); String name=rowSet.getString(2); int age=rowSet.getInt(3); Date birth=rowSet.getDate(4); System.out.println(stuId+,+name+,+age+,+birth); con.close(); catch(SQLException e) System.out.println(e); 4.2.6 事务处理import java.sql.*; public class Example12_8 public static void main(String args) Connection con=null; Statement sql; ResultSet rs; try Class.forName(sun.jdbc.odbc.JdbcOdbcDriver); catch(ClassNotFoundException e) System.out.println(+e); try double n=50; con=DriverManager.getConnection(jdbc:odbc:student,); con.setAutoCommit(false); /关闭自动提交模式 sql=con.createStatement(); rs=sql.executeQuery(SELECT * FROM student WHERE stuId=20120001); rs.next(); int age=rs.getInt(stuAge); age =age - 2; rs=sql.executeQuery(SELECT * FROM student WHERE stuId=20120002); rs.next(); int age2=rs.getInt(stuAge); Age2 =age2 - 2; sql.executeUpdate (UPDATE student SET stuAge =+age+ WHERE stuId=20120001); sql.executeUpdate (UPDATE student SET stuAge=+age2+ WHERE stuId=20120002); mit(); /开始事务处理 con.close(); catch(SQLException e) try con.rollback(); /撤消事务所做的操作 catch(SQLException exp) System.out.println(e); 4.2.7 批处理import java.sql.*; public class Exmple12_9 public static void main(String args) Connection con=null; Statement sql; ResultSet rs; try Class.forName(sun.jdbc.odbc.JdbcOdbcDriver); catch(ClassNotFoundException e) System.out.println(+e); try double n = 500; con = DriverManager.getConnection(jdbc:odbc:student,); con.setAutoCommit(false);

温馨提示

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

评论

0/150

提交评论