随笔 - 441  文章 - 4  评论 - 84  阅读 - 109万 

在使用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>
复制代码

 

通过以上代码,我们可以看到有两个文件是被编译到程序集中。

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>
复制代码

 

另外点击database.config文件,修改文件属性,生成操作修改为 “嵌入的资源”。

这样重新编译后,database.config文件就会编译到程序集中,把配置文件保护起来。

 

posted on   自由港  阅读(507)  评论(0编辑  收藏  举报
编辑推荐:
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
阅读排行:
· winform 绘制太阳,地球,月球 运作规律
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
点击右上角即可分享
微信分享提示