如何使用Java中的JDBC

发布时间:2020-08-04 13:54:51 作者:小猪
来源:亿速云 阅读:205

这篇文章主要讲解了如何使用Java中的JDBC,内容清晰明了,对此有兴趣的小伙伴可以学习一下,相信大家阅读完之后会有帮助。

什么是JDBC:

JDBC的优点:


JDBC的使用:

导入对应数据库的驱动类:

加载驱动:

PS:

获取连接:

如何使用Java中的JDBC

执行SQL语句:

JDBC执行SQL语句的方式主要有三种:

1.使用Statement执行sql语句

2.使用PreparedStatement执行sql语句

3.使用CallableStatement执行sql语句

上面的Statement、PerPareStatement、Callalestatement都可以使用连接对象来获取。

如何使用Java中的JDBC

如何使用Java中的JDBC

如何使用Java中的JDBC

定义的存储过程示例:

如何使用Java中的JDBC

使用:

如何使用Java中的JDBC

获取返回:

如何使用Java中的JDBC

如何使用Java中的JDBC

关闭连接:

如何使用Java中的JDBC


事务

不了解事务是什么的,可以看一下我的另外一篇博文:mysql之事务管理

设置事务管理:

连接对象.setAutoCommit(boolean)【当参数为true时,代表允许自动提交(事务管理是关闭的,每一条命令都会自动提交);当为false时,代表不允许自动提交,命令会在执行commit之后再统一提交(开启事务管理的)】

提交事务:

连接对象.commit()

回滚事务:

连接对象.rollback()

例子:

以银行转账为例,张三转给李四100元,执行事务后,如果运行出错将不会提交数据到数据库:

如何使用Java中的JDBC

如何使用Java中的JDBC

补充:


数据库连接池

连接池可以自定义,当然常用的一般都是选择采用第三方开源的连接池,想了解如何自定义连接池的可以自查,下面给出的是两个常用的连接池的用法。

DBCP:

首先,使用DBCP连接池需要导入包:commons-dbcp.jar和commons-pool.jar【如果需要日志功能,还需要commons-logging-1.2.jar ,这里不讲述】

DBCP根据配置方式,下面给出两种使用方法:

1.手动配置法:

  1. 创建BasicDataSource对象: BasicDataSource dataSource = new BasicDataSource();
  2. 配置BasicDataSource对象:(少用)调用对应函数配置,例如dataSource.setDriverClassName("com.mysql.jdbc.Driver");
  3. 得到连接对象:Connection conn = ds.getConnection();
  4. 操作数据库。(得到数据库连接对象后,就可以像以前一样去操作数据库了)

如何使用Java中的JDBC

2.配置文件配置法:

  1. 创建BasicDataSourceFactory对象:BasicDataSourceFactory factory = new BasicDataSourceFactory();
  2. 利用BasicDataSourceFactory对象的createDataSource函数读取配置文件配置DataSource对象:DataSource dataSource = factory.createDataSource(properties);【配置文件能用哪些参数可以参考这个文档:http://commons.apache.org/proper/commons-dbcp/configuration.html】
  3. 得到连接对象:Connection conn = ds.getConnection();
  4. 操作数据库。(得到数据库连接对象后,就可以像以前一样去操作数据库了)

如何使用Java中的JDBC

当使用完毕后,像往常一样调用close关闭连接即可【这里通过连接池获取的Connection对象已经封装过了,使用close函数相当于放回连接池中】

常用的dbcp.properties的配置信息:

#连接设置
driverClassName=com.mysql.jdbc.Driver
url=jdbc:mysql://localhost:3306/jdbc
username=root
password=

#<!-- 初始化连接 -->
initialSize=10

#最大连接数量
maxActive=50

#<!-- 最大空闲连接 -->
maxIdle=20

#<!-- 最小空闲连接 -->
minIdle=5

#<!-- 超时等待时间以毫秒为单位 6000毫秒/1000等于60秒 -->
maxWait=60000


#JDBC驱动建立连接时附带的连接属性属性的格式必须为这样:[属性名=property;]
#注意:"user" 与 "password" 两个属性会被明确地传递,因此这里不需要包含他们。
connectionProperties=useUnicode=true;characterEncoding=gbk

#指定由连接池所创建的连接的自动提交(auto-commit)状态。
defaultAutoCommit=true

#driver default 指定由连接池所创建的连接的事务级别(TransactionIsolation)。
#可用值为下列之一:(详情可见javadoc。)NONE,READ_UNCOMMITTED, READ_COMMITTED, REPEATABLE_READ, SERIALIZABLE
defaultTransactionIsolation=READ_UNCOMMITTED

C3P0:

首先,使用C3P0连接池需要导入包:c3p0-0.9.1.2.jar【还有扩展包如c3p0-oracle-thin-extras-0.9.1.2.jar,这里不讲】

手动配置法:

  1. 创建ComboPooledDataSource对象:ComboPooledDataSource dataSource = new ComboPooledDataSource();
  2. 调用对应函数配置对应属性

如何使用Java中的JDBC

配置文件配置法:

  1. 创建配置文件,c3p0的配置文件名字是固定的,必须是c3p0.properties或c3p0-config.xml,否则识别不了。配置文件的写法看下面【配置文件存储的位置:1.能在classpath中获取到的目录(比如工程的src目录)、2.WEB-INF/classes、3.某些类似功能的路径】
  2. 创建ComboPooledDataSource对象【如果有配置文件,那么会读取配置文件来配置ComboPooledDataSource对象】
  3. 获取连接
  4. 执行sql语句

如何使用Java中的JDBC

当你使用完后,Connection对象调用close函数,就会把连接释放会连接池中【这里通过连接池获取的Connection对象已经封装过了,使用close函数相当于放回连接池中】

配置文件c3p0-config.xml的写法:

<c3p0-config>
  <default-config>
    <property name="driverClass">com.mysql.jdbc.Driver</property>
    <property name="jdbcUrl">jdbc:mysql://localhost/bank</property>
    <property name="user">root</property>
    <property name="password">123456</property>
    <!-- 下面的是额外的配置,如最大连接数,连接池大小。。 
    <property name="initialPoolSize">10</property> 
    <property name="maxIdleTime">30</property> <property name="maxPoolSize">100</property> 
    <property name="minPoolSize">10</property> <property name="maxStatements">200</property> 
    -->

  </default-config>
  <!-- 上面是默认的,如果不给参数,默认是上面的; -->
  <!-- 下面的是单独的,在创建对象时把下面name中的那个值赋给对象的构造函数,那么将使用下面的配置 -->
  <named-config name="student">
    <property name="driverClass">com.mysql.jdbc.Driver</property>
    <property name="jdbcUrl">jdbc:mysql://localhost/student</property>
    <property name="user">root</property>
    <property name="password">123456</property>
  </named-config>

</c3p0-config>

配置文件c3p0.properties的写法:

c3p0.driverClass=com.mysql.jdbc.Driver
c3p0.jdbcUrl=jdbc:mysql://localhost/bank
c3p0.user=root
c3p0.password=123456

想更详细的了解c3p0,可以参考官方文档:https://www.mchange.com/projects/c3p0/index.html

怎样去配置c3p0连接池,什么英语代表什么意思,具体请参考:https://www.mchange.com/projects/c3p0/index.html

补充:


DbUtils

要想使用DBUtils,首先要导入包:commons-dbutils-1.4.jar

增、删、改:

1.新建QueryRunner对象【如果传入一个连接池对象,那么后续操作的数据库连接就是这个连接池的连接;如果不设置,那么执行update时要给一个连接对象】

2.调用update函数.

update()有多个重构函数,可以依据情况来选择使用:

如何使用Java中的JDBC

如何使用Java中的JDBC

如何使用Java中的JDBC

查:

如何使用Java中的JDBC

自定义操作数据:调用ResultSetHandler的匿名实现类中的handle方法处理resultset的数据

如何使用Java中的JDBC

手动封装:调用ResultSetHandler的实现类中的handle方法来讲resultset的数据封装到对象中

如何使用Java中的JDBC

自动封装数据:根据传入的ResultSetHandler对象来处理数据

如何使用Java中的JDBC

常见ResultSetHandler实现类:

补充:对于封装成对象的,需要提供一个bean类.class参数,这是为了能创建对象

关闭流、释放资源:

DbUtils中提供了可以关闭各种资源的静态方法

如何使用Java中的JDBC

如何使用Java中的JDBC

补充:

看完上述内容,是不是对如何使用Java中的JDBC有进一步的了解,如果还想学习更多内容,欢迎关注亿速云行业资讯频道。

推荐阅读:
  1. JAVA基础--JDBC
  2. Java JDBC事务

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

java jdbc ava

上一篇:Python3如何操作读写CSV文件使用包

下一篇:spring boot filter实现

相关阅读

您好,登录后才能下订单哦!

密码登录
登录注册
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》