Mybatis 输入输出映射

输入输出映射

输入映射parameterType

* 基本类型
* 自定义对象
* 自定义包装类

userVo包装类的dai

package com.test.bean;
public class userVo {
    //包装类 除了本对象外还封装了其他信息 
    //表单需要全部的user 需要表单B的id name信息  一起封装
    user user;
    public user getUser() {
        return user;
    }
    public void setUser(user user) {
        this.user = user;
    }
    public String toString() {
        return "userVo [user=" + user ;
    }
}

mapper.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">

<mapper namespace="com.test.mapper.userMapper">
 <select id="selectUserVoById" parameterType="userVo" resultType="user">
 select * from user where u_id = #{user.u_id}
 </select>
</mapper>

userMapper.java 是mapper接口

package com.test.mapper;
import com.test.bean.user;
import com.test.bean.userVo;
public interface userMapper {
    public user selectUserVoById(userVo vo) ;
}

userdaoTest.java 的代码

package com.test.test;
import org.junit.Test;
import com.test.ServiceFactory.sqlSession;
import com.test.bean.user;
import com.test.bean.userVo;
import com.test.mapper.userMapper;

public class userdaoTest {
    @Test
    public void test() {
        user u = new user();
        u.setU_id(15);
        userVo uservo = new userVo();
        uservo.setUser(u);
        userMapper mapper = new sqlSession().getSqlSession().getMapper(userMapper.class); 
        user user = mapper.selectUserVoById(uservo);
        System.out.println(uservo);
    }
}

输出映射resultType

* 基本类型
* 自定义对象
* ***

部分包同上
下面是test.java 的代码

package com.test.test;
import org.junit.Test;
import com.test.ServiceFactory.sqlSession;
import com.test.mapper.userMapper;
public class userdaoTest {
    @Test
    public void test() {
        userMapper mapper = new sqlSession().getSqlSession().getMapper(userMapper.class); 
        Integer i = mapper.selectUserCount();
        System.out.println(i);
    }
}

mapper.java的代码

package com.test.mapper;
public interface userMapper {
    public Integer selectUserCount();
}

mapper.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">
<mapper namespace="com.test.mapper.userMapper">
 <select id="selectUserCount" resultType="Integer">
 select count(u_id) from user 
 </select>
</mapper>

resultMap

  • bean对象字段与数据表字段不匹配
  • 自定义包装类
  • 关联查询

测试类test.java的代码

package com.test.test;
import java.util.List;
import org.junit.Test;
import com.test.ServiceFactory.sqlSession;
import com.test.bean.Country;
import com.test.mapper.countryMapper;

public class countrydaoTest {
    @Test
    public void test() {
        countryMapper mapper = new sqlSession().getSqlSession().getMapper(countryMapper.class); 
        List<Country> ls = mapper.selectAll();
        for (Country country : ls) {
            System.out.println(country);
        }
    }
}

bean country类

package com.test.bean;

public class Country {
    private Integer id;
    private String countryname;
    private String capital;
    public Integer getid() {
        return id;
    }
    public void setid(Integer id) {
        this.id = id;
    }
    public String getcountryname() {
        return countryname;
    }
    public void setcountryname(String countryname) {
        this.countryname = countryname;
    }
    public String getcapital() {
        return capital;
    }
    public void setcapital(String capital) {
        this.capital = capital;
    }
    public String toString() {
        return "Country [id=" + id + ", countryname=" + countryname + ", capital=" + capital + "]";
    }
}

mapper.java 类的代码

package com.test.mapper;
import java.util.List;
import com.test.bean.Country;
public interface countryMapper {
    public List<Country> selectAll(); 
}

mapper.xml的代码 这里运用了resultMap的工具 所以正确展示所有数据

<?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">

<mapper namespace="com.test.mapper.countryMapper">
<resultMap type="Country" id="country">
    <result property="id" column="c_id"/>
    <result property="capital" column="c_capital"/>
    <result property="countryname" column="c_countryname"/>
</resultMap>
 <select id="selectAll" resultMap="country">
 select * from country 
 </select>
</mapper>

图片说明

  • 此处若不适用 resultMap 而使用 resultType = "Country" 结果如下 [所有字段将无法跟数据库匹配上]
 <select id="selectAll" resultType="Country">
 select * from country 
 </select>

图片说明

全部评论

相关推荐

Aki-Tomoya:窝趣,人家这是先富带动后富,共同富裕了属于是
投递英伟达等公司10个岗位
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务