第四章 JDBC
JDBC知识点总结

JDBC知识点总结JDBC(Java Database Connectivity)是Java语言访问关系型数据库的标准接口。
它提供了一组方法和类,使得Java程序能够和数据库进行连接、查询和更新等操作。
下面是关于JDBC的知识点总结。
1.JDBC的工作机制JDBC通过驱动程序(Driver)将Java程序和数据库连接起来。
驱动程序的主要作用是提供与数据库通信的实现。
JDBC的工作机制可以分为以下几个步骤:- 加载驱动程序:使用Class.forName(方法加载驱动程序类。
- 建立连接:使用DriverManager.getConnection(方法建立与数据库的连接。
- 创建语句对象:使用连接对象的createStatement(方法或prepareStatement(方法创建Statement或PreparedStatement对象。
- 执行SQL语句:使用Statement或PreparedStatement对象的executeQuery(、executeUpdate(等方法执行SQL语句。
- 处理结果:对于查询操作,可以通过ResultSet对象获取结果集中的数据;对于更新操作,可以通过返回的整数值判断操作是否成功。
- 关闭连接:使用Connection对象的close(方法关闭连接。
2.JDBC的核心接口- Connection接口:表示数据库连接对象。
可以通过DriverManager.getConnection(方法获取Connection对象。
- Statement接口:用于执行静态SQL语句,不带参数。
- PreparedStatement接口:用于执行带有参数的SQL语句,可以提高SQL语句的效率和安全性。
- CallableStatement接口:用于执行存储过程。
- ResultSet接口:表示查询结果集。
可以通过Statement或PreparedStatement的executeQuery(方法获取ResultSet对象。
JDBC

Connection类的方法…
Statement createStatement() throws SQLException; //建 立Statement类对象 Statement createStatement(int resultSetType,int resultS etConcurrency) throws SQLException; // 建立Statement类对象
使用 DataSource的例子
String jndi = "jdbc/jpetstore1"; Context ctx = (Context) new InitialContext().lookup("java:comp/env"); DataSource ds = (DataSource) ctx.lookup(jndi); Connection cn = ds.getConnection();
registerDriver getConnection(String url) getConnection(String url, java.util.Properties prop)
DataSource接口…
建议用此种方式来获取数据源的连接 DataSource 对象表示一个数据源,并提供了 该数据源的连接 使用 DataSource 对象增加了应用程序的可移 植性(使用逻辑名称表示一个数据源,取代为 驱动程序提供特定的连接信息) DataSource的属性改变,应用程序代码不需 要改变
…DataSource接口…
使用 JNDI API,指定逻辑名来访问DataSource 对象,把逻辑名 映射到相应的数据源 例子: // Get the initial JNDI naming context Context ctx = new InitialContext(); // Get the DataSource object associated with the logical name // "jdbc/AcmeDB" and use it to obtain a database connection DataSource ds = (DataSource)ctx.lookup("jdbc/AcmeDB"); Connection con = ds.getConnection("user", "pwd");
JDBC连接数据库6个步骤

JDBC连接数据库6个步骤JDBC(Java Database Connectivity)是Java语言连接数据库的一种标准API,它提供了一组用于访问和操作数据库的接口。
在使用JDBC 连接数据库时,一般需要经过以下6个步骤:1.加载数据库驱动程序:``````2.建立数据库连接:加载驱动程序后,需要获取一个数据库连接。
在JDBC中,可以通过DriverManager类的getConnection(方法来创建一个数据库连接对象。
该方法接受三个参数:数据库URL、用户名和密码。
数据库URL指定了要连接的数据库的位置和其他连接参数。
例如,如果要连接localhost上的名为test的MySQL数据库,可以使用如下代码:```String url = "jdbc:mysql://localhost:3306/test";String username = "root";String password = "password";Connection connection = DriverManager.getConnection(url, username, password);```3. 创建Statement对象:创建Statement对象用于执行SQL语句。
Statement是JDBC中用于发送静态SQL语句的对象。
可以通过调用Connection对象的createStatement(方法来创建一个Statement对象。
例如:```Statement statement = connection.createStatement(;```4.执行SQL语句:通过Statement对象的executeQuery(方法来执行SQL查询语句。
该方法返回一个ResultSet对象,用于保存查询结果。
例如,可以执行一个简单的查询语句并遍历结果集:```String sql = "SELECT * FROM students";ResultSet resultSet = statement.executeQuery(sql);while(resultSet.next()String name = resultSet.getString("name");int age = resultSet.getInt("age");//处理查询结果```除了executeQuery(方法,Statement对象还提供了其他执行SQL语句的方法,如executeUpdate(用于执行更新操作。
简述jdbc实现步骤

简述JDBC实现步骤
JDBC(Java Database Connectivity)是Java语言用于连接和操作数据库的标准API。
下面是简要的JDBC实现步骤:
1. 加载数据库驱动程序:首先,需要加载适当的数据库驱动程序,以便能够与数据库建立连接。
可以使用`Class.forName()`方法加载驱动程序类。
2. 建立数据库连接:使用`DriverManager.getConnection()`方法创建与数据库的连接。
需要提供数据库的URL、用户名和密码等连接参数。
3. 创建Statement对象:使用连接对象的`createStatement()`方法创建一个Statement对象。
Statement对象用于执行SQL语句并与数据库进行交互。
4. 执行SQL语句:使用Statement对象的`executeQuery()`方法执行查询语句,或者使用`executeUpdate()`方法执行更新语句(如插入、更新、删除等)。
执行查询语句后,可以使用`ResultSet`对象获取查询结果。
5. 处理查询结果:如果执行的是查询语句,可以使用ResultSet对象
的方法(如`next()`、`getString()`等)遍历和获取查询结果。
6. 关闭连接和资源:在完成数据库操作后,需要关闭ResultSet、Statement和Connection等资源,以释放数据库连接和其他资源。
这是JDBC的基本实现步骤。
当然,实际应用中可能还涉及事务管理、预编译语句、连接池等更复杂的操作。
此外,还可以使用JDBC的高级特性,如批处理、存储过程、元数据查询等。
jdbc的基本使用步骤

JDBC(Java Database Connectivity)是Java中用于操作数据库的API,提供了统一访问多种关系型数据库的方式。
JDBC的基本使用步骤如下:
1. 注册驱动:使用Class.forName()方法加载相应的数据库驱动类。
例如,对于MySQL数据库,需要加载MySQL的驱动类。
2. 获取连接:使用DriverManager.getConnection()方法,传入数据库连接信息(如数据库URL、用户名、密码)来获取数据库连接。
3. 执行SQL语句:使用Connection对象调用其execute()方法,传入SQL语句来执行SQL查询。
4. 处理执行结果:使用ResultSet对象获取查询结果,并进行相应的处理。
例如,可以将数据转换为Java对象,或者更新前端展示。
5. 关闭资源:在操作完成后,关闭ResultSet、Statement和Connection对象,释放资源。
以上步骤是JDBC的基本使用步骤,实际使用中可能会根据具体情况进行调整。
例如,在实际使用中可能需要使用PreparedStatement 接口来防止SQL注入,或者使用事务控制来保证数据的完整性。
JDBC连接数据库的原理和步骤

JDBC连接数据库的原理和步骤JDBC(Java Database Connectivity)是Java语言访问数据库的一种标准接口。
JDBC提供了一套统一的API,使得Java程序能够与各种不同的关系型数据库进行交互。
JDBC的原理和步骤如下。
1. 加载JDBC驱动程序:JDBC驱动程序是用于连接Java应用程序与数据库之间的桥梁。
在使用JDBC连接数据库之前,需要先加载相应的JDBC驱动程序。
加载JDBC驱动程序的方式有两种:直接使用`Class.forName(`方法加载驱动类,或者通过在`META-INF/services/java.sql.Driver`文件中配置驱动类的方式加载。
2. 建立数据库连接:使用`DriverManager`类的`getConnection(`方法建立与数据库的连接。
该方法返回一个`Connection`对象,表示与数据库之间的连接。
`getConnection(`方法需要传入数据库的URL、用户名和密码作为参数。
3. 创建Statement对象:`Statement`对象用于向数据库发送SQL语句,并接收执行结果。
通过`Connection`对象的`createStatement(`方法创建一个`Statement`对象。
4. 执行SQL语句:使用`Statement`对象的`executeUpdate(`方法执行SQL语句。
对于更新操作(如插入、更新、删除),使用`executeUpdate(`方法,并传入相应的SQL语句作为参数。
对于查询操作,使用`executeQuery(`方法执行查询,并返回一个`ResultSet`对象,用于遍历查询结果集。
5. 处理查询结果:对于查询操作,通过`ResultSet`对象可以获取查询结果集中的数据。
可以使用`next(`方法将光标移到结果集的下一行,并返回一个`boolean`值表示是否还有更多的行。
可以使用`getInt(`、`getString(`等方法获取特定字段的值。
jdbc使用步骤

jdbc使用步骤JDBC使用步骤JDBC(Java Database Connectivity)是Java程序连接数据库的一种标准接口。
通过JDBC,我们可以在Java程序中访问和操作各种数据库。
下面将介绍使用JDBC连接数据库的步骤。
1. 导入JDBC相关的包在Java程序中使用JDBC,首先需要导入JDBC相关的包。
通常使用的包包括java.sql和javax.sql。
可以使用import语句导入这些包,以便在代码中使用JDBC提供的类和接口。
2. 加载数据库驱动程序在使用JDBC之前,需要先加载数据库驱动程序。
驱动程序是一个Java类,用于与特定的数据库进行通信。
不同的数据库有不同的驱动程序,需要根据使用的数据库选择相应的驱动程序。
可以使用Class类的forName()方法来动态加载驱动程序。
3. 建立数据库连接在加载了数据库驱动程序之后,就可以建立与数据库的连接了。
首先需要创建一个Connection对象,该对象表示与数据库的物理连接。
可以使用DriverManager类的getConnection()方法来建立数据库连接。
该方法接收数据库的URL、用户名和密码等参数,返回一个代表数据库连接的Connection对象。
4. 创建Statement对象在建立了数据库连接之后,就可以创建Statement对象了。
Statement对象用于向数据库发送SQL语句并接收执行结果。
可以通过Connection对象的createStatement()方法来创建Statement对象。
5. 执行SQL语句通过Statement对象可以执行SQL语句。
可以使用Statement对象的executeUpdate()方法执行更新操作(如插入、删除、修改),该方法返回一个整数,表示受影响的行数。
可以使用Statement对象的executeQuery()方法执行查询操作,该方法返回一个ResultSet对象,表示查询结果集。
JDBC学习与帮助文档

JDBC(Java Database Connectivity)一、概述:JDBC从物理结构上说就是Java语言访问数据库的一套接口集合。
从本质上来说就是调用者(程序员)和实行者(数据库厂商)之间的协议。
JDBC的实现由数据库厂商以驱动程序的形式提供。
JDBC API为Java开发者使用数据库提供了统一的编程接口,它由一组Java 类和接口组成,使得开发人员可以使用纯Java的方式来连接数据库,并进行操作。
1.在JDBC中包括了两个包:java.sql和javax.sql。
①java.sql基本功能。
这个包中的类和接口主要针对基本的数据库编程服务,如生成连接、执行语句以及准备语句和运行批处理查询等。
同时也有一些高级的处理,比如批处理更新、事务隔离和可滚动结果集等。
②javax.sql扩展功能。
它主要为数据库方面的高级操作提供了接口和类。
如为连接管理、分布式事务和旧有的连接提供了更好的抽象,它引入了容器管理的连接池、分布式事务和行集等。
主要对象和接口:注:除了标出的Class,其它均为接口。
驱动程序按照工作方式分为四类:(了解)1、JDBC-ODBC bridge +ODBC 驱动JDBC-ODBC bridge 桥驱动将JDBC 调用翻译成ODBC 调用,再由ODBC 驱动翻译成访问数据库命令。
优点:可以利用现存的ODBC 数据源来访问数据库。
缺点:从效率和安全性的角度来说比较差。
不适合用于实际项目。
2、基于本地API 的部分Java 驱动我们应用程序通过本地协议跟数据库打交道。
然后将数据库执行的结果通过驱动程序中的Java 部分返回给客户端程序。
优点:效率较高;缺点:安全性较差。
3、纯Java 的中间服务器驱动缺点:两段通信,效率比较差优点:安全性较好4、纯Java 本地协议:通过本地协议用纯Java 直接访问数据库。
特点:效率高,安全性好。
对象和接口关系图:(中间协议)(本地协议)JVM注册驱动程序有三种方式:方式一:class.forName(class.forName(““oracle.jdbc.driver.OracleDriver oracle.jdbc.driver.OracleDriver””);Java 规范中明确规定:所有的驱动程序必须在静态初始化代码块中将驱动注册到驱动程序管理器中。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
JDBC API
JDBC API实现了四个基本的功能:建立与数据的连接、执行 SQL语句和处理执行结果、关闭数据库的连接。 1. Driver接口 2. DataSource接口 3. DriverManager类 4. Connection类 5. Statement类 6. PreparedStatement类 7. CallableStatement类 8. ResultSet类 9. ResultSetMetaData类 10. DatabaseMetaData类
…Driver接口
“odbc” 子协议, 是一种特殊情况。用于指定 ODBC 风格 的数据资源名称的 URL 而保留的,并具有下列特性: 允许在子名称(数据资源名称)后指定任意多个属性值。 odbc 子协议的完整语法为: jdbc:odbc:< 数据资源名称 >[;< 属性名 >=< 属性值 >]* 因此,以下都是合法的 jdbc:odbc 名称: jdbc:odbc:qeor7 jdbc:odbc:wombat jdbc:odbc:wombat;CacheSize=20;ExtensionCase=LOW ER jdbc:odbc:qeora;UID=kgh;PWD=fooey
…Driver接口…
URL 语法 jdbc:<subprotocol>:<subname> JDBC URL 中的协议总是 jdbc <subprotocol>子协议用来标识一种特定种类的数据库 连接机制 <subname> 的内容依赖于子协议,推荐的语法是: //hostname:port/subsubname 例如URL: jdbc:mysql://localhost:3306/jpetstore?autoReconnect =true jdbc:odbc:fred
Driver接口
JDBC驱动程序必须实现Driver接口, 且该实现必 须包含一个静态的初始化块〔a static initializer〕 静态的初始化块使用DriverManager 注册自身的 一个新的实例
…Driver接口…
当使用 Class.forName(“com.acme.jdbc.AcmeJdbcDriver”), 加载该驱动的实例时,静态的代码块将自动的注册该 驱动的实例 当DriverManager 试图建立某个数据库连接时, DriverManager 调用驱动程序的connect()方法,并 把数据库连接的URL传递给它。 JDBC URL 提供了一种标识数据库的方法,可以使相 应的驱动程序能识别该数据库并与之建立连接
JDBC体系结构
JDBC数据库驱动程序
数据库驱动有四种类型: Type 1:JDBC-ODBC Bridge Type 2:JDBC-Native API Bridge Type 3:JDBC-middleware Type 4:Pure JDBC driver
JDBC-ODBC Bridge
使用 DataSource的例子
String jndi = "jdbc/jpetstore1"; Context ctx = (Context) new InitialContext().lookup("java:comp/env"); DataSource ds = (DataSource) ctx.lookup(jndi); Connection cn = ds.getConnection();
第四章 JDBC
访问多种数据库的统一 数据库访问接口
概要
JDBC概述 JDBC驱动程序 DriverManager Connections Statements Result Sets 数据库元数据
JDBC概述
JDBC 本身是个商标名而不是一个缩写字“Java Database Connectivity” 一种用于执行 SQL 语句的 Java API,由一组类和接 口组成。 为工具/数据库开发人员提供了一个标准的 API,使他 们能够用纯Java API 来编写数据库应用程序。 采用 JDBC,不需要针对各种关系数据库编写不同的 数据库程序 将 Java 和 JDBC 结合起来将使程序员只须写一遍程 序就可让它在任何平台上运行。
JDBC API Fra bibliotek 核心的 JDBC API 在包java.sql中 包java.sql中主要的类和接口关系如图 包javax.sql在JDBC2.0中是可选的,JDBC3.0 开始为绝大多数厂商支持 javax.sql.DataSource 和 java.sql.Connection 关系如图
连接过程包括所执行的 SQL 语句和在该连接 上所返回的结果。 一个应用程序可与单个数据库有一个或多个连 接,或者可与许多数据库有连接。
使用 DriverManager的例子
String className,url,uid,pwd; className = “com.microsoft.jdbc.sqlserver.SQLServerDriver”; url = “jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=testJDC ;User=user;Password=password; // the hard-code URL uid = ”sa“; pwd = “sa”; Class.forName(className); // load the driver Connection cn = DriverManager.getConnection(url); //Connection cn = DriverManager.getConnection(url,uid,pwd);
DataSource接口…
建议用此种式来获取数据源的连接 DataSource 对象表示一个数据源,并提供了 该数据源的连接 使用 DataSource 对象增加了应用程序的可移 植性(使用逻辑名称表示一个数据源,取代为 驱动程序提供特定的连接信息) DataSource的属性改变,应用程序代码不需 要改变
…DataSource接口…
DataSource 的标准属性
…DataSource接口…
DataSource属性遵循JavaBeans组件中属性 的命名约定 DataSource的实现必须为每个支持的属性提 供存取方法 “getter” and “setter” DataSource 的属性对于JDBC客户端来说不 是直接可访问的。
–
resultSetConcurrency值
–
JDBC2.0中才支持滚动的结果集,而且可以对数据进行更新
…Connection类的方法…
PreparedStatement prepareStatement(String sql) thr ows SQLException; //建立PreparedStatement类对象 boolean getAutoCommit() throws SQLException //返回Connection类对象的AutoCommit状态 void setAutoCommit(boolean autoCommit) throws S QLException //设定Connection类对象的AutoCommit状态 DatabaseMetaData getMetaData() throws SQLExce ption; //建立DatabaseMetaData类对象
–
resultSetType值
TYPE_FORWARD_ONLY 结果集不可滚动 TYPE_SCROLL_INSENSITIVE 结果集可滚动,不反映数据库的变 化 TYPE_SCROLL_SENSITIVE 结果集可滚动,反映数据库的变化 CONCUR_READ_ONLY 不能用结果集更新数据 CONCUR_UPDATABLE 能用结果集更新数据
DriverManager类
负责管理JDBC驱动程序。 使用JDBC驱动程序之前,必须先将驱动程序加载并 向DriverManager注册后才可以使用,同时提供方法 来建立与数据库的连接。 通过指定的URL查找合适的驱动 DriverManager 关键方法 include:
– – –
JDBC-Native API Bridge
桥接器驱动程序之一 这类驱动程序也必须先在使用者计算机上先安 装好特定的驱动程序(类似ODBC),然后通 过JDBC-Native API桥接器的转换,把Java API 调用转换成特定驱动程序的调用方法,进而存 取数据库。 利用开发商提供的本地库直接与数据库通信。 Application--->JDBC Driver--->Native Database library---->Database 比A类性能略好。
JDBC-middleware
好处:省去了在使用者计算机上安装任何驱动 程序的麻烦,只需在服务器端安装好 middleware,而middleware会负责所有存取 数据库必要的转换。 Application--->Jdbc Driver---->java middleware--->JDBC Driver--->Database 具有最大的灵活性,通常由那些非数据库厂商 提供。
桥接器驱动程序之一 特色是必须在使用者端的计算机上事先安装好 ODBC驱动程序,然后通过JDBC-ODBC的调 用方法,进而通过ODBC来存取数据库。 Application--->JDBC-ODBC Bridge--->JDBC-ODBC Library--->ODBC Driver->Database 适用于快速的原型系统,没有提供JDBC驱动 的数据库如Access