我们在开发项目的时候,总要和数据库打交道,如何获取数据源,以什么样的方式来获取,成为了我们即简单又熟悉而且不得不注意的一个问题。
那么在这里我说三种获取数据源的常用方式:
一、通过配置文件来获取
- 首先在项目的classPath下面,建立一个配置文件,如jdbc.properties。
- 通过最原始的方式,解析这个配置文件,然后读取配置信息,再封装jdbc信息,从而得到数据源。
- 使用spring;通过spring去建立dataSource Bean。这个dataSource Bean里的信息同样来自己于你的配置文件。注意要在配置文件中加入:
< context:property-placeholder location ="classpath:jdbc.properties" />
4.Spring中的dataSource bean大致如下:
< bean id ="dataSource" class ="org.apache.commons.dbcp.BasicDataSource" destroy-method ="close" > < property name ="driverClassName" value ="${driverClassName}" /> < property name ="url" value ="${url}" /> < property name ="username" value ="${username}" /> < property name ="password" value ="${password}" /> < property name ="maxActive" value ="20" /> < property name ="initialSize" value ="1" /> < property name ="maxWait" value ="60000" /> < property name ="maxIdle" value ="20" /> < property name ="minIdle" value ="3" /> < property name ="removeAbandoned" value ="true" /> < property name ="removeAbandonedTimeout" value ="180" /> < property name ="connectionProperties" value ="clientEncoding=UTF-8" /> </ bean >
5.配置文件的内容大致如下:
driverClassName= com.mysql.jdbc.Driver url =jdbc:mysql: // localhost:3306/springsecurity?allowMultiQueries=true username= root password =123456
二、通过jndi来获取
- 说明:通过jndi的方式来获取,通常是在使用spring的情况下使用,当然也可以是其它方式。
- 首先,在tomcat的config目录下的context.xml文件中,加入如下语句:
<Resource driverClassName="com.mysql.jdbc.Driver" maxActive="120" maxWait="5000" maxldle="10" name="app" type="javax.sql.DataSource" url="jdbc:mysql://127.0.0.1:3306/goldApp?allowMultiQueries=true" username="root" password="123456"/>
3.对于第”2”点的说明:name表示为jndi的名字, driverClassName是使用的驱动类,url当然就是连接相关信息,username是登录数据库的用户名,password是数据库密码。
4.执行好第”2”步过后,要做的事情:在你的spring配置文件中,加入引入jndi的bean,如下:
<bean id="dataSource"
class
="org.springframework.jndi.JndiObjectFactoryBean">
<property name="jndiName">
<value>java:comp/env/app</value>
</property>
</bean>
5.对于第“4”点的说明:
在value中java:comp/ env /是前缀,app帮是content.xml中配置的jndi的名字。
三、在MATA-INFO 文件下加入Content.xml方式,让项目在部署时动态为tomcat加上jndi数据源
1.首先,在MATA-INFO下建文件: Context.xml
文件内容如下:
<? xml version="1.0" encoding="UTF-8" ?> < Context > < Resource driverClassName ="com.mysql.jdbc.Driver" maxActive ="120" maxWait ="5000" maxldle ="10" name ="app" type ="javax.sql.DataSource" url ="jdbc:mysql://192.168.10.105:3306/springsecurity?allowMultiQueries=true" username ="root" password ="123456" /> </ Context >
2.说明:在mata-info下加入此文件后,然后在spring中采用使用jndi的方式引用数据库即可。这种的好处是。它在你发布项目的时候,会动态为你在tomcat的配置文件中加上数据源信息,所以就不用我们每次都手动到content.xml文件加入配置了。注意:动态加的数据源信息在servce.xml中。