将sqlMapConfig保留在jar / classpath之外

时间:2012-04-24 08:09:02

标签: java ibatis mybatis

我将sqlMapConfig.xml保存在src文件夹中作为packge。当我为我的项目创建jar时,SqlMapCofig以及映射器和属性文件被复制到jar中。当我必须更改数据库连接用户名,密码和内容时,这是一个问题。有没有办法将SqlMapConfig.xml或connection.properties文件保留在jar之外?

我尝试将它放在外面但是它给出了一个找不到文件的错误。

这是我的SqlMapConfig文件;

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE configuration
PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration>

<properties resource="config/connection.properties" />

<typeAliases>
    <typeAlias alias="Employee" type="com.Employee" />

</typeAliases>

<environments default="development">
    <environment id="development">
        <transactionManager type="JDBC" />
        <dataSource type="POOLED">
            <property name="driver" value="${database.driver.class.name}" />
            <property name="url" value="${database.connection.url}" />
            <property name="username" value="${database.username}" />
            <property name="password" value="${database.password}" />
        </dataSource>
    </environment>
</environments>

<mappers>
    <mapper resource="config/mappers/Employee.xml" />
</mappers>

1 个答案:

答案 0 :(得分:1)

经过一番搜索后,我发现了一个使用

的解决方案
SqlSession session = sqlMapper.openSession(conn);

代替,

SqlSession session = sqlMapper.openSession();

'conn'是传递给openSession()的普通SQlConnection。 conn的连接属性可以存储在您喜欢的任何地方。