Java 数据库连接(dataSource)的演进

20 篇文章 0 订阅
15 篇文章 0 订阅

原生方法

加载JDBC 驱动:

Class.forName(driver);// mysql 数据库:“com.mysql.jdbc.Driver”

建立数据库连接:

Connection conn=DriverManager.getConnection(url,userName,password);

创建 statement,用来执行SQL 语句:

Statement statement =conn.createStatement();

执行 SQL 语句:

ResultSet rs =statement.executeQuery(sql);

关闭记录集,关闭声明,关闭连接对象

不足:

每次使用都要创建连接,使用完毕后还必须关闭连接,操作繁琐,易出错;

连接数据库资源不便统一管理;


使用Spring的 JDBC 方法:

引入 spring-jdbc.jar 包

添加 dataSource配置

<bean id="dataSource">

<property name="driverClassName" value="org.springframework.jdbc.datasource.DriverManagerDataSource">

</property>

<property name="url" value="jdbc:oracle:thin:@10.217.3.2:1521:orcl">

</property>

<property name="username" value="*"></property>

<property name="password" value="*"></property></bean>


DriverManagerDataSource 类位于 org.springframework.jdbc.datasource 包下。 当然这里还可以选择 SingleConnectionDataSource DriverManagerDataSource -> 在每一个连接请求时都新建一个连接; SingleConnectionDataSource -> 在每一个连接请求时都返回同一个连接;

获取dataSource bean对象

ApplicationContext ctx = newClassPathXmlApplicationContext("applicationContext.xml");

ds=(DataSource)ctx.getBean("dataSource");

获取连接对象Connection和Statement

Connection conn =ds.getConnection();Statement sm =conn.createStatement();

执行向数据库插入记录操作

String sqlString ="insert into bryanttesttable values(2,'bryant')";sm.execute(sqlString);

优势:

更干净的 代码;

更简单的使用;

更好的异常与资源处理;

Spring JDBC 介绍:模版设计模式(核心包包含JdbcTemplate),Spring JDBC 异常处理 ;这些会在下一章节来具体介绍Spring JDBC的优雅设计 和 是如何在 原生JDBC 上做封装的。

使用Spring的 数据库连接池 DBCP 方法:(四个流行的Java连接池)

需要引入commons-collections.jar、commons-dbcp.jar和commons-pool.jar。


使用 JNDI 连接数据库

1、SpringJNDI数据源配置信息:

<bean id="dataSource"class="org.springframework.jndi.JndiObjectFactoryBean">

<property name="jndiName">

<value>java:comp/env/jcptDataSourceJNDI</value>

</property>

</bean>

jcptDataSourceJNDI是tomcat或者其他应用服务器配置的JNDI.

2、关于JNDI的配置(tomcat): 修改tomcat目录conf/context.xml文件:

<Resource name="jcptDataSourceJNDI" auth="Container" type="javax.sql.DataSource"

maxActive="100" maxIdle="30" maxWait="10" username="tysp"

password="12345678" driverClassName="oracle.jdbc.driver.OracleDriver"

url="jdbc:oracle:thin:@192.168.1.35:1521:orcl"/>

3、通过JNDI获取DataSource:

<Resource name="jcptDataSourceJNDI" auth="Container" type="javax.sql.DataSource"

maxActive="100" maxIdle="30" maxWait="10" username="tysp"

password="12345678" driverClassName="oracle.jdbc.driver.OracleDriver"

url="jdbc:oracle:thin:@192.168.1.35:1521:orcl"/>


更多文章请关注订yue号:java_xuetang。

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值