• Mybatis的返回值类型resultType


     1.resultType使用java实体类的全限定类名作为返回值

    在select查询语句当中都需要返回值类型,mybatis的返回值类型就reulstType和resultMap两种。

    resultType的mapper示例(Mybatis的xml配置文件):

    resultType的值可以是Java实体类的全限定类名,也可是java实体类的别名,也可以是Java基本数据类型或者其包装类。

    <select id="selectOneAccountById" resultType="com.galaxy.bank.pojo.Account">
            select id, actno, balance, holder_name, country from bankdb.t_account where actno = #{id}
        </select>

    Java Dao接口

    Account selectOneAccountById(int id);

    Java测试类:

     @Test
        public void test01(){
            SqlSession sqlSession= MybatisUtil.getSqlSession();
            AccountDao dao = sqlSession.getMapper(AccountDao.class);
            //简单类型参数
            Account account=dao.selectOneAccountById(2);
            System.out.println("Account:"+account);
            sqlSession.close();
    
        }

    Mybatis对resultType的处理方式:

    • 执行SQL语句,将查询结果转化为Java对象.
    • 调用实体类的无参数构造方法创建对象.
    • 把ResultSet指定的列值赋值给java对象的属性.

    对等的JDBC:

    ResultSet rs=executeQuery("sql);
    while (rs.next){
    Account account=new Account();
    account.setId(rs.getInt("id));
    account.setHolderName(rs.getString("holderName");
    ...
    }

    注意:

    我们创建任意一个java实体类,保证这个java实体类的属性与SQL语句返回值的列名对应上就行。

    这就是ORM(对象关系映射)的核心思想。

    2.resultType使用Java实体类的别名作为返回值类型

    1)需要在Mybatis的主配置文件里面定义typeAlias.

    2)注意:是mybatis的主配置文件,不是mapper的xml配置文件.

    2.1给某个Java实体类设置别名

    <typeAliases>
    <typeAlias type="com.galaxy.bank.pojo.Account" alias="account"/>
    </typeAliases>

    之后mapper的xml格式文件就可以使用"account"作为resultType的值了.

    <select id="selectOneAccountById" resultType="account">
            select id, actno, balance, holder_name, country from bankdb.t_account where actno = #{id}
        </select>

    2.2给某个包,或者某几个包下的所有Java实体类设置别名.这些包中所有的类,其类名就是别名,不区分大小写。

    下面给两个包中的Java实体类设置了别名.

    <typeAliases>
    <package name="com.galaxy.pojo"/>
    <package name="com.galaxy.domain"/>
    </typeAliases>

      3.resultType使用java基本数据类型作为返回值类型

    mapper示例:

    <select id="selectCount" resultType="int">
          select  count(*) from bankdb.t_account
     </select>

    Java Dao接口:

    int selectCount();
  • 相关阅读:
    jquery固定在顶部的导航菜单
    Google LOGO现代舞舞蹈动画
    memcached双主复制搭建工作【转】
    docker下运行的redis cluster中的从节点内存高
    修改jar包中的文件
    最全Linux应急响应技巧 【转】
    python lambda表达式简单用法【转】
    redis集群搭建及启动、停止、重启操作【转】
    shell整数与小数比较,小数之间比较的方法【转】
    Linux文件系统被占用,磁盘使用量与实际不一致【转】
  • 原文地址:https://www.cnblogs.com/majestyking/p/16770716.html
Copyright © 2020-2023  润新知