300字范文,内容丰富有趣,生活中的好帮手!
300字范文 > 数据库连接池---------------也优化了代码

数据库连接池---------------也优化了代码

时间:2019-07-23 18:50:19

相关推荐

数据库连接池---------------也优化了代码

数据库连接池---------------也优化了代码

一、编写数据库连接池

·实现javax.sql.DataSource接口,有getConnection()和getConnection(String username,String password)

·实现DataSource接口。并实现连接池功能的步骤:

1、在DataSource构造函数中批量创建与数据库的连接,并把创建的连接加入LinkedLIist对象中

2、实现getConnection方法,让getConnection方法每次调用时,从LinkedList中区一个Connection返回给用户

3、当用户使用完Connection,调用Connection close()方法时,从LinkedList中Connection对象应保证将自己返回到LinkedList中,而不要把conn还给数据库

注意:linkedlist是链表式的能保证数据库连接池在用完之后返回到linedlist中

而arraylist是线性的不能由以上功能

二、开源数据库连接池

现在很多web服务器都实现了DataSource的实现,及数据库的实现。

也有一些开源组织提供了数据源的独立实现:

·DBCP数据库连接池

·c3p0数据库连接池

实际应用时不需要编写连接数据路代码,直接从数据源获得数据路的连接。程序员编程时也应该尽量使用这些数据源的实现,以提升程序的数据库访问性能。

三、DBCP数据源

1、赋值jar包以及jdbc.properties文件

2、修改配置文件

3、修改DBManager文件

4、该数据库连接池既可以与应用服务器整合使用,也可有应用程序独立使用

四、jdbc与 c3p0的区别

jdbc没有自动回收空闲连接的功能,c3p0有回收空闲连接的功能

五、配置Tomcat数据源

1、设置配置文件

方法一:这种方法并不好

在tomcat服务器的server.xml文件中国的host中加入<context>…..</context>

方法二:常用

在web工程中添加context.txt

<Context>

<Resource name="jdbc/jdbc"

auth="Container"

type="javax.sql.DataSource"

driverClassName="com.mysql.jdbc.Driver"

url="jdbc:mysql://localhost:3306/jdbc"

username="root"

password="123"

maxActive="50"

maxIdle="10"/>

</Context>

六、jdni技术

·即java命名和目录接口,对应于j2se中的javax.naning包

·这套api的主要作用在于:他可以把java对象放在一个容器中(jdni容器),并为容器中的对象起一个名子,以后程序想获得java对象,只需要通过名称检索即可。

·其核心api为Context,它代表JNDI容器,其lookup方法为检索容器中对应名称的对象。

以下是编写jdbc框架--------------------优化代码

七、元数据—DataBaseMetaData

·元数据:数据库、表、列的定义信息

·Connection.getDatabaseMetaData对象

• getURL():返回一个String类对象,代表数据库的URL。

• getUserName():返回连接当前数据库管理系统的用户名。

• getDatabaseProductName():返回数据库的产品名称。

• getDatabaseProductVersion():返回数据库的版本号。

• getDriverName():返回驱动驱动程序的名称。

• getDriverVersion():返回驱动程序的版本号。

• isReadOnly():返回一个boolean值,指示数据库是否只允许读操作。

八、元数据—PrarameterMetaData

PreparedStatement . getParameterMetaData()

获得代表PreparedStatement元数据的ParameterMetaData对象。

Select * from user where name=? And password=?

ParameterMetaData对象

getParameterCount()

获得指定参数的个数

getParameterType(intparam)

获得指定参数的sql类型

九、元数据—ResultSetMetaData

·ResultSet. getMetaData()

获得代表ResultSet对象元数据的ResultSetMetaData对象。

·ResultSetMetaData对象

getColumnCount()

返回resultset对象的列数

getColumnName(intcolumn)

获得指定列的名称

getColumnTypeName(intcolumn)

获得指定列的类型

十、使用元数据简化JDBC代码

·业务背景:系统中所有实体对象都涉及到基本的CRUD操作:

a)所有实体的CUD操作代码基本相同,仅仅发送给数据库的SQL语句不同而已,因此可以把CUD操作的所有相同代码抽取到工具类的一个update方法中,并定义参数接收变化的SQL语句。

b)实体的R操作,除SQL语句不同之外,根据操作的实体不同,对ResultSet的映射也各不相同,因此可义一个query方法,除以参数形式接收变化的SQL语句外,可以使用策略模式由qurey方法的调用者决定如何把ResultSet中的数据映射到实体对象中。

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。