数据库---JDBC的解析
一、JDBC是什么?
JDBC:Java Database Connectivity(Java数据库连接池)。指定了统一的访问各种关系型数据库的标准接口-----桥梁作用。
功能:【与数据库建立连接】【向数据库发送SQL请求】【处理从数据库返回的结果】
步骤如下:A. 加载并注册数据库驱动----【数据库不同驱动链接不同】
Class.forName("com.mysql.cj.jdbc.Driver");
Connection conn=DriverManager.getConnection(String url,String username,String password);
stat=conn.createStatement();
int num1=sta.executeUpdate(sql); 或者 res = stat.executeQuery(sql);
stat.close();//这里并非最好的关闭方式
res.close();
conn.close();
关闭流的顺序---推荐反着来----先关ResultSet---Statement----Connection---推荐显式关闭---并关闭前判断是否为空
原因是:关闭Conneciton,且Statement若不手动关闭,将由GC机制自动关闭,且再关闭前Statement对象和ResultSet对象将被占用。
若在自动关闭前-----数据库连接池的连接数量达到最大允许值--此时将会抛异常。
二、如何更好的优化JDBC?
dpcpconfig.properties #连接设置
driverClassName=com.mysql.cj.jdbc.Driver
url=jdbc:mysql://localhost:3306/demo?useUnicode=true&characterEncoding=utf-8&useSSL=false&serverTimezone=GMT%2B8
username=root
password=
#初始化连接
initialSize=
#最大连接数量
maxAcitve=
#最大空闲连接
maxIdle=10
通过配置文件读取数据源得到连接
public static DataSource ds=null;
static {
Properties prop=new Properties();//新建配置文件对象
InputStream in = new Dbcp2().getClass(). //通过类加载器找到文件路劲,读配置文件
getClassLoader().getResourceAsStream("dbcpconfig.properties");
prop.load(in);//以输入流的形式加载到配置对象中
ds=BasicDataSourceFactory.createDataSource(prop);}//创建数据源
<c3p0-config>
<default-config>
<property name="driverClass">com.mysql.cj.jdbc.Driver</property>
<property name="jdbcUrl">
jdbc:mysql://localhost:3306/demo?useUnicode=true& characterEncoding=UTF-8& useSSL=false& serverTimezone=GMT%2B8
</property>
<property name="user">root</property>
<property name="password"></property>
<property name="checkoutTimeout"></property>
<property name="initialPoolSize"></property>
<property name="maxIdleTime"></property>
<property name="maxPoolSize"></property>
<property name="minPoolSize"></property>
<property name="maxStatements"></property>
</default-config>
<named-config name="itcast">
<property name="driverClass">com.mysql.cj.jdbc.Driver</property>
<property name="jdbcUrl">
jdbc:mysql://localhost:3306/demo?useUnicode=true& characterEncoding=UTF-8& useSSL=false& serverTimezone=GMT%2B8
</property>
<property name="user">root</property>
<property name="password"></property>
<property name="initialPoolSize"></property>
<property name="maxPoolSize"></property>
</named-config>
</c3p0-config> 通过配置数据源得到数据库连接连接池连接
public static DataSource ds = null; static {
ComboPooledDataSource cpds=new ComboPooledDataSource("itcast");
ds=cpds;
}

QueryRunner qr=new QueryRunner(DButils.getDataSource());//得到数据源(得到连接)并创建执行器对象
List list=(List)qr.query(sql, new BeanListHandler<User>(User.class));
数据库---JDBC的解析的更多相关文章
- java连接mysql数据库详细步骤解析
java连接mysql数据库详细步骤解析 第一步:下载一个JDBC驱动包,例如我用的是:mysql-connector-java-5.1.17-bin.jar 第二步:导入下载的J ...
- 数据库——JDBC
数据库--JDBC 数据库优点:降低存储数据的冗余度: 更高的数据一致性: 存储的数据可以共享: 可以建立数据库所遵循的标准: 便于维护数据完整性: 能够实现数据的安全性: 建立数据库: 数据库的存储 ...
- 常用数据库 JDBC URL 格式
一 常用数据库 JDBC URL 格式 1 sqLite 驱动程序包名:sqlitejdbc-v056.jar 驱动程序类名: org.sqlite.JDBC JDBC URL: jdbc:sqli ...
- Oracle数据库字符集问题解析
Oracle数据库字符集问题解析 经常看到一些朋友问ORACLE字符集方面的问题,我想以迭代的方式来介绍一下.第一次迭代:掌握字符集方面的基本概念.有些朋友可能会认为这是多此一举,但实际上正是由于对相 ...
- BMP是在Bean中完成对数据库JDBC的各种调用
BMP是在Bean中完成对数据库JDBC的各种调用 CMP是由EJB容器自动完成对数据库的操作 会话Bean主要处理业务逻辑
- Java应用程序连接数据库--JDBC基础
Java应用程序连接数据库--JDBC基础 Java应用程序连接数据库–JDBC基础 <!-- MySQL驱动,连接数据库用,由数据库厂商提供 --> <dependency&g ...
- canal 基于Mysql数据库增量日志解析
canal 基于Mysql数据库增量日志解析 1.前言 最近太多事情 工作的事情,以及终身大事等等 耽误更新,由于最近做项目需要同步监听 未来电视 mysql的变更了解到公司会用canal做增量监 ...
- 牛客网数据库SQL实战解析(51-61题)
牛客网SQL刷题地址: https://www.nowcoder.com/ta/sql?page=0 牛客网数据库SQL实战解析(01-10题): https://blog.csdn.net/u010 ...
- 牛客网数据库SQL实战解析(41-50题)
牛客网SQL刷题地址: https://www.nowcoder.com/ta/sql?page=0 牛客网数据库SQL实战解析(01-10题): https://blog.csdn.net/u010 ...
随机推荐
- No context type was found in the assembly
如果解决方法中有多个项目存在,记住要在默认项目中选择你需要的项目进行 enable-migrations add-migration 以及updatebase
- 计算机程序是怎么通过cpu,内存,硬盘运行起来的?
虽然以前知道计算机里有CPU,内存,硬盘,显卡这么些东西,我还真不知道这些东西是怎么协作起来完成一段程序的,能写出程序却不懂程序,也不会向别人解释他们的关系,所以特意总结了一下,写的比较浅显,和我一样 ...
- CPA专业阶段单科成绩有5年有效期限,即从通过科目考试的第一年算起
你为什么不去参加注册会计师考试? 注册会计师考试出考率极低,大家都有自己的原因,可以客观地说,每年注会考场出考人数不足三成,到底是什么原因不去考试呢?大家是这么说的. 1.没有好好复习呗,还怎么去考试 ...
- 事务一致性理解 事务ACID特性的完全解答
A 原子性 事务管理者多个小操作,他们同时完成或者同时不完成就是原子性 C 一致性 一致性,是一个很相对的,很主观的概念, 一致性 描述的是 事务 从一个一致的状态变成 另一个一致的状态. 一致性需 ...
- Spring AOP(三)--XML方式实现
本文介绍通过XML方式实现Spring AOP,在上一篇中已经介绍了通过注解+java配置的方式,这篇文章主要是看XML中怎么配置,直接上代码了: 一.创建一个连接点 1⃣️定义接口 注意⚠️:可以定 ...
- service network restart 报错重启失败
Job for network.service failed because the control process exited with error code. See “systemctl st ...
- 第03章 科学计算库Numpy
016.Numpy数据结构 关于矩阵运算的库 矩阵 017.Numpy基本操作 判断每一个元素的 018.Numpy矩阵属性 019.Numpy矩阵操作 020.Numpy常用函数 按列拼接就用 ...
- 二进制日志过期时间设置expire_logs_days
# expire_logs_days参数只支持整数,且范围是[0,99] show variables like 'expire_logs_days';set global expire_logs_d ...
- 使用Python的requests库作接口测试——对HTTP动词的支持
Requests提供了几乎所有HTTP动词的功能:GET,OPTIONS, HEAD,POST,PUT,PATCH和DELETE. 动词GET-查看提交信息 HTTP GET是一个幂等的方法,从给定的 ...
- NOIP2017到都不签签记
day 0: 校内开运动会,但是还是在机房学习了一天. 感觉上并没有多大用处,主要只是活跃一下思维而已. 然后就晚上上车出发去酒店. 下了个游戏王. 晚上叫了波宅急送,然后硬是腐了一个晚上. day ...