首页 > 编程 > Java > 正文

mybatis输入映射和输出映射实例详解

2019-11-26 09:01:29
字体:
来源:转载
供稿:网友

输入映射

Mybatis支持输入

哪些类型
简单类型、POJO,HashMap,POJO的包装的类型。
需求:查询用户列表:已经下过订单男性用户,那么传入的参数包含用户信息(User)和订单信息(Order)

输出映射

resultType

(1)支持的类型

基本类型、pojo、hashMap

(2)输出是POJO和POJO列表问题

不管是输出是单个POJO,还是POJO列表,在Mapper.xml中resultType都是一样的,只是在Mapper接口中返回值类型不一样。

(3)使用条件

使用resultType进行输出映射的时候,只要查询出来的列名和POJO的属性名一致,该列才可以映射成功。
只要查询出来的列名和属性名有一个能对应的上,就会创建POJO对象。
如果查询出来的列名和属性名没有一个能对应上,就不会创建POJO对象。

sqlMapconfig.xml核心配置文件

<?xml version="1.0" encoding="UTF-8" ?><!DOCTYPE configuration    PUBLIC "-//mybatis.org//DTD Config 3.0//EN"    "http://mybatis.org/dtd/mybatis-3-config.dtd"><configuration>  <environments default="devlelopment">    <environment id="devlelopment">      <transactionManager type="JDBC"></transactionManager>      <dataSource type="POOLED">        <property name="driver" value="com.mysql.jdbc.Driver"></property>        <property name="url" value="jdbc:mysql://localhost:3306/mysql04"></property>        <property name="username" value="root"></property>        <property name="password" value="123"></property>      </dataSource>    </environment>  </environments>  <!--(6)在核心配置文件加载映射文件-->  <mappers>    <mapper resource="com/sgl/demo2/User.xml"></mapper>    <mapper resource="com/sgl/demo3/mapper/UserMapper.xml"></mapper>    <mapper resource="com/sgl/demo5/mapper/UserMapper.xml"></mapper>  </mappers></configuration>

UserMapper .java

package com.sgl.demo5.mapper;import com.sgl.demo5.pojo.User;import com.sgl.demo5.vo.UserQueryVo;import java.util.List;public interface UserMapper {//  根据返回类型选择selectOne或者selectList  public List<User> findUserList(UserQueryVo userQueryVo);}

UserMapper .xml

<?xml version="1.0" encoding="UTF-8" ?><!DOCTYPE mapper    PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"    "http://mybatis.org/dtd/mybatis-3-mapper.dtd"><!--namespace :命名空间,对Sql进行分类管理,SQL分离--><mapper namespace="com.sgl.demo5.mapper.UserMapper">  <!--  id:表示配置文件中的SQL,称为statement 的Id  parameterType:参数的类型  resultType:返回值的类型,      如果返回值是一个集合,那么类型就写集合中元素的类型  -->  <!--查询用户列表,主键查询-->  <select id="findUserList" parameterType="com.sgl.demo5.vo.UserQueryVo"      resultType="com.sgl.demo5.pojo.User">    select username,id from user where username like "%"#{user.username}"%" and sex=#{user.sex}  </select></mapper>

UserQueryVo .java

package com.sgl.demo5.vo;import com.sgl.demo5.pojo.User;public class UserQueryVo {  private User user;  public User getUser() {    return user;  }  public void setUser(User user) {    this.user = user;  }}

Test1.java

package com.sgl.demo5.test;import com.sgl.demo5.mapper.UserMapper;import com.sgl.demo5.pojo.User;import com.sgl.demo5.vo.UserQueryVo;import org.apache.ibatis.io.Resources;import org.apache.ibatis.session.SqlSession;import org.apache.ibatis.session.SqlSessionFactory;import org.apache.ibatis.session.SqlSessionFactoryBuilder;import org.junit.Before;import org.junit.Test;import java.io.IOException;import java.io.InputStream;import java.util.List;public class Test1 {  private SqlSessionFactory sqlSessionFactory;  @Before  public void fun0() throws IOException {    InputStream resourceAsStream = Resources.getResourceAsStream("sqlMapconfig.xml");    this.sqlSessionFactory= new SqlSessionFactoryBuilder().build(resourceAsStream);  }  @Test  public void fun1()  {    SqlSession sqlSession = this.sqlSessionFactory.openSession();    UserMapper userMapper = sqlSession.getMapper( UserMapper.class );    UserQueryVo userQueryVo=new UserQueryVo();    User user=new User();    user.setUsername("小");    user.setSex("1");    userQueryVo.setUser(user);    List<User> userList = userMapper.findUserList(userQueryVo);    for ( User u:userList       ) {      System.out.println(u);    }  }}

以上所述是小编给大家介绍的mybatis输入映射和输出映射详解整合,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对武林网网站的支持!

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表