在使用ibatis编写程序的时候我们希望将配置文件隐藏起来,比如数据库的配置信息等。
ibatis。net提供了嵌入资源的方式,可以将配置文件编译到程序集当中,达到保护程序的目的。
现在我们以嵌入数据库配置为例:
1.编写sqlmap.config
代码
<?
xml version="1.0" encoding="utf-8"
?>
< sqlMapConfig xmlns ="http://ibatis.apache.org/dataMapper" xmlns:xsi ="http://www.w3.org/2001/XMLSchema-instance" >
<!-- 外部配置文件
<properties resource="properties.config" />
-->
< properties embedded ="database.config,renshi" />
< settings >
< setting useStatementNamespaces ="${useStatementNamespaces}" />
</ settings >
< providers embedded ="providers.config,renshi" />
<!-- 数据库连接信息 -->
< database >
< provider name ="sqlServer2.0" />
< dataSource name ="datasource" connectionString ="data source=${datasource};database=${database};user id=${userid};password=${password};connection reset=false;connection lifetime=5; max pool size=50" />
</ database >
<!-- SqlMap.xml 信息 -->
< sqlMaps >
< sqlMap resource ="Maps/Common.config" />
< sqlMap resource ="Maps/Mylog.config" />
</ sqlMaps >
</ sqlMapConfig >
< sqlMapConfig xmlns ="http://ibatis.apache.org/dataMapper" xmlns:xsi ="http://www.w3.org/2001/XMLSchema-instance" >
<!-- 外部配置文件
<properties resource="properties.config" />
-->
< properties embedded ="database.config,renshi" />
< settings >
< setting useStatementNamespaces ="${useStatementNamespaces}" />
</ settings >
< providers embedded ="providers.config,renshi" />
<!-- 数据库连接信息 -->
< database >
< provider name ="sqlServer2.0" />
< dataSource name ="datasource" connectionString ="data source=${datasource};database=${database};user id=${userid};password=${password};connection reset=false;connection lifetime=5; max pool size=50" />
</ database >
<!-- SqlMap.xml 信息 -->
< sqlMaps >
< sqlMap resource ="Maps/Common.config" />
< sqlMap resource ="Maps/Mylog.config" />
</ sqlMaps >
</ sqlMapConfig >
通过以上代码,我们可以看到有两个文件是被编译到程序集中。
1.<properties embedded="database.config,renshi"/>
2.<providers embedded="providers.config,renshi"/>
这两个文件被编译到程序集rensh的exe文件中
在datasource 配置中数据源,数据库名,用户名和密码是使用${}的标签。
这写配置我们写在了 database.config 文件当中。看一下配置文件的写法。
代码
<?
xml version="1.0" encoding="utf-8"
?>
< settings >
< add key ="userid" value ="sa" />
< add key ="password" value ="sasa" />
< add key ="database" value ="test" />
< add key ="datasource" value ="." />
< add key ="selectKey" value ="select @@IDENTITY as value" />
< add key ="directory" value ="Maps" />
< add key ="useStatementNamespaces" value ="false" />
</ settings >
< settings >
< add key ="userid" value ="sa" />
< add key ="password" value ="sasa" />
< add key ="database" value ="test" />
< add key ="datasource" value ="." />
< add key ="selectKey" value ="select @@IDENTITY as value" />
< add key ="directory" value ="Maps" />
< add key ="useStatementNamespaces" value ="false" />
</ settings >
另外点击database.config文件,修改文件属性,生成操作修改为 “嵌入的资源”。
这样重新编译后,database.config文件就会编译到程序集中,把配置文件保护起来。