`

无意中发现ibatis中ResultMap也处理了无setter的private字段

    博客分类:
  • Java
阅读更多

在用scala写的ibatis程序中使用case类作映射对象的时候,发现即使没有使用scala.reflect.BeanProperty注释来让编译器产生getter setter,在ibatis中查询的时数据库字段值也能映射到对象字段上去。

 

case class User(var id:Int,var userName:String){

  def this()=this(-1,"aaa")

}

 

查阅ibatis源码发现,原来com.ibatis.common.beans.ClassInfo中,ibatis对不能访问的字段都使用了field.setAccessible(true)

分享到:
评论

相关推荐

    解决IBatis缓存动态字段问题

    在使用IBatis框架处理数据库操作时,可能会遇到动态数据表名、动态字段名的情况。这种情况下,由于IBatis的缓存机制,可能导致字段找不到的问题。具体表现为:当第一次查询某个表时,IBatis会将查询结果中的字段名...

    ibatis源码,ibatis源码 ibatis源码 ibatis源码

    在`org.apache.ibatis.executor.resultset.ResultSetHandler`中,ResultMap被用来定义字段与Java对象属性的映射关系。ResultMap不仅支持简单的列名映射,还能处理复杂的一对多、一对一关系映射。 六、...

    Ibatis入门例子,Ibatis教程

    随着对Ibatis的深入理解和实践,你会发现它在处理数据库操作时的灵活性和强大性。在实际项目中,结合Spring框架使用Ibatis,可以构建出更加健壮、高效的后端系统。因此,无论你是初学者还是有经验的开发者,掌握...

    根据MyBatis的ResultMap生成增删改sql

    当ResultMap包含多个字段时,MyBatis会自动处理这些字段并将它们拼接到INSERT语句中。比如,假设我们有以下CwInfo实体类: ```java public class CwInfo { private String id; private String name; private ...

    ibatis2.0中文API

    在映射文件中,我们可以定义`<resultMap>`来映射对象属性和字段,使用`<id>`、`<result>`等元素来指定主键和普通字段。此外,还可以使用`<select>`、`<insert>`、`<update>`和`<delete>`标签来定义SQL语句,它们可以...

    Mybatis resultMap

    对于源码部分,Mybatis的ResultMap解析是在`org.apache.ibatis.builder.ResultMapResolver`类中完成的。这个类解析XML配置文件中的ResultMap元素,并构建出`ResultMap`对象。理解这部分源码有助于深入理解Mybatis的...

    Ibatis多表查询

    在 Pojo 类中,除了常规的 getter 和 setter 方法,还需要提供一个无参构造函数,以便 Ibatis 能够实例化这些对象。`Book` 类中的 `users` 属性需要定义为列表类型,因为一本书可能有多个作者。 接下来,我们配置 ...

    ibatis sql语句对条件中特殊字符% # 处理

    ### ibatis SQL语句对条件中特殊字符% # 处理 在开发过程中,经常会遇到SQL查询时需要处理字符串中的特殊字符的情况。特别是在使用类似`LIKE`这样的操作符时,如果用户输入的数据中含有`%`、`_`或`#`等特殊字符,...

    ibatis官方中文文档

    `<resultMap>`标签可以处理复杂的一对多、一对一、多对多关系,以及自定义的类型转换。 6. **事务管理**: iBatis支持JDBC和Spring的事务管理方式,通过`transactionManager`配置来决定。在Spring环境下,可以利用...

    Ibatis jar

    ResultMap不仅可以自动匹配列名与字段名,还可以处理复杂的一对多、多对一、一对一的关系映射。此外,Ibatis还提供了TypeHandler机制,用于自定义Java类型与数据库类型的转换,解决一些特殊类型的数据处理问题。 与...

    ibatis中iterate的例子

    在iBatis中,`<iterate>`标签是一个非常实用的功能,它允许我们处理集合数据,如数组、List或Map等,进行循环遍历并生成动态SQL语句。下面我们将详细探讨`<iterate>`标签的用法及其示例。 `<iterate>`标签的主要...

    IBATIS调用存储过程

    总的来说,调用Oracle存储过程并在iBATIS中处理Cursor结果集涉及多个步骤,包括定义`parameterMap`、设置正确的`jdbcType`和`javaType`、在`<procedure>`标签中使用正确数量的占位符以及创建`ResultMap`来解析结果。...

    ibatis生成实体工具

    类中会包含属性(字段),这些属性与数据库表的列一一对应,并提供getter和setter方法。此外,还可能包含一些构造函数、toString()方法等,便于对象的创建和打印。 使用这个工具,我们可以省去编写实体类的时间,...

    Spring对IBatis的整合

    ### Spring对IBatis的整合 #### 一、Spring与IBatis整合概述 Spring框架与IBatis(现称为...通过本章节的学习,开发者应该能够掌握如何使用Spring来有效地管理IBatis相关的事务处理、异常处理以及数据访问逻辑。

    Ibatis开发实例

    ### Ibatis开发实例详解 #### 一、Ibatis简介与背景 Ibatis 是一个由 Clinton Begin 在 2001 年发起的开源项目,其名称来源于“internet”和“abatis”的组合。最初,该项目的重点是密码软件的开发,但随着时间的...

    ibatis常用sql语句

    标题与描述概述的知识点主要集中在iBATIS框架的SQL映射技术上,特别是针对不同类型的输入参数如何在iBATIS中构建SQL语句。以下是对这些知识点的详细展开: ### iBATIS SQL映射技术概览 iBATIS是早期流行的Java持久...

    记一次Ibatis的意外发生.docx

    在IBatis中,ResultMapping的名称需要加上namespace,例如:<resultMap id="xxxMap" class="xxx"> <result property="abc" resultMap="ns.yyyMap"/> </resultMap>。 3. IBatis的配置错误 在配置IBatis时,可能会...

    ibatis多表查询

    在Pojo类中,我们需要提供getter和setter方法,同时在`Book`类中定义一个无参数的构造函数,这是Ibatis进行映射所必需的。 配置文件是Ibatis的核心部分,它定义了SQL语句及其映射规则。这里有两个XML文件:`book....

    ibatis api,ibatis文档,ibatis说明文档

    Ibatis,全称为MyBatis,是一个优秀的Java持久层框架,它主要负责SQL映射,将数据库操作与业务逻辑解耦,使得开发者可以更专注于业务逻辑的实现,而无需关心繁琐的SQL语句编写。本篇文章将深入探讨Ibatis API、文档...

Global site tag (gtag.js) - Google Analytics