Java持久化之JDB.ppt

上传人:牧羊曲112 文档编号:6509817 上传时间:2023-11-07 格式:PPT 页数:30 大小:2.81MB
返回 下载 相关 举报
Java持久化之JDB.ppt_第1页
第1页 / 共30页
Java持久化之JDB.ppt_第2页
第2页 / 共30页
Java持久化之JDB.ppt_第3页
第3页 / 共30页
Java持久化之JDB.ppt_第4页
第4页 / 共30页
Java持久化之JDB.ppt_第5页
第5页 / 共30页
点击查看更多>>
资源描述

《Java持久化之JDB.ppt》由会员分享,可在线阅读,更多相关《Java持久化之JDB.ppt(30页珍藏版)》请在三一办公上搜索。

1、JAVA持久化之JDBC,JAVA持久化之JDBC,主要内容 Java持久化概念1 JDBC原理2 JDBC开发步骤 3 JDBC的例子,数据持久化,狭义的理解,“持久化”仅仅是指把对象永久保存到数据库中;广义的理解,“持久化”包括和数据库相关的各种操作:保存:把对象永久保存到数据库中更新:更新数据库中对象的状态删除:从数据库中删除一个对象加载:根据特定的查询条件,把符合查询条件的一个或多个对象从数据库加载到内存中查询:根据特定的查询条件,把符合查询条件的一个或多个对象从数据库加载到内存中,数据持久化概念,数据持久化的相关技术java序列化:Java对象转换为字节序列的过程称为对象的序列化。J

2、DBC:提供关系数据库的通信EJB:企业级JavaBean.一种分布式组件技术,提供了一些标准的服务,如持久性、事务、安全性等。JPA:JPA(Java Persistence API)是Sun官方提出的Java持久化规范。它为Java开发人员提供了一种对象/关系映射工具来管理Java应用中的关系数据。,持久化简介,ORM框架 ORM框架能够将Java对象映射到关系数据库,能够直接持久化复杂的Java对象。在操作持久化Java对象的时候ORM框架会自动更新相应的一个或多个数据表。ORM框架的应用为:Hibernate,问题的提出,我们的例子基于一个假设,孙悟空要管理他的花果山,山里有众多猴子,

3、如何编写java程序来存放这些猴子的信息?我们访问数据库的途径可能有以下几种:1.通过数据库自带客户程序与数据库服务器交互2.通过java程序与数据库服务器交互3花果山猴子们的信息作为特定应用领域的业务数据,有俩种表现形式:在内存中表现为Monkey对象在关系数据库中表现为MONKEYS表的记录,JAVA对象持久化概念,问题在于?当java程序在内存中创建了一个Monkey对象后,它不可能永远存在。最后,他要么从内存中清除,要么被持久化到数据库中。内存无法永久地保存数据,因此必须对Monkey对象进行持久化.否则,如果Monkey对象没有被持久化,那么用户在应用程序运行时创建的猴子信息将在应用

4、程序结束运行后随之消失。问题解决:而一旦Monkey对象被持久化,他就可以在应用程序再次运行时被重新加载到内存,并重新构造出Monkey对象。,JAVA对象持久化概念,下图显示了Monkey对象的持久化抽象的过程。,JDBC简介,JDBC是持久化技术的一种。(Java Database Connectivity)1996年,sun公司提出。是Java程序与数据库系统通信的标准API。它由一组用Java程序语言编写的类和接口组成。作用规避数据库的不同,为程序开发人员访问数据库提供统一的编程接口,即为API;JDBC可以做什么?答:和数据库建立连接,发送sql语句,处理数据库返回的结果集.,Jav

5、a程序通过JDBC驱动程序与数据库服务器通信,驱动程序负责把标准JDBC调用转换成具体数据库的调用,有了JDBC驱动程序,Java程序就只需和JDBC驱动程序的API交互了,JDBC连接 API,JDBC API 使用的是面向对象的Java语言,它为java程序提供了用于访问数据库的接口和类,主要包括:java.sql.DriverManager 处理驱动程序的调入并且对驱动程序进行管理。java.sql.Connection 代表对特定数据库的连接。java.sql.Statement代表一个特定的容器,用以对一个特定的数据库执行SQL语句。java.sql.ResultSet 控制对一个特

6、定语句的行数据的存取。,JDBC主要对象,1.连接(Connection)2.语句(Statement)3.结果集(ResultSet),JDBC主要对象,1.连接(Connection)连接是客户端Java代码和数据库之间的通信连接,由JDBC驱动程序建立。它保存了所有对数据库服务器调用的上下文信息。连接分为两种:直接连接直接在客户端Java代码中找开并维护,对应于类型1、2、4驱动程序。池连接被J2EE服务器打开和维护。作用:提高性能,多用户共享少量的数据物理连接数。思考:为什么需求池连接?,JDBC主要对象,2.语句用于对数据库发送数据操纵命令,通过语句对象,可以完成获取结果集,对数据库

7、记录进行CRUD。语句分为三类:简单语句(Statement)预编译语句(Prepared Statement)可调用语句(Callable Statement),JDBC编程,创建数据库连接,分为以下几步:1.装载并注册数据库的JDBC驱动程序2.建立连接3.建立Statement 对象4.准备并执行调用SQL语句5.处理ResultSet中的记录集6.释放资源,1 注册驱动,注册驱动/加载Mysql Driver类 Class.forName(“com.mysql.jdbc.Driver”);/注册MySQL Driver java.sql.DriverManager.registerDr

8、iver(new com.mysql.jdbc.Driver();,2 建立连接,建立连接Connection con=java.sql.DriverManager.getConnection(dbUrl,dbUser,dbPwd);dbUrl 表示连接数据库的JDBC URLUser和password 表示连接数据的用户名和口令,3 建立连接,常用的URL对MySQL,数据库URL为 jdbc:mysql:/localhost:3306/dbName 对SQLSERVER2005,数据库URL为jdbc:sqlserver:/localhost:1433;DatabaseName=SAMPL

9、EDB,3 准备并执行SQL语句,建立Statement 对象Statement stmt=con.createStatement();准备并执行调用SQL语句/stmt.executeUpdate(insert into MONKEYS(NAME,AGE,GENDER)values(+monkey.getName()+,+monkey.getAge()+,+monkey.getGender()+););,4 处理记录集,处理ResultSet中的记录集只有select语句才会有结果集返回;rs是一个游标,初始时放在第一条记录的上面一行。每next一次,向下一行。getString(int c

10、olumnName)以java的String数据类型的形式返回整数索引参数所标识的ResultSet列的值,String sql=“select*from Monkeys”;ResultSet rs=statement.executeQuery(sql);while(rs.next()String col1=rs.getString(1);String col2=rs.getString(fname);float col3=rs.getFloat(3);,5释放资源,5.释放资源一般写在finally语句块中。所释放的资源一般有ResultSet,Statement,Connection rs

11、.close();stmt.close();con.close();注意:关闭时按ResultSet-Statement-Connection顺序依次关闭;,Java持久化小例子,运行截图,使用JDBC API的问题 编程人员必须既懂得Java语言,又懂SQL语言,才能编写数据库访问代码。程序代码中嵌入大量字符串形式的SQL语句降低了程序代码的可读性。当编程人员试图向数据库中存入一个Monkey对象时,他需要了解与Monkey对象对应的表为MONKEYS表,与Monkey对象的name属性对应的字段为NAME字段,依次类推,Hibernate与JDBC的关系,Hibernate本身完全用jav

12、a语言编写,并且它对JDBC API进行了封装,能提供更加面向对象的数据库访问API。,public class Monkey private Long id;private String name;private int age;private char gender;,BusinessService类,Class.forName(com.mysql.jdbc.Driver);DriverManager.registerDriver(new com.mysql.jdbc.Driver();Connection con=null;con=java.sql.DriverManager.getConnection(dbUrl,dbUser,dbPwd);/创建一个SQL声明 Statement stmt=con.createStatement();/向MONKEYS表插入记录 stmt.executeUpdate(insert into MONKEYS(NAME,AGE,GENDER)values(+monkey.getName()+,+monkey.getAge()+,+monkey.getGender()+);stmt.close();,Java小例子结构图,Thank you!,

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号