Java语言程序设计-java10(第10章java数据库连接)

上传人:ra****d 文档编号:252281393 上传时间:2024-11-14 格式:PPT 页数:35 大小:279KB
返回 下载 相关 举报
Java语言程序设计-java10(第10章java数据库连接)_第1页
第1页 / 共35页
Java语言程序设计-java10(第10章java数据库连接)_第2页
第2页 / 共35页
Java语言程序设计-java10(第10章java数据库连接)_第3页
第3页 / 共35页
点击查看更多>>
资源描述
单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,Java语言程序设计,清华大学出版社,第10章 java数据库连接,图15.1 学生数据库的组成及相关名词,10.1 建立ODBC数据源,理解ODBC数据源,图15.3 ODBC数据源管理器对话框,图15.7 安装完成后的“ODBC数据源管理器对话框,10.2 使用JDBC连接数据库,JDBC(Java DataBase Connectivity的缩写),意思是Java程序连接数据库的应用程序接口(API)。,JDBC由一群类和接口组成,通过调用这些类和接口所提供的成员方法,我们可以连接各种不同的数据库,进而使用标准的SQL命令对数据库进行查询、插入、删除、更新等操作。,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驱动程序:,);,(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)及成绩(score)。,import java.sql.*;/引入java.sql包,public class c1,public static void main(String args),String JDriver=;/声明JDBC驱动程序对象,String conURL=jdbc:odbc:TestDB;/定义JDBC的URL对象,try,Class.forName(JDriver);/加载JDBC-ODBC桥驱动程序,e),System.out.println(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命令,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(数字型)三个字段。,这段程序的操作结果是创立了一个数据库中student表的结构,表中还没有任何记录。,10.3.2 向数据表中插入数据,【例如程序2】在上例创立的数据表student中插入三个学生的记录。,import java.sql.*;,public class c2,public static void main(String args),String JDriver=;,String conURL=jdbc:odbc:TestDB;,try,Class.forName(JDriver);,e),System.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 命令insert插入三条学生记录到表中,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,public static void main(String args),String JDriver=;,String conURL=jdbc:odbc:TestDB;,String id=0002,0003;,int score=89,60;,try,Class.forName(JDriver);,e),System.out.println(ForName:+e.getMessage();,try,Connection con=DriverManager.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.createStatement();,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类,它提供了一系列的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.executeUpdate()语句之前指定各个问号位置的字段值。例如,用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+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),String JDriver=;,String conURL=jdbc:odbc:TestDB;,try,Class.forName(JDriver);,e),System.out.println(ForName:+e.getMessage();,try,Connection con=DriverManager.getConnection(conURL);,Statement s=con.createStatement();,/删除第二条记录,PreparedStatement 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();,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数据
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 商业管理 > 商业计划


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!