-------------------------------------------------------------------------------------------------------------------------------------
JDBC概念:1996年,sun公司提出,一般认为是java database connectivity;是java程序开发人员访问数据库的标准接口,实际上就是一组java语言编写的java类。作用:规避数据库的不同,为程序开发人员访问数据库提供统一的接口,即API。和数据库建立连接,发送sql语句,处理数据库返回的结果。
ODBC:open database connectivity基于c语言的,由Microsoft提出。
-------------------------------------------------------------------------------------------------------------------------------------
jdbc driver的四种类型
第一种:jdbc-odbc桥,将jdbc调用转换为odbc调用,性能低。application--->jdbc-odbc--->odbc--->database
第二种:本地API部分用java编写的驱动,将jdbc调用转换为dbms的调用,必须安装于数据库相关的客户端程序。
application--->jdbc dirver(tyoe2)--->database client library--->database
第三种:jdbc网络纯java的驱动,将jdbc调用转换为于dms无关的网络协议,然后由相应服务器转换为dbms调用。
application--->jdbc driver(type3)--->server--->database
第四种:本地协议纯java的驱动,将jdbc调用转换为dbms的调用。
application--->jdbc driver(type4)--->database
现实中一般使用第四种。
-------------------------------------------------------------------------------------------------------------------------------------
URL:uniform resource locator
网络协议:http:www.google.com
数据库协议:jdbc:<子协议>:<子名字>
例如:jdbc:oracle:thin:@192.168.1.200:1521:htwgliantong//第四种驱动
-------------------------------------------------------------------------------------------------------------------------------------
jdbc的使用步骤:
1.注册驱动
a.通过类装载器:Class.forName(driverName);
b.直接实例化驱动
DriverConstructor dri=new DriverConstructor();
DriverManager.registerDriver(dri)
c.通过jdbc.driver属性
2.建立连接
a.通过DriverManager:Connetion conn=DriverManager.getConnection(url,username,password);
b.通过java.sql.Driver:Connection conn=Driver.connect(String url,Properties info);
3.创建statement:statement用来发送要执行的sql语句。
a.Statement:执行不带参数的sql语句,创建:conn.creatStatement();
b.PreparedStatement:执行不带参数或带参数的预编译sql语句,下次执行就不用再编译和优化了。
创建:conn.preparedStatement()
c.CallableStatement:调用数据库中的存储过程或函数等等,
4.执行sql语句
stmt.executeQuery();返回类型ResultSet。
stmt.execute();返回类型为boolean,代表执行此语句是否有ResultSet返回,有就是true。
stmt.executeUpdate();返回类型为int,执行此sql语句所影响的记录数。
5.处理结果集
只有select语句才会结果集返回
while(rs.next())
{
rs.getString(1);
}
可以使用位置标识,也可以使用名称标识
6.释放资源
一般写在finally语句块中,所释放的资源有ResultSet,Statement,Connection
----------------------------------------------------------------------------------------------------------------------------------
示例:
String driver="oracle.jdbc.driver.OracleDriver";
String url="jdbc:oracle:thin:@192.168.1.200:1521:htwgliantong";
String name="root";
String password="root";
Connection conn=null;
Statement stmt=null;
ResultSet rs=null;
try{
Class.forName(driver);
conn=DriverManager.getConnection(url,name,password);
stmt=conn.createStatement();
String sql="select * from student";
rs=stmt.executeQuery(sql);
while(rs.next())
{
String name=rs.getString(1);
int age=rs.getInt(2);
}
}catch(Exception e)
{
e.printStackTrace();
}finally{
if(rs!=null)
try{
rs.close();
rs=null;
}catch(exception e){}
}
if(stmt!=null)
{
try{
stmt.close();
stmt=null;
}catch(Exception e){}
}
if(conn!=null)
{
try{
conn.close();
conn=null;
}catch(Exception e){}
}
}
}
-----------------------------------------------------------------------------------------------------------------------------------
Transation:事务,一组相关的操作组合为一整体,要么同时成功,要么同时失败。
ACID四大属性:原子性,一致性,隔离性,持久性。
事务的提交方式:
自动式:jdbc新建链接默认使用的方式。
手动式:conn.setAutoCommit(false);conn.commit();conn.rollback();
五种隔离级别:
transaction_none 不支持事务
transaction_read_uncommited 可以读取其他事务未提交的数据,可能产生脏读、不可重复读、以及幻读。
transaction_read_commited 解决脏读
transaction_repeatable_read 可以解决脏读,不可重复读
transaction_serialable 解决了脏读、不可重复读、幻影读的问题
---------------------------------------------------------------------------------------------------------------------------------
连接池原理:
1.在应用启动时,创建一定量的连接放到池中;
2.从池中取出一个未使用的连接,标记为忙。
3.使用后,将连接放回池中。
4.应用关闭,释放所有连接。
分享到:
相关推荐
《深入理解JDBC Driver 3.0:聚焦SQL Server JDBC》 在IT行业中,数据库连接是应用程序与数据存储之间的桥梁,而JDBC(Java Database Connectivity)则是Java平台中用于访问数据库的标准API。JDBC Driver 3.0是针对...
SQL Server驱动包是用于Java应用程序通过JDBC(Java Database Connectivity)接口与Microsoft SQL Server数据库进行交互的必备组件。本文将详细介绍这两个重要的驱动文件——sqljdbc.jar和sqljdbc4.jar,以及如何...
SQLJDBC和SQLJDBC4是Microsoft为Java应用程序提供的用于连接SQL Server数据库的驱动程序。这两个版本都是JDBC(Java Database Connectivity)驱动,允许Java开发者在应用程序中与SQL Server进行交互。下面将详细介绍...
Spring Data JDBC与JDBC是两种不同的数据库访问方式,它们在Java开发中有着广泛的应用。JDBC(Java Database Connectivity)是Java平台的标准API,用于与各种数据库进行交互。它提供了低级别的数据库操作,如建立...
mysql jdbc 驱动 适用于5.6版本及以下数据库 mysql jdbc 驱动 适用于5.6版本及以下数据库 mysql jdbc 驱动 适用于5.6版本及以下数据库 mysql jdbc 驱动 适用于5.6版本及以下数据库 mysql jdbc 驱动 适用于5.6版本及...
mysql jdbc 驱动 适用于5.7及以上版本数据库 mysql jdbc 驱动 适用于5.7及以上版本数据库 mysql jdbc 驱动 适用于5.7及以上版本数据库 mysql jdbc 驱动 适用于5.7及以上版本数据库 mysql jdbc 驱动 适用于5.7及以上...
在Java编程语言中,JDBC(Java Database Connectivity)是一个核心的API,用于连接Java应用程序与各种类型的数据库。这里我们关注的是两个特定版本的Microsoft SQL Server的JDBC驱动:sqljdbc41.jar和sqljdbc42.jar...
在给定的压缩包文件中,包含了三个不同版本的达梦JDBC驱动,分别是Dm7JdbcDriver16.jar、Dm7JdbcDriver17.jar和Dm7JdbcDriver18.jar。 1. **JDBC驱动介绍**: JDBC是Java中用于与各种数据库进行交互的标准接口,它...
SQL Server 2000 JDBC 是Java编程语言与Microsoft SQL Server 2000数据库进行交互的一种重要方式。JDBC(Java Database Connectivity)是Java API,允许Java应用程序通过Java虚拟机(JVM)与各种数据库建立连接。在...
标题 "Access_JDBC30" 暗示了这是一个与Microsoft Access数据库相关的Java JDBC驱动程序。JDBC(Java Database Connectivity)是Java编程语言中用于连接和操作数据库的标准接口。这个jar包,"Access_JDBC30.jar",...
KingbaseV8 JDBC驱动是连接KingbaseV8数据库的重要组件,允许Java应用程序通过JDBC(Java Database Connectivity)接口与数据库进行交互。JDBC是Java语言中用来规范客户端程序如何访问数据库的应用程序接口,提供了...
在IT行业中,数据库是至关重要的组成部分,而SQL Server作为一款广泛应用的关系型数据库管理系统,它的连接与操作离不开JDBC(Java Database Connectivity)驱动。本篇将详细介绍如何下载和安装sqljdbc4,这是...
Java JDBC(Java Database Connectivity)是Java编程语言中用于与各种数据库进行交互的一组接口和类。它提供了一种标准化的方法,让程序员可以使用SQL语句访问数据库,而无需关心具体的数据库实现细节。在Java应用...
Access的JDBC驱动是Java数据库连接(Java Database Connectivity, JDBC)的一种实现,它允许Java程序与Microsoft Access数据库进行交互。在JDK 1.8之后,Oracle公司不再默认提供对ODBC(Open Database Connectivity...
标题中的"sqljdbc4.jar, sqljdbc41.jar, sqljdbc42.jar"是指Microsoft SQL Server为Java应用程序提供的Java Database Connectivity (JDBC)驱动程序。这些JAR文件是数据库连接的关键,允许Java代码与SQL Server进行...
`sqljdbc`是Microsoft提供的一个驱动程序,使得Java应用程序能够与SQL Server数据库进行交互。在这个场景中,我们关注的是`sqljdbc 3.0`和`4.0`版本,这两个版本都是专门为Java设计的,用于连接SQL Server 2000。 `...
标题中的"sqljdbc42.jar、sqljdbc41.jar 更新日期2017-12-21"指的是Microsoft SQL Server的Java Database Connectivity (JDBC) 驱动的两个不同版本,它们分别对应于Java SE 7和Java SE 8的兼容性。JDBC驱动是Java...
标题“sqljdbc4-3.0.jar”指向的是一个特定版本的Microsoft SQL Server JDBC驱动程序,它是用于在Java应用程序中连接和操作SQL Server数据库的桥梁。这个版本的驱动(3.0)支持与SQL Server 2000的兼容性。 在描述...