初学,求教关于Mybatis 外部配置properties的问题

daniu8726 2016-06-12 05:11:13
db.properties 文件
driver=org.postgresql.Driver
url=jdbc:postgresql://127.0.0.1:5432/enmia
username=test
password=test


Configuration.xml 配置

<configuration>

<properties resource="db.properties"></properties>

<typeAliases>
<typeAlias alias="Step" type="com.test.obj.Step"/>
</typeAliases>


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

<mappers>
<mapper resource="com/test/obj/Step.xml"/>
</mappers>
</configuration>


测试

public class ServiceTest {

private static SqlSessionFactory sqlSessionFactory;
private static Reader reader;

static{
try{
reader = Resources.getResourceAsReader("Configuration.xml");
sqlSessionFactory = new SqlSessionFactoryBuilder().build(reader);
}catch(Exception e){
e.printStackTrace();
}
}

public static void main(String[] args) {
SqlSession session = sqlSessionFactory.openSession();
try {
StepService stepservice = session.getMapper(StepService.class);
List<Step> steps = stepservice.selectStepByStatus(0);
for(Step step:steps){
System.out.println(step.getId());
System.out.println(step.getStatus());
}
} finally {
session.close();
}
}




运行后报出如下错误:Cause: java.lang.ClassNotFoundException: Cannot find class: ${driver}
看了下sqlSessionFactory那个实例,里面的确已经读取了properties文件的内容。
但是,原来的字符串${driver} ${url}等等都没有被替换掉。
这是什么原因呢?
...全文
170 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
daniu8726 2016-06-13
  • 打赏
  • 举报
回复
知道问题了,犯傻了,properties 文件拷贝过来的时候每行前面带着序号,在eclipse里面当成行号没看出来
qq_30446365 2016-06-13
  • 打赏
  • 举报
回复
你把db文件的driver放到最后一行 试试

81,092

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧