在bean配置资源或系统部署,如数据库的连接时,需要这样:
要包含相关jar包:c3p0.jar 和mysql.connector.jar
xml配置:
<bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource">
<property name="user" value="root"></property>
<property name="password" value="1234"></property>
<property name="driverClass" value="com.mysql.jdbc.Driver"></property>
<property name="jdbcUrl" value="jdbc:mysql:///test"></property> </bean>
main函数调用:
public static void main(String[] args) throws SQLException{ //可能有异常,这里不捕捉
Application ctx = new ClassPathXmlApplicationContext("jdbc.xml");
DataSource datasource = (DataSource)ctx.getBean("dataSource");
System.out.println(dataSource.getConnection()); //com.mchange.v2.c3p0.impl.NewProxyConnection@3ca6b9 表示成功
}
如果数据库有更改,在配置里改一下相关信息就可以。但是,实际项目中并不这样,因为实际中没有这么简单的配置,包含了大量的信息,如下: (这里信息算是少的)
也看出来,实际中用这样的符号:${},代表引用外部的变量
通过把配置信息独立到一个文件里面,bean用${}方式引用, 便于维护、更清晰
所以,上面xml配置可以改成这样:
新建一个文件专门存放可能需要修改的配置: db.properties
user=root
password=1234
driverclass=com.mysql.jdbc.Driver
jdbcurl=jdbc.mysql:///test
在jdbc.xml中,添加context命名空间,用来引入文件
<!--导入属性文件-->
<context:property-placeholder location="classpath:db.properties"/>
<bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource">
<property name="user" value="${user}"></property>
<property name="password" value="${password}"></property>
<property name="driverClass" value="${driverclass}"></property>
<property name="jdbcUrl" value="${jdbcurl}"></property>
</bean>
这样,要修改数据库信息,只需要在db.properties文件中修改即可。不必去复杂的xml中去找。提高了维护的效率