2012-04-24 3 views
1

J'ai conservé mon fichier SqlMapConfig.xml dans le dossier src en tant que fichier. Lorsque je crée le jar pour mon projet, le SqlMapCofig ainsi que les mappeurs et le fichier de propriétés sont copiés dans le jar. C'est un problème quand je dois changer le nom d'utilisateur de connexion de base de données, les mots de passe et tout. Est-il possible de conserver le fichier SqlMapConfig.xml ou le fichier connection.properties en dehors du fichier jar?Conserver sqlMapConfig hors du fichier jar/classpath

J'ai essayé de le mettre à l'extérieur, mais ensuite il donne une erreur de fichier non trouvé.

Voici mon fichier 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> 

Répondre

1

Après quelques recherches, je suis tombé sur une solution en utilisant,

SqlSession session = sqlMapper.openSession(conn); 

au lieu de,

SqlSession session = sqlMapper.openSession(); 

'conn' est un sqlConnection normal, vous passez à la openSession(). Les propriétés de connectio pour conn peuvent être stockées où vous voulez.

Questions connexes