Java JDBC编程:Connection接口详解

需积分: 10 3 下载量 196 浏览量 更新于2024-07-13 收藏 840KB PPT 举报
"Java_JDBC编程" 在Java中,JDBC(Java Database Connectivity)是用于连接Java应用程序和各种类型的数据库的API。它提供了一个统一的接口,使得开发人员无需关心底层数据库的具体实现,就能实现对数据库的访问。JDBC的核心在于它的类和接口,其中最重要的接口之一就是`Connection`。 `Connection`接口是JDBC中的核心接口,它代表了与数据库之间的一个会话。通过`Connection`对象,开发者可以执行SQL语句、创建Statement对象以及获取数据库的元数据。下面我们将深入探讨`Connection`接口的一些关键方法: 1. `Statement createStatement()`:这个方法用于创建一个`Statement`对象,这个对象用于执行简单的SQL查询。一旦创建,`Statement`对象就可以用来发送SQL命令到数据库,并接收返回的结果。 2. `Statement createStatement(int resultSetType, int resultSetConcurrency)`:这个方法与上一个类似,但它允许开发者指定`ResultSet`对象的类型和并发性。`resultSetType`可以设置结果集的行为,例如滚动或只读;`resultSetConcurrency`定义结果集是否可更新。 3. `void close()`:这个方法用于关闭与数据库的连接。当不再需要与数据库的连接时,应该调用此方法以释放系统资源,防止资源泄漏。 4. `boolean isClosed()`:此方法用于检查数据库连接是否已经关闭。在执行任何操作之前,可以调用此方法来确认连接状态。 5. `DatabaseMetaData getMetaData()`:此方法返回一个`DatabaseMetaData`对象,提供了关于数据库的元数据信息,如数据库的版本、支持的SQL语法、表的信息、列的信息等。 JDBC的体系结构分为五个层次,包括: 1. 应用程序:编写使用JDBC的Java代码,负责与数据库交互。 2. JDBC API:提供一套标准的Java接口和类,用于与不同数据库进行通信。 3. 驱动程序管理器:负责加载合适的数据库驱动程序。 4. 驱动程序:由数据库供应商提供,实现JDBC接口,直接与特定数据库通信。 5. 数据源:包含实际的数据、操作系统、DBMS以及访问数据库的网络平台。 在JDBC驱动程序中,有几种类型的驱动,如JDBC-ODBC桥,它是早期的解决方案,依赖于ODBC驱动程序来连接Java应用程序和数据库。但随着技术的发展,现在更推荐使用JDBC native-API驱动(类型2、3、4),它们更高效,性能更好,直接与数据库进行通信,不需要ODBC的中间层。 学习JDBC的主要目标是理解和掌握如何使用`DriverManager`、`Connection`、`Statement`和`ResultSet`进行数据库的增、删、改、查操作。通过这些基础,开发者可以构建起对数据库操作的强大能力,实现各种复杂的数据库应用。

D:\javaJDK17\bin\java.exe "-javaagent:D:\编程软件\idea2022\IntelliJ IDEA 2022.1.3\lib\idea_rt.jar=4912:D:\编程软件\idea2022\IntelliJ IDEA 2022.1.3\bin" -Dfile.encoding=UTF-8 -classpath "D:\IDEA java\javaWeb\Maven\maven-project01\target\classes;D:\Maven\apache-maven-3.9.3-bin\apache-maven-3.9.3\mvn_store\org\mybatis\mybatis\3.5.5\mybatis-3.5.5.jar;D:\Maven\apache-maven-3.9.3-bin\apache-maven-3.9.3\mvn_store\mysql\mysql-connector-java\5.1.46\mysql-connector-java-5.1.46.jar;D:\Maven\apache-maven-3.9.3-bin\apache-maven-3.9.3\mvn_store\org\slf4j\slf4j-api\1.7.32\slf4j-api-1.7.32.jar;D:\Maven\apache-maven-3.9.3-bin\apache-maven-3.9.3\mvn_store\ch\qos\logback\logback-core\1.2.6\logback-core-1.2.6.jar;D:\Maven\apache-maven-3.9.3-bin\apache-maven-3.9.3\mvn_store\ch\qos\logback\logback-classic\1.2.6\logback-classic-1.2.6.jar" Demo1.HelloWord Exception in thread "main" org.apache.ibatis.exceptions.PersistenceException: ### Error querying database. Cause: java.sql.SQLException: Error setting driver on UnpooledDataSource. Cause: java.lang.ClassNotFoundException: Cannot find class: ${com.mysql.jdbc.Driver} ### The error may exist in UserMapper.xml ### The error may involve test.selectAll ### The error occurred while executing a query ### Cause: java.sql.SQLException: Error setting driver on UnpooledDataSource. Cause: java.lang.ClassNotFoundException: Cannot find class: ${com.mysql.jdbc.Driver} at org.apache.ibatis.exceptions.ExceptionFactory.wrapException(ExceptionFactory.java:30) at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:149) at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:140) at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:135) at Demo1.HelloWord.main(HelloWord.java:23) Caused by: java.sql.SQLException: Error setting driver on UnpooledDataSource. Cause: java.lang.ClassNotFoundException: Cannot find class: ${com.mysql.jdbc.Driver} at org.apache.ibatis.datasource.unpooled.UnpooledDataSource.initializeDriver(UnpooledDataSource.java:244) at org.apache.ibatis.datasource.unpooled.UnpooledDataSource.doGetConnection(UnpooledDataSource.java:223) at org.apache.ibatis.datasource.unpooled.UnpooledDataSource.doGetConnection(UnpooledDataSource.java:219) at org.apache.ibatis.datasource.unpooled.UnpooledDataSource.getConnection(UnpooledDataSource.java:95) at org.apache.ibatis.datasource.pooled.PooledDataSource.popConnection(PooledDataSource.java:432) at org.apache.ibatis.datasource.pooled.PooledDataSource.getConnection(PooledDataSource.java:89) at org.apache.ibatis.transaction.jdbc.JdbcTransaction.openConnection(JdbcTransaction.java:139) at org.apache.ibatis.transaction.jdbc.JdbcTransaction.getConnection(JdbcTransaction.java:61) at org.apache.ibatis.executor.BaseExecutor.getConnection(BaseExecutor.java:337) at org.apache.ibatis.executor.SimpleExecutor.prepareStatement(SimpleExecutor.java:86) at org.apache.ibatis.executor.SimpleExecutor.doQuery(SimpleExecutor.java:62) at org.apache.ibatis.executor.BaseExecutor.queryFromDatabase(BaseExecutor.java:325) at org.apache.ibatis.executor.BaseExecutor.query(BaseExecutor.java:156) at org.apache.ibatis.executor.CachingExecutor.query(CachingExecutor.java:109) at org.apache.ibatis.executor.CachingExecutor.query(CachingExecutor.java:89) at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:147) ... 3 more

2023-07-22 上传