版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、Java语言程序设计,第10章 Java数据库连接,主讲:张思民,仰恩大学Java课程组,图15.1 学生数据库的组成及相关名词,10.1 建立ODBC数据源,理解ODBC数据源,图15.3 ODBC数据源管理器对话框,图15.7 安装完成后的“ODBC数据源管理器”对话框,10.2 使用JDBC连接数据库,JDBC(Java DataBase Connectivity的缩写),意思是Java程序连接数据库的应用程序接口(API)。 JDBC由一群类和接口组成,通过调用这些类和接口所提供的成员方法,我们可以连接各种不同的数据库,进而使用标准的SQL命令对数据库进行查询、插入、删除、更新等操作。
2、,10.2.1 JDBC结构,JDBC的基本结构由Java程序、JDBC管理器、驱动程序和数据库四部分组成,如图所示。,图 JDBC结构,数据库,ODBC,JDBC,桥接器,Java 应用程序,1Java应用程序 Java应用程序根据JDBC方法实现对数据库的访问和操作。完成的主要任务有:请求与数据库建立连接;向数据库发送SQL请求;查询结果;处理错误;控制传输、提交及关闭连接等操作。,2、 JDBC编程要点 (1)引用java.sql包: import java.sql.*; (2) 使用Class.forName( )方法加载相应数据库的JDBC驱动程序: class.forName(su
3、n.jdbc.odbc.JdbcOdbcDriver);,(3) 定义JDBC的URL对象。例如: String conURL=jdbc:odbc:TestDB; 其中TestDB是我们设置的数据源。 (4) 连接数据库。 Connection s=DriverManager.getConnection(conURL);,(5) 使用SQL语句对数据库进行操作。 (6) 解除Java与数据库的连接并关闭数据库。例如: s.close( );,10.3 JDBC编程实例,10.3.1 创建数据表 【示例程序1】 创建学生表student。此表有三个字段:学号(id)、姓名(name)及成绩(sc
4、ore)。 import java.sql.*; /引入java.sql包 public class c1 public static void main(String args) String JDriver = sun.jdbc.odbc.JdbcOdbcDriver; /声明JDBC驱动程序对象 String conURL=jdbc:odbc:TestDB; /定义JDBC的URL对象 try Class.forName(JDriver); /加载JDBC-ODBC桥驱动程序 ,catch(java.lang.ClassNotFoundException e) System.out.pr
5、intln(ForName : + e.getMessage( ); try Connection con=DriverManager.getConnection(conURL); /连接数据库URL Statement s=con.createStatement( ); /建立Statement类对象 String query = create table student ( + id char(10), + name char(15), + score integer + ); /创建一个含有三个字段的学生表student s.executeUpdate(query); /执行SQL命令,
6、s.close( ); /释放Statement所连接的数据库及JDBC资源 con.close( ); /关闭与数据库的连线 catch(SQLException e) System.out.println(SQLException: +e.getMessage( ); ,其中, create table student(id char(10),name char(15),score integer); 这个SQL语句表示建立一个名为student的表,包含id(字符型,宽度为10)、name(字符型,宽度为15)与 score(数字型)三个字段。 这段程序的操作结果是创建了一个数据库中st
7、udent表的结构,表中还没有任何记录。,10.3.2 向数据表中插入数据 【示例程序2】 在上例创建的数据表student中插入三个学生的记录。 import java.sql.*; public class c2 public static void main(String args) String JDriver = sun.jdbc.odbc.JdbcOdbcDriver; String conURL=jdbc:odbc:TestDB; try Class.forName(JDriver); ,catch(java.lang.ClassNotFoundException e) Syst
8、em.out.println(ForName : + e.getMessage( ); try Connection con=DriverManager.getConnection(conURL); Statement s=con.createStatement( ); String r1=insert into student values(+0001,王明,80); String r2=insert into student values(+0002,高强,94); String r3=insert into student values(+0003,李莉,82); /使用SQL 命令in
9、sert插入三条学生记录到表中 s.executeUpdate(r1);,s.executeUpdate(r2); s.executeUpdate(r3); s.close( ); con.close( ); catch(SQLException e) System.out.println(SQLException: +e.getMessage( ); ,图 程序2的运行结果,10.3.3 更新数据 【示例程序3.java】 修改上例数据表中的第二条和第三条记录的学生成绩字段值,并把修改后的数据表的内容输出到屏幕上。 import java.sql.*; public class c3 pub
10、lic static void main(String args) String JDriver=sun.jdbc.odbc.JdbcOdbcDriver; String conURL=jdbc:odbc:TestDB; String id=0002,0003; int score=89,60;,try Class.forName(JDriver); catch(java.lang.ClassNotFoundException e) System.out.println(ForName : + e.getMessage( ); try Connection con=DriverManager.
11、getConnection(conURL); /修改数据库中数据表的内容 PreparedStatement ps=con.prepareStatement( UPDATE student set score=? where id=? ); int i=0,idlen=id.length;,do ps.setInt(1,scorei); ps.setString(2,idi); ps.executeUpdate( );/执行SQL修改命令 +i; while(iid.length); ps.close( ); /查询数据库并把数据表的内容输出到屏幕上 Statement s=con.creat
12、eStatement( ); ResultSet rs=s.executeQuery(select * from student); while(rs.next( ) System.out.println(rs.getString(id) + t + rs.getString(name)+ t + rs.getInt(score);, s.close( ); con.close( ); catch(SQLException e) System.out.println(SQLException: +e.getMessage( ); ,在这个程序中使用了PreparedStatement类,它提供
13、了一系列的set方法来设定位置。请注意程序中PreparedStatement( )方法中的参数“?”。程序中的语句: PreparedStatement ps=con.prepareStatement(UPDATE student set score=? where id=? ); ps.setInt(1,scorei); /将scorei的值作为SQL语句中第一个问号所代表参数的值 ps.executeUpdate( );,其中UPDATE student set score=? where id=? 这个SQL语句中各字段的值并没指定,而是以“?”表示。程序必须在执行ps.execute
14、Update( )语句之前指定各个问号位置的字段值。例如,用ps.setInt(1,scorei)语句中的参数1指出这里的scorei的值是SQL语句中第一个问号位置的值。当前面两条语句执行完后,才可执行ps.executeUpdate( )语句,完成对一条记录的修改。,程序中用到的查询数据库并把数据表的内容输出到屏幕的语句是: ResultSet rs=s.executeQuery(select * from student); while(rs.next( ) System.out.println(rs.getString(id) + t + rs.getString(name)+ t +
15、 rs.getInt(score); ,其中,executeQuery( )返回一个ResultSet类的对象rs,代表执行SQL查询语句后所得到的结果集,之后再在while循环中使用对象rs的next( )方法将返回的结果一条一条地取出,直到next( )为false。 运行结果如下: 0001 王明 80 0002 高强 89 0003 李莉 60,10.3.4 删除记录 【示例程序4.java】 删除表中第二条记录,然后把数据表的内容输出。 import java.sql.*; public class c4 public static void main(String args) St
16、ring JDriver=sun.jdbc.odbc.JdbcOdbcDriver; String conURL=jdbc:odbc:TestDB; try Class.forName(JDriver); ,catch(java.lang.ClassNotFoundException e) System.out.println(ForName : + e.getMessage( ); try Connection con=DriverManager.getConnection(conURL); Statement s=con.createStatement( ); /删除第二条记录 Prepa
17、redStatement ps=con.prepareStatement( delete from student where id=?); ps.setString(1,0002); ps.executeUpdate( ); /执行删除 /查询数据库并把数据表的内容输出到屏幕上,ResultSet rs=s.executeQuery(select * from student); while(rs.next( ) System.out.println(rs.getString(id)+t+ rs.getString(name)+t + rs.getString(score); s.close
18、( ); con.close( ); catch(SQLException e) System.out.println(SQLException: +e.getMessage( ); ,数据库驱动程序连接数据库,1、下载数据库驱动程序 2、连接URL,连接Access数据库,String conURL=jdbc:odbc:Driver=MicroSoft Access Driver (*.mdb); +DBQ=TestDB.mdb; Connection Ex1Con=DriverManager.getConnection(conURL); 【见P116 例10-5】,连接SQL Server数据库,【见P325 例10-8】,连接 Oracle 数据库,Class.forName(“oracle.jdbc.OracleDriv
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年神经形态视觉传感器的数据处理方法
- 2026年超快激光微纳制造技术应用指南
- 河北省遵化市重点达标名校2026年下学期初三生物试题第二次阶段检测试题考试试卷含解析
- 2025-2026学年浙江省嘉兴市南湖区实验初三毕业班第十七模生物试题含解析
- 陕西省西安市庆安初级中学2025-2026学年初三检测试题(二)(4月)生物试题试卷含解析
- 2026届福建省福清市林厝中学初三“五校”联考化学试题含解析
- 2026年低空经济共保体模式与运作机制
- 2026届江苏省苏州工业园区星港校初三第二次全国大联考化学试题含解析
- 2026年黑龙江省齐齐哈尔市五县新初三入学考试化学试题含解析
- 2026年5GA通感一体基站系统调试与开通操作规程
- 儿童青少年心理健康知识讲座
- 2025年广东省中考物理试题卷(含答案)
- 航运企业合规管理制度
- 2026年高考语文备考之非连续性文本阅读训练(人工智能、科技文化)
- 幼儿园伙食费管理制度
- 月结60天合同协议书
- 肉羊高效健康养殖与疫病防控技术培训
- 养老院食品安全培训
- 全球核安全形势课件
- 《婴幼儿常见病识别与预防》高职早期教育专业全套教学课件
- 《智能制造基础与应用》课件全套 第1-8章 绪论、智能制造数字化基础- 智能制造应用
评论
0/150
提交评论