加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

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

发布时间:2020-12-16 22:25:44 所属栏目:大数据 来源:网络整理
导读:之前做的一个java+iBatis的程序,现在要往vb.net上移形。偶然间得知针对.Net也有iBatis.Net构架,狂喜~~ 找来各种配置资料,看了看都是C#的,虽说应该差不多但是心里还是别扭(就没人在vb.net上用这个??) 算了,按照人家的资料来吧。可能是跟人家的水平

之前做的一个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 FilesMicrosoft Visual Studio 9.0XmlSchemas

二、程序配置:

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.config,SqlMap.config(官网提供的是“sample.SqlMap.config”,咱们用的时候需要改名)放入到程序的 bindebug 目录中

注:其实放错位置也没事儿,后面程序运行的时候,会报错,告诉你在程序的bindebug中找不到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在bindebug路径下,所以设定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的保存目录是bindebug,所以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拷贝到binDebug目录下,否则会出错

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读