IBatisNet开发使用小结

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

一.介绍平常做企业级应用,需求变化是经常的事,而很多基础代码重复也是很让人头疼的问题。所以很多人会使用一些ORM框架来增强项目的可维护性、可扩展性。IBatis.Net就是一个比较易用的ORM框架,使用起来较为方便、灵活。IBatis.Net是从Ibatis的Java版本移植过来的.NET版本。iBATIS作为一种独特的DataMapper,使用SQL映射的方式将对象持久化至关系型数据库。简单的理解就是它将我们在数据访问层实现的C#逻辑代码,变为通过关系数据库与对象的映射,将SQL逻辑放到外部的XML配置文件中,以方便以后的维护。这个框架有两个主要的组成部分,一个是SQLMaps,另一个是DataAccessObjects。SqlMaps是这个框架的核心部分,通过使用SqlMaps你可以显著的节约数据库操作的代码量。SQLMaps使用一个简单的XML文件来实现从实体到SQLstatements的映射。使用DAO,封装了对数据的访问,你可以动态配置你的应用程序来访问不同的实体存储机制。隐藏持久性层实现的细节,DataAccessObjects允许你通过一个简单接口的来操作数据。二.准备工作下面先让我们来动手实践一下,看看如何使用和调用IbatisNet。1.下载IbatisNet软件包:DataMapper1.6.2[MD5][PGP](BETA)DataAccess1.9.2[MD5][PGP](BETA)SourceRevision709676[MD5][PGP]官方网站还提供了一个示例项目:NPetShopExampleApplication2.建立测试数据库,并在数据库中创建一个Person表:字段类型大小PER_IDint4PER_FIRST_NAMEnvarchar40PER_LAST_NAMEnvarchar40PER_BIRTH_DATEDateTime8PER_WEIGHT_KGfloat8PER_HEIGHT_Mfloat8三.开发步骤1.逻辑结构2.建立项目打开VS.NET,新建一个“ASP.NETWeb应用程序”项目。3.添加引用在项目中添加下面dll的引用:IBatisNet.Common.dllIBatisNet.DataMapper.dllIBatisNet.DataAccess.dll4.在项目中,添加配置文件SqlMap.config该文件为IBatis.net默认的配置文件,不能缺少,当然可以不必是Sql.config,但是如果改为其他的名字的话需要在前台代码中说明,请参考下面的内容providers.config:该文件必须存在,并且不能改变它的文件名,该文件描述了如何连接数据库,无须配置结合上面示例中的IbatisNet配置文件,下面对配置文件中各节点的说明:?xmlversion=1.0encoding=utf-8?sqlMapConfigxmlns=:xsi=!--常量属性,通过单独文件properties.config加载--propertiesresource=properties.config/!--常量属性,通过程序集资源中加载propertiesembedded=database.config,IBatisNetDemo/--settingssettinguseStatementNamespaces=${useStatementNamespaces}/settingcacheModelsEnabled=true/settingvalidateSqlMap=false//settings!--数据驱动提供类配置文件的路径和文件名--providersresource=providers.config/!--设置数据库连接信息--databaseprovidername=${provider}/dataSourcename=IBatisNetTestconnectionString=${connectionString}//database!--指定项目内映射的文件的位置--sqlMaps!--从程序集中sqlMapembedded=${root}Person.xml,${assembly}/--!--从文件中--sqlMapresource=@Maps/Person.xml//sqlMaps/sqlMapConfig详细说明:(1)properties节点可以根据需要配置一些常量属性。如果这些属性有很多的话可以单独写一个文件里面,再通过resource(或url,embedded分别是引用url和编译在程序中的资源文件)属性引用进来。properties节点参数参数描述resource指定theproperties文件从application的根目录进行加载resource=properties.configurl指定theproperties文件从文件的绝对路径进行加载url=c:\Web\MyApp\Resources\properties.config或者url=file://c:\Web\MyApp\Resources\properties.configembedded指定文件可以作为程序集的资源文件进行加载'embedded=database.config,IBatisNetDemo”上面例子中properties.config文件的配置如下:?xmlversion=1.0encoding=utf-8?settings!—应用程序和配置属性设置--addkey=providervalue=sqlServer2.0/addkey=connectionStringvalue=server=127.0.0.1;database=TVSystem;uid=sa;pwd=1/addkey=rootvalue=IBatisNetTest.Maps./addkey=assemblyvalue=IBatisNetTest/addkey=useridvalue=sa/addkey=passwordvalue=/addkey=databasevalue=Northwind/addkey=datasourcevalue=localhost/addkey=selectKeyvalue=select@@IDENTITYasvalue/addkey=directoryvalue=Maps/addkey=useStatementNamespacesvalue=false//settings下面解释一下这个文件的节点参数properties.config节点参数参数描述key定义key(variable)名字key=usernamevalue定义DataMapper中使用的key的值value=mydbuser(2)setting节点Setting节点参数参数描述cacheModelsEnabled是否启用sqlMap上的缓存机制Example:cacheModelsEnabled=”true”Default:true(enabled)useStatementNamespaces是否使用Satement命名空间,这里的命名空间指的是映射文件中sqlMap节点的namespace属性,如上例中针对Person表的映射文件sqlMap节点sqlMapnamespace=Personxmlns=:xsi=这里,指定了此sqlMap节点下定义的操作均丛属于“Person”命名空间在useStatementNamespaces=”true”的情况下,Statement调用需追加命名空间,如:sqlMap.Update(“Person.UpdatePerson”,person);否则直接通过Statement名称调用即可,如sqlMap.Update(“UpdatePerson”,person);但请注意此时需要保证所有映射文件中,statement定义无重名Example:useStatementNamespaces=”false”Default:false(disabled)validateSqlMap是配置要不要启示SqlMapConfig.xsdschema验证映射文件.Example:validateSqlMap=”false”Default:false(disabled)(3)provider节点配置数据驱动提供类配置文件的路径和文件名,通过resource(或url,embedded分别是引用url和编译在程序中的资源文件)属性引用进来,参数的含义同properties。ADO.NET是通过数据访问提供程序(Provider)访问数据库。IBatisNet使用的是插件式结构来使用这些数据库提供程序,每一个Provider对应于providers.config文件中定义的一个provider项。1.3版本的Provider.config文件中定义了已经实现的16个provider,通过设置这个文件中的几个参数来决定使用哪个数据库提供程序。sqlServer1.0-MicrosoftSQLServer7.0/2000provideravailablewith.NETFramework1.0sqlServer1.1-MicrosoftSQLServer7.0/2000provideravailablewith.NETFramework1.1sqlServer2.0-MicrosoftSQLserver7.0/2000/2005provideravailablewith.NETFramework2.0OleDb1.1-OleDbprovideravailablewith.NETFramework1.1Odbc1.1-Odbcprovideravailablewith.NETFramework1.1oracle9.2-OracleproviderV9.2.0.401oracle10.1-OracleproviderV10.1.0.301oracleClient1.0-MSOracleproviderV1.0.5availablewith.NETFramework1.1ByteFx-ByteFxMySQLproviderV0.7.6.15073MySql-MySQLproviderV1.0.4.20163SQLite3-SQLite.NETproviderV0.21.1869.3794Firebird1.7-FirebirdSQL.NETproviderV1.7.0.33200PostgreSql0.7-NpgsqlproviderV0.7.0.0PostgreSql0.7.1-NpgsqlproviderV0.7.1.0iDb2.10-IBMDB2iSeriesproviderV10.0.0.0Informix--informixNETProvider,2.81.0.0提供程序要求安装相关类库,每一个provider元素都有enabled属性来控制是否启用这个providers.一个provider可以通过“default“属性标识为默认的提供程序。(4)database节点数据库的信息,包括使用哪些数据库驱动和数据连接字符串的配置。Database节

1 / 33
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功