微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

vb.net配置IBatis.Net说明连接SQL Server,亲身实践

之前做的一个java+iBatis的程序,现在要往vb.net上移形。偶然间得知针对.Net也有iBatis.Net构架,狂喜~~

找来各种配置资料,看了看都是C#的,虽说应该差不多但是心里还是别扭(就没人在vb.net上用这个??)

算了,按照人家的资料来吧。可能是跟人家的水平差距过大,按照人家的我都没配出来,着急还生了场病。。。

今天病好了,也想明白了,终于让我弄出来了。呵呵~~

以下是根据《iBATIS In Action:iBATIS的安装和配置》为基础,外加自己亲身实验得到的小白配置说明:

系统环境:win XP + VS 2008 + sql Server 2008

一、系统配置:将从官网下载的Schema文件sqlMap.xsd,sqlMapConfig.xsd,providers.xsd)添加到VS.NET安装目录

注:

①这些Schema文件可以从官网免费下载(Ibatis.DataMapper.1.6.2.bin):http://code.google.com/p/mybatisnet/downloads/list?can=3

②我用的是VS2008,所以安装路径:C:\Program Files\Microsoft Visual Studio 9.0\Xml\Schemas

二、程序配置:

1.在vs中“新建项目”--“windows窗体应用程序”(其实你建一个“类库”也可以,我这不是为了以后程序方便么)

2.在“解决方案资源管理器”中,引入以下文件:iBatisNet.DataMapper.dll,iBatisNet.DataAccess.dll(可选的),iBatisNet.Common.dll,Castle.DynamicProxy.dll

(根据《iBatis In Action》一书中的解释:如果您使用的Mapper单例(singleton),那么唯一需要引用的是DataMapper程序集。IBatisNet.Common和Castle.DynamicProxy在运行时是需要的,但VS.NET会帮您解析这些依赖关系。如果使用Data Access Objects框架,那么还需要添加对DataAccess的引用。)

注:这些dll文件可以从官网免费下载(Ibatis.DataMapper.1.6.2.bin):http://code.google.com/p/mybatisnet/downloads/list?can=3

3.在程序根目录下创建文件夹Maps,将你的sql文xml放在其中

4.sql文xml基本格式如下:其中namespace后面的xmlns内容固定,不要修改

<?xml version="1.0" encoding="UTF-8" ?>

<sqlMap namespace="sql"
xmlns="http://ibatis.apache.org/mapping" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">

<statements >

<!-- 测试1-->
<select id="selectAllAccounts" resultClass="int">
select count(*) from customer
</select>

</statements>

</sqlMap>

注:关于sql文的xml中各个字段的说明,可以参见:

iBatis.net中sql文xml的说明(转载)

http://hi.baidu.com/bigheadsheep/blog/item/8b9f6c157cc1e29386d6b64a.html

5.将从官网下载的Ibatis.DataMapper.1.6.2.bin中的providers.configsqlMap.config(官网提供的是“sample.sqlMap.config”,咱们用的时候需要改名)放入到程序的 bin\debug 目录中

注:其实放错位置也没事儿,后面程序运行的时候,会报错,告诉你在程序的bin\debug中找不到sqlMap.config (我就是这么试出来的,没办法,谁让咱们是小白呢)

6.修改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" >
<!--以上为固定格式,从这里开始以下是用户配置项 -->

<!-- 指定一个属性源,相当与设置一些属性变量,在sqlMap.config中用"${xxx}"这种形式引用的变量,xxx在该属性文件中定义 -->
<!-- <properties resource="properties.config"/> -->

<settings>
<!-- 当该选项为true时,你在调用指定的映射时你总是必须给出完整的名称例如:queryForObject(“Namespace.statement.Id”); -->
<setting useStatementNamespaces="false"/>
<!-- 该选项指示是否使用缓存,认为true -->
<setting cacheModelsEnabled="true"/>
<!-- 该选项指示配置要不要启示验证映射文件认是false-->
<setting validatesqlMap="false"/>

</settings>

<!-- 配置数据驱动提供类配置文件的路径和文件名-->
<providers resource="providers.config"/>

<!-- Database connection information -->
<!-- 数据库的信息,包括使用哪些数据库驱动和数据连接字符串的配置 -->
<database>
<provider name="sqlServer2.0"/>
<dataSource name="Pharma" connectionString="data source=CNB;database=Pharma; user id=sa;password=123;"/>

</database>

<!--指定映射的文件的位置,注意此处由于sqlMap.config在bin\debug路径下,所以设定resource时需要以根目录为基准设定 -->
<sqlMaps>
<sqlMap resource="Maps/sql.xml" />

</sqlMaps>

</sqlMapConfig>

注:

1.sqlMapConfig 后面的xmlns内容固定,不要修改

2."providers.config"名称也不要修改

3.由于我链接的是sql Server2008,所以使用provider中的"sqlServer2.0".

在provider.config文件中,将"sqlServer2.0"的"enabled"和"default"设定为"true".这一点一定要确认,否则连接数据库时会出错!!

("enabled"只能有一个是"true" !!!)

4.关联sql的xml文件位置,要在sqlMap resource中设定清楚。一定要注意sqlMap.config的保存目录是bin\debug,所以xml的路径是针对根路径来说的(即:以上内容中的"Maps/sql.xml")

7.在form的Form1_Load处理中,追加测试代码

Imports System
Imports System.Collections.Generic
Imports IBatisNet.DataMapper
Imports IBatisNet.DataMapper.Configuration

Public Class Form1

Private Sub Form1_Load(ByVal sender As System.Object,ByVal e As System.EventArgs) Handles MyBase.Load

Dim builder As DomsqlMapBuilder = New DomsqlMapBuilder()

Dim mapper As IsqlMapper
mapper = builder.Configure
Dim list1 As IList = mapper.QueryForList("selectAllAccounts",dbnull.Value)

MsgBox(list1.Count)


End Sub
End Class

第一次运行注意:

1.第一次运行程序的时候,由于sql.xml不能自动编译,所以一定要将Maps/sql.xml拷贝到bin\Debug目录下,否则会出错

原文地址:https://www.jb51.cc/vb/259764.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐