坑爹提示如下:
- The error occurred while loading SqlMap.
- The error occurred in <sqlMap resource="Person.xml" xmlns="http://ibatis.apache.org/dataMapper" />
网上很多说是命名空间,有的说是复制过来的配置文件没改namespace
结果全是坑爹
解决方案:
SqlMap.xml Person.xml等,都要选 嵌入资源 和 复制到输出目录
另外可以用全嵌入的方式,复制也不需要
<providers embedded="providers.config,IBatisDAL" />
<!-- Data Source -->
<database>
<provider name="sqlServer1.1" />
<dataSource name="iBatisInAction" connectionString="Server=server0;database=test;user id=sa;password=123;pooling=true;Max Pool Size=100" />
</database>
<!-- Sql Map files -->
<sqlMaps>
<sqlMap embedded="Maps.Person.xml,IBatisDAL" />
</sqlMaps>
public static ISqlMapper sqlMap;
static void Main(string[] args)
{
Person p = new Person();
Assembly assembly = Assembly.Load("IBatisDAL");
Stream stream = assembly.GetManifestResourceStream("IBatisDAL.SqlMap.config");
DomSqlMapBuilder builder = new DomSqlMapBuilder();
sqlMap = builder.Configure(stream);
//p = Mapper.Instance().QueryForObject<Person>("GetPerson", 2);
p = sqlMap.QueryForObject<Person>("GetPerson", 2);
Console.WriteLine("person:" + p.name);
Console.ReadLine();
}