`
joerong666
  • 浏览: 419997 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

iBATIS.NET : 将image列设置为null值时遇到的异常处理

阅读更多

有时我们需要将图片存储在数据库中,此时可将列的类型设置为image。在对该列进行更新(Insert, Update)时,如果要设置的值为null,可能会有问题,考虑这条语句:

<!----><insert id="Category_Insert" parameterClass="Category">
INSERT INTO Categories (CategoryName,Description,Picture)
VALUES (#CategoryName#,#Description#,#Picture#)
</insert>

如果Category类的Picture属性为null,那么在插入数据会引发异常,其信息为:

Operand type clash: nvarchar is incompatible with image.

奇怪,我什么时候插入nvarchar值的?其原因是,如果没有设置参数的类型,iBATIS会自动解析参数的类型,将具有null值的参数类型设置为varchar,因此引发上述异常,解决办法是显式指定该列的类型。

一是使用内联参数:

<!----><insert id="Category_Insert" parameterClass="Category">
INSERT INTO Categories (CategoryName,Description,Picture)
VALUES (#CategoryName#,#Description#,#Picture:image#)
</insert>

二是使用外部参数:

<!----><insert id="Category_Insert" parameterMap="Para_Category_Insert">
    INSERT INTO [Categories] ([CategoryName],[Description],[Picture])
    VALUES (?, ?, ?)
</insert>

<parameterMap id="Para_Category_Insert" class="Category">
    
<parameter property="CategoryName" column="CategoryName" />
    
<parameter property="Description" column="Description" />
    
<parameter property="Picture" column="Picture" dbType="image" />
</parameterMap> 

将Picture对应的列指定为image类型,这样就不会有问题了。

分享到:
评论

相关推荐

    IBatis.net 配置各种数据库

    IBatis.net,作为一个轻量级的持久层框架,为开发者提供了灵活的数据映射功能,使得数据库操作变得更为简单。本文将详细介绍如何在IBatis.net中配置和使用各种数据库。 首先,理解IBatis.net的核心概念。IBatis 是...

    ibatis.net winform搭建带数据库

    标题 "ibatis.net winform搭建带数据库" 描述了一个使用iBATIS.NET框架在Windows Forms(WinForm)应用程序中构建数据库交互的过程。iBATIS.NET是.NET平台上的一个持久层框架,它允许开发者将SQL语句与应用程序代码...

    spring.net_ibatis.net_mysq

    iBatis.NET是SQL映射框架,它将数据库操作与业务逻辑解耦,使得代码更加灵活和易于管理。而MySQL则是一种流行的开源关系型数据库管理系统,以其高性能和易用性而受到广泛欢迎。 当我们把这三个技术结合在一起时,...

    Ibatis.net学习例子以及使用教程书

    2. **参数映射**:通过和元素,Ibatis.net可以将.NET对象的属性值映射到SQL语句的参数,简化了参数传递的过程。 3. **结果映射**:使用定义结果集映射,可以将数据库查询结果自动转换为.NET对象,支持一对一、一对...

    IBatis.Net for .net framework4.0

    - **映射器(Mapper)**: IBatis.Net的核心是映射器,它将数据库查询与业务对象进行绑定,使得SQL语句可以动态生成,降低了硬编码的复杂性。 - **XML配置**: SQL映射文件通常使用XML格式定义,允许灵活的SQL编写和...

    IBatis.Net详细使用手册

    相比于完全自动化处理数据操作的ORM框架如NHibernate,iBatis.Net 更加注重开发者的控制权,允许开发者自定义SQL语句,从而更好地适应特定的性能和功能需求。 在使用iBatis.Net时,首先要理解其核心概念和组成部分...

    c# net ibatis.net 模板

    标题中的"C# .NET iBatis.NET 模板"指的是使用C#编程语言在.NET框架下集成iBatis.NET框架的模板项目。iBatis.NET是一个数据映射框架,它将SQL语句与业务逻辑代码分离,使得数据库访问更加简单灵活。这个模板可能是...

    iBatis.Net 模板文件 for codesmith4.1

    iBatis.Net是一款轻量级的ORM(对象关系映射)框架,专为.NET环境设计,用于简化数据库操作。在给定的“iBatis.Net 模板文件 for codesmith4.1”中,我们可以看到一系列与iBatis.Net集成的Codesmith模板,这些模板是...

    Ibatis.net+ oracle 简单事例

    Ibatis.net 是一款轻量级的持久层框架,它将SQL映射与Java代码分离,使得开发者可以更专注于业务逻辑而不必关心底层数据库操作。Ibatis.net 提供了灵活的SQL编写方式,允许在SQL语句中直接进行条件判断,大大提高了...

    ibatis.net Demo

    - **SqlMapConfig.xml**: 这是`ibatis.net`的主要配置文件,包含了数据源信息、事务管理、映射文件引用等关键设置。 - **Mapper文件**: 映射文件定义了SQL语句和.NET对象之间的关系,通常以XML格式存在。 - **...

    IBatis.NET开发文档

    iBATIS.NET是一款开源的持久层框架,它在.NET平台上为开发者提供了强大的数据访问和SQL映射功能。这个开发文档集合包含了"iBATIS SQL Maps 开发指南"、"iBATIS SQL Maps入门教程"以及"ibatis 开发指南"等资源,旨在...

    ibatis.net

    总的来说,Ibatis.Net为.NET开发者提供了一种高效、灵活的数据库访问方式,使得他们可以专注于业务逻辑的实现,而不是繁琐的数据操作。通过学习和掌握Ibatis.Net,开发者可以提升项目的开发效率和质量。

    asp.net MVC和IBatis.net整合demo程序

    1. **设置项目结构**:创建MVC项目,并为Ibatis.net设置必要的文件结构,如SqlMapConfig.xml配置文件,用于存放数据库连接信息和SQL映射。 2. **安装Ibatis.net**:通过NuGet包管理器或手动下载并添加Ibatis.net库...

    spring.net+ibatis.net+mvc配置demo

    spring.net+ibatis.net+mvc配置demo.rar spring.net版本:1.3.2 ibatis.net版本:1.6.1 demo运行环境是VS2013 数据库表,我就没传了,测试的时候,建立表 CREATE TABLE [dbo].[Hair8_AD]( [ADId] [int] ...

    Spring.net + iBatis.net + asp.net MVC 整合文档

    关于Spring.net + iBatis.net + asp.net MVC 整合的文档,值!

    ibatis.Net

    7. **事务管理**:Ibatis.Net提供了对数据库事务的支持,你可以选择手动管理事务或者让Ibatis.Net自动处理,这在多表操作和数据一致性维护中非常重要。 8. **扩展性**:Ibatis.Net的设计使得它易于与其他框架集成,...

    Ibatis.net学习和实例~

    5. **动态SQL**:Ibatis.net允许你在SQL映射文件中编写动态SQL,根据条件改变查询的结构,这在处理复杂的查询需求时非常有用。 接下来,我们关注"Ibatis.net实例"。通过提供的文件《IBatisNet开发使用小结.docx》和...

    ibatis.net的asp.net MVC的实例

    当我们需要在控制器或其他依赖于特定服务的地方注入ibatis.net的数据库访问对象时,Unity可以帮助我们完成这一过程,使得代码更加灵活和可扩展。 【知识点详解】 1. **ASP.NET MVC**:ASP.NET MVC是一种基于模型-...

    asp.net MVC3 IBATIS.NET 实例

    3. **配置IBATIS.NET**: 创建IBATIS.NET的配置文件(如`ibatis.config`),设置数据库连接字符串,并定义SQL映射文件。映射文件中包含具体的SQL查询,这些查询将用于从数据库中检索数据。 4. **编写数据库访问层...

Global site tag (gtag.js) - Google Analytics