95992828九五至尊2

jdbc与java数据库编程知识整理,时态数据库之提姆eDB882828九五至尊手机版

一月 18th, 2019  |  882828九五至尊手机版

面前介绍了提姆(Tim)eDB(http://www.timeconsult.com/Software/Software.html)是一种组成关系型数据库来已毕时间数据库应用的技巧,它援救时态数据库脚本:ATSQL2
[SBJS96a,SBJS96b,SBJS98]。它可以认为是关周全据库的一个前端,把时态数据库语句转换为关系型数据库的本子进行实施,它的施用气象如下所示。
882828九五至尊手机版 1

JDBC概述

提姆eDB是价值观的数据库管理连串的前端软件,应用程序中利用的时态ATSQL语句,通过提姆(Tim)eDB转换后形成标准的SQL语言和操作,这几个标准SQL语句和操作传入到后台数据库中操作实际的多少。提姆eDB扶助ATSQL2语言和时态模型,落成了时态查询、时态更新、时态视图和一部分的时态完整性约束等大旨的时态成效。
提姆eDB
2.0版本采取Java语言开发,具有平台毫不相关的多少;基于JDBC访问数据库,近年来仅协理Oracle、Sybase和IBM的Cloudscape’s
JBMS三种数据库,下一本子可能扶助Microsoft’s Access、SQL Server
7.0、Informix等数据库;具有较友好的用户界面;优化了支持表的开创进度;具有可以供Java应用程序调用的接口TDBCI,可供Java应用程序调用以执行ATSQL2语句。提姆eDB2.0的程序运行界面如下:
882828九五至尊手机版 2

•什么是JDBC

JDBC(Java DataBase Connectivity)

名叫Java数据库连接,它是一种用于数据库访问的应用程序API,由一组用Java语言编写的类和接口组成,有了JDBC就可以用同一的语法对多种关周详据库举行走访,而不用担心其数据库操作语言的歧异。

•JDBC的协会可划分为两层:

JDBC Driver Interface(驱动程序管理器接口)

JDBC API

•JDBC优缺点

TDBCI提供的接口函数如下所示

–优点:

•JDBC使得编程人士从犬牙相制的驱动器调用命令和函数中解脱出来,可以从事于应用程序中的关键地方。

•JDBC支持不相同的关周全据库,那使得程序的可移植性大大提升。

•JDBC API是面向对象的,可以让用户把常用的艺术封装为—个类,以备后用

882828九五至尊手机版 3//设置访问参数
882828九五至尊手机版 4public boolean setPrefs(String Path, int DBMS, String JDBCDriver, String URL); 
882828九五至尊手机版 5//伊始化/清除 执行ATSQL语句所需的表
882828九五至尊手机版 6public boolean createDB();
882828九五至尊手机版 7public boolean clearDB();
882828九五至尊手机版 8
882828九五至尊手机版 9//打开或者关闭数据库
882828九五至尊手机版 10public boolean openDB(String Login, String Password);
882828九五至尊手机版 11public void closeDB();
882828九五至尊手机版 12
882828九五至尊手机版 13//执行 ATSQL语句
882828九五至尊手机版 14public ResultSet execute(String stmt);
882828九五至尊手机版 15

–缺点:

•使用JDBC,访问数据记录的进度会遭逢一定水平的影响。

•JDBC结构中蕴藏不一致厂家的产品,这就给更改数据源带来了很大的麻烦。

•JDBC主旨接口与类

•JDBC主旨类库包涵在java.sql包中。

其间setPrefs是用来安装提姆eDB的相干访问参数的,如下所示
882828九五至尊手机版 16 if (t.setPrefs(“C:\\TimeDB 2.2\\”,     // Path to TimeDB2.0 directory 
882828九五至尊手机版 17 1,                                 // Using Oracle DBMS
882828九五至尊手机版 18“oracle.jdbc.driver.OracleDriver”, // Oracle’s JDBC driver
882828九五至尊手机版 19                      “jdbc:oracle:thin:1521:ORCL”))     // URL

–类

•DriverManager:负责管理JDBC驱动程序。使用JDBC驱动程序此前,必须先将驱动程序加载并注册后才方可选拔,同时提供格局来建立与数据库的连接。

•SQLException-有关数据库操作的不行

createDB是用来创设一些基础表,以便扶助实施ATSQL的,而clearDB则是割除那几个表,对数据库而言,只须求开首的时候调用createDB两回即可。
openDB
和closeDB有点类似于大家操作数据库的时候,打开Connection连接的操作,每便查询业务,都急需先举行openDB的操作,事务提交后,调用closeDB来关闭数据库。
实践
ATSQL语句唯有一个函数execute,它回到的是提姆(Tim)eDB定义的ResultSet对象,而ResultSet对象可以获取每一个ResultRow对象,ResultRow对象通过row.getColumnValue(i)和row.getColumnType(i)函数调用只可以获得列的值和对应值的项目,结果类型是字符类型。
回来的花色名称有:
• number • smallint •float• numeric •integer •double
• longint •real• interval • date•period •char•varchar

–接口:

•Connection:特定数据库的连接(会话)。在接二连三内外文中执行SQL语句并回到结果。

•PreparedStatement:表示预编译的 SQL 语句的靶子。

•Statement:用于实施静态 SQL 语句并赶回它所生成结果的靶子。

•ResultSet :表示数据库结果集的数据表,日常通过履行查询数据库的话语生成

•CallableStatement :用于实施 SQL 存储进程的接口 。

怎样使用提姆(Tim)eDB的小时数据库技术
出于大家的制品技术首即使基于.NET基础上支付的,而提姆eDB是基于Java的使用技术,由此得以考虑通过包装提姆(Tim)eDB成为WebService的利用,然后通过.NET客户端进行走访,完毕时间数据库技术的施用。
882828九五至尊手机版 20

创建JDBC应用

起首化数据库基础音信
提姆(Tim)eDB是根据关系型数据库之上的一个模块,在做时间数据库相关的脚本(ATSQL)解析前,它须要一些基础表和著录来储存相关的音讯,因而须要初叶化所创制的数据库。
开始化数据库能够由此执行安装目录下的SQL脚本而举行(位置为X:\TimeDB
2.2\scripts\initDB),如Oracle调用initOracle脚本,Sybase数据库调用initSybase脚本。
除此以外,也可以经过调用TDBCI的接口createDB创立这个基础表。

•创制JDBC应用程序的手续

–1.载入JDBC驱动程序

–2.定义连接URL

–3.建立连接

–4.创建Statement对象

–5.执行查询或更新

–6.结果处理

–7.关闭连接

 使用Java创制基于提姆(Tim)eDB查询操作的WebService(Service)
TDBCI公开了部分供Java应用程序调用的API函数,为了使得.NET的应用程序也能在提姆eDB中推行ATSQL脚本,大家把对TDBCI的调用封装成了Web瑟维斯(Service)(Service)。
开发环境:MyEclipse6.01、汤姆(Tom)cat5.5、Java SDK1.6、Oracle
10g、提姆eDB2.0。
贯彻步骤:
1、 使用MyEclipse创建WebService项目,配置好Tomcat服务器
2、 引用Oralce的JDBC类和提姆(Tim)eDB开发所需的类
3、 创制具体的Web瑟维斯(Service)(Service)服务类,提供再次来到结果查询和无结果的查询接口,并贯彻接口函数
4、 部署WebService到Tomcat中

882828九五至尊手机版,•数据库驱动程序

–数据库驱动程序分类

•Type 1: jdbc-odbc桥

–把JDBC API调用转换成ODBC API 调用, 然后ODBC API调用针对供应商的ODBC
驱动程序来访问数据库, 即利用JDBC- ODBC 桥通过ODBC来囤积数据源 。

•Type 2: 本地API驱动

–本地api驱动直接把jdbc调用转变为数据库的正儿八经调用再去做客数据库.
那种方法须要当地数据库驱动代码。讯。

•Type 3: 网络协议驱动

–它采用一种与现实数据库毫不相关的协议将数据库请求发送给一个中等服务器。

•Type 4: 本地协议驱动


这种驱动直接把jdbc调用转换为顺应有关数据库系统专业的请求.由于4型驱动写的使用可以平素和数据库服务器通讯,这序列型的驱动完全由java完成,因而完结了阳台独立性。

•平时开发中多选择第四种艺术,这种驱动不必要先把jdbc的调用传给odbc或本地数据库接口或者是中间层服务器,所以它的施行功用是至极高的驱动

使用.NET客户端对Web瑟维斯(Service)(Service)进行访问,执行ATSQL
完结步骤:
1、 引用包装好的Web瑟维斯(Service)
2、 调用相应的接口,使用ATSQL语句创造业务表
3、 调用相应的接口完成ATSQL数据操作(查询、插入、删除等)
创办业务表:
和在关周到据库(如Oracle)中开创表差距,创立时间数额库表要求调用TimeDB的接口,执行ATSQL而得以已毕。ATSQL2是一个SQL标准,具体使用请参见相关文档。

•数据库驱动程序

–各数据库厂商均提供对 JDBC 的支撑,即提供数据库连接使用的驱动程序文件

–要求为数据库应用程序正确加载驱动程序文件以博得数据库连接,实施操作

–Oracle 数据库的 JDBC 驱动程序文件 “ojdbc14.jar”(Oracle官方网站下载)

•加载 JDBC 驱动程序

–Class 类中提供加载驱动程序的艺术:

className-表示类的叙述符的字符串

–Oracle 驱动的类描述符为:

public static Class forName(String className) throws
ClassNotFoundException

oracle.jdbc.driver.OracleDriver

–示例:

–在工程主类 JdbcOracleTest 的 main 方法中扩大加载 Oracle 驱动的代码:

•申明表示 Oracle 驱动类描述符的字符串变量 driver

•调用 Class 类的静态方法 forName 加载该驱动(注意充裕处理)

•建立与数据库的两次三番

–DriverManager 类提供 getConnection 方法可取得指定数据库的连年对象:

–Oracle 数据库的 url 格式为:

public static Connection getConnection (String url, String userName,
String password) throws SQLException

jdbc:oracle:thin:@<主机名或IP>:1521:<数据库名>

–示例

–修改类 JdbcOracleTest 的 main 方法:

•注脚表示指定数据库url的字符串变量 url

•分别申明表示用户名和口令的字符串变量 userName 和 password,分别初叶化为
“SCOTT” 和 “TIGER“

•申明Connection接口对象con,赋值为
DriverManager类的getConnection方法的重临值

•输出打印 “数据库连接成功” 的提示音信

•获得 Statement 对象

–Connection接口中提供可收获 Statement 对象的格局:

–可调用重载的 createStatement
方法,可指定参数,设置数据库操作结果的连带属性。

•执行 SQL 语句

–Statement接口提供可实施 SQL 命令的法门:

boolean execute(String sql) throws SQLException

ResultSet executeQuery(String sql) throws SQLException

int executeUpdate(String sql) throws SQLException

–示例(查询)

–在工程主类 JdbcOracleTest 的 main 方法中加进操作数据库的代码:

•得到可发送SQL命令的Statement对象st

•调用对象st的excuteQuery方法发送SQL查询命令,查询SCOTT下的表DEPT,得到所有记录数据,再次来到结果集对象rs

•操作结果集对象

–ResultSet接口提供可对结果集进行操作的艺术:

•移动结果集操作指针:

•指定数据类型根据传入列的名字获取指定列的值:

•指定数据类型依据传入列的号码获取指定列的值:

boolean next() throws SQLException

Xxx getXxx(String columnName) throws SQLException

Xxx getXxx(1) throws SQLException

•关闭操作对象及连接

•可调用接口ResultSet、Statement、Connection
中的关闭措施,立刻放飞数据库和 JDBC 相关资源:

void close() throws SQLException

–示例

–在工程主类 JdbcOracleTest 的 main 方法中追加关闭数据库操作对象的代码:

•关闭结果集对象 rs

•关闭 Statement 对象 st

•关闭 Connection 对象 con

•JDBC日期时间拍卖

•对于数据库种差其他小运档次,要分别选取与之相呼应的Java包装类来存取:

–日期类型用java.sql.Date

–时间类型用java.sql.提姆(Tim)e

–日期/时间档次用java.sql.提姆(Tim)estamp;

–getTimestamp()可以把年月日时分秒都取出来,getDate()只可以取出年月日,get提姆(Tim)e()只好取出时分秒。

•JDBC的日子/时间类型转换为字符串

–提姆(Tim)estamp timeStamp = //通过数据库访问取获得该多少

–SimpleDateFormat sdf = new SimpleDateFormat(“yyyy-MM-dd HH:mm:ss”);

–String str = sdf.format(timeStamp);

•java.sql.提姆(Tim)estamp怎么着更换为java.util.Date

–java.sql.提姆(Tim)estamp是java.util.Date的子类,不必要做其它转换直接赋值即可:

–java.sql.Timestamp ts;

–java.util.Date utilDate;

–utilDate = ts;

•java.util.Date怎么着转移为java.sql.提姆estamp

–java.util.Date是java.sql.提姆(Tim)estamp的父类,要如此转换:

–java.sql.Timestamp ts;

–java.util.Date utilDate;

–ts.setTime(utilDate.getTime());

•PreparedStatement接口

–PreparedStatement接口是Statement接口的子接口,允许行使分裂的参数数十次执行同一的
SQL 语句。

–Connection接口提供制造PreparedStatement对象的章程,可指定SQL语句:

PreparedStatement prepareStatement(String sql) throws SQLException

PreparedStatement pstmt = con.prepareStatement (“INSERT INTO EMP
VALUES(?,?)”); pstmt.setInt(1, 99); pstmt.setString(2, “Tom”); int count
= pstmt.executeUpdate( );

•PreparedStatement接口优点:

–可动态设置参数

–扩展了预编译功用

–提升执行进程

相关文章

Your Comments

近期评论

    功能


    网站地图xml地图