本文实例讲述了Java JDBC基本使用方法。分享给大家供大家参考,具体如下:
首发日期:2018-05-27
修改:
PS:
JDBC执行SQL语句的方式主要有三种:
1.使用Statement执行sql语句
2.使用PreparedStatement执行sql语句
3.使用CallableStatement执行sql语句
上面的Statement、PerPareStatement、Callalestatement都可以使用连接对象来获取。
定义的存储过程示例:
使用:
不了解事务是什么的,可以看一下我的另外一篇博文:mysql之事务管理
连接对象.setAutoCommit(boolean)【当参数为true时,代表允许自动提交(事务管理是关闭的,每一条命令都会自动提交);当为false时,代表不允许自动提交,命令会在执行commit之后再统一提交(开启事务管理的)】
连接对象.commit()
连接对象.rollback()
以银行转账为例,张三转给李四100元,执行事务后,如果运行出错将不会提交数据到数据库:
连接池可以自定义,当然常用的一般都是选择采用第三方开源的连接池,想了解如何自定义连接池的可以自查,下面给出的是两个常用的连接池的用法。
首先,使用DBCP连接池需要导入包:commons-dbcp.jar和commons-pool.jar【如果需要日志功能,还需要commons-logging-1.2.jar ,这里不讲述】
DBCP根据配置方式,下面给出两种使用方法:
1.手动配置法:
2.配置文件配置法:
当使用完毕后,像往常一样调用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-0.9.1.2.jar【还有扩展包如c3p0-oracle-thin-extras-0.9.1.2.jar,这里不讲】
手动配置法:
配置文件配置法:
当你使用完后,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,首先要导入包:commons-dbutils-1.4.jar
1.新建QueryRunner对象【如果传入一个连接池对象,那么后续操作的数据库连接就是这个连接池的连接;如果不设置,那么执行update时要给一个连接对象】
2.调用update函数.
update()有多个重构函数,可以依据情况来选择使用:
常见ResultSetHandler实现类:
- BeanHandler :把数据库中的一行数据根据变量名自动封装到对象中;如果查询语句返回多条结果,将ResultSet中第一行的数据根据变量名自动封装到对象中
- BeanListHandler:把数据库中的多行数据根据变量名自动封装到对象中,并存储到List中返回。所以返回结果是一个含有多个bean对象的list
- ScalarHandler :将ResultSet中一条记录的某一列的数据存成Object,返回值是一个Object。不给参数时默认是第一列的值,参数可以给列数,也可以给字段名 【可以用于统计函数等返回一个值的情况】
- ArrayHandler :把一条记录的所有数据存储到一个数组中,第一列的数据在数组的第一个位置。
- ArrayListHandler:与ArrayHandler功能类似,但可以返回包含多个数组的list了。
补充:对于封装成对象的,需要提供一个bean类.class参数,这是为了能创建对象
DbUtils中提供了可以关闭各种资源的静态方法
更多关于java相关内容感兴趣的读者可查看本站专题:《Java使用JDBC操作数据库技巧总结》、《Java+MySQL数据库程序设计总结》、《Java数据结构与算法教程》、《Java文件与目录操作技巧汇总》、《Java操作DOM节点技巧总结》和《Java缓存操作技巧汇总》
希望本文所述对大家java程序设计有所帮助。
本文向大家介绍详解git的基本使用方法,包括了详解git的基本使用方法的使用技巧和注意事项,需要的朋友参考一下 什么是git? git是目前世界上最先进的分布式版本控制系统。 git与SVN的最主要区别? SVN是集中式版本控制系统,版本库是集中放在中央服务器的,而工作的时候用的都是自己的电脑,所以开始工作之前需要从中央服务器那里获取最新的版本,然后开始工作,工作完后,需要把自己所做的工作推送到中
本文向大家介绍python中update的基本使用方法详解,包括了python中update的基本使用方法详解的使用技巧和注意事项,需要的朋友参考一下 前言 Python 字典 update()方法用于更新字典中的键/值对,可以修改存在的键对应的值,也可以添加新的键/值对到字典中。 语法格式 参数说明 将e中键-值对添加到字典d中,e可能是字典,也可能是键-值对序列。详见实例。 返回值 该方法没有
本文向大家介绍Android开发之MediaPlayer基本使用方法详解,包括了Android开发之MediaPlayer基本使用方法详解的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了Android MediaPlayer基本使用方法。分享给大家供大家参考,具体如下: 使用MediaPlayer播放音频或者视频的最简单例子: Java代码部分: 布局文件main.xml: 程序说明: 这
本文向大家介绍Spring jackson原理及基本使用方法详解,包括了Spring jackson原理及基本使用方法详解的使用技巧和注意事项,需要的朋友参考一下 导入maven依赖 1、java对象转json 2、writeValue(参数1,obj)方法介绍 参数1 File:将obj对象转换为json字符串,并保存到指定的文件中 writer:将obj对象转换为json字符串,并将json数
本文向大家介绍详解python中的json的基本使用方法,包括了详解python中的json的基本使用方法的使用技巧和注意事项,需要的朋友参考一下 在Python中使用json的时候,主要也就是使用json模块,json是以一种良好的格式来进行数据的交互,从而在很多时候,可以使用json数据格式作为程序之间的接口。 kel.txt文件内容如下: 执行结果如下: 在其中主要使用的方法为json.lo
本文向大家介绍Java dbcp连接池基本使用方法详解,包括了Java dbcp连接池基本使用方法详解的使用技巧和注意事项,需要的朋友参考一下 1、依赖api的使用 导入jar包 导入dbcp.properties配置文件 获取连接 2、依赖tomcat容器的使用 利用jndi机制实现,jndi(命名及目录查找接口),将数据源连接池的配置信息在容器(Tomcat)实现配置 具体如何实现配置 在to