映射器配置文件和映射器接口

在 com.mybatis3.mappers
包中的 StudentMapper.xml 配置文件内,是怎么着计划id 为”
findStudentById”的 SQL 语句的,代码如下:
XML
Code

<?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.aming.training.mybatis.mappers.StudentMapper">    <resultMap type="Student" id="StudentResult">        <id property="id" column="id" />        <result property="name" column="name" />        <result property="sex" column="sex" />        <result property="birthday" column="birthday" />        <result property="height" column="height" />        <result property="weight" column="weight" />        <result property="score" column="score" />        <result property="address" column="address" />        <result property="email" column="email" />        <result property="hobby" column="hobby" />    </resultMap>     <select id="findStudentById" parameterType="int" resultType="Student">        SELECT id,name,email,birthday,height,weight,score,address,email,hobby FROM Student WHERE id =  #{id}    </select> </mapper>

调用findStudentById映射的SQL语句

方法一:

@Testpublic void testSelect() {     SqlSession sqlSession = MyBatisSqlSessionFactory.openSession();     try{         String mapper = "com.aming.training.mybatis.mappers.StudentMapper.findStudentById";         int id = 1;         Student student = sqlSession.selectOne(mapper,id);         System.out.println(student);      }finally{         sqlSession.close();      }}

大家得以经过字符串(字符串格局为:映射器配置文件所在的包名
namespace + 在文书钦定义的语句 id,如上,即包
com.aming.training.mybatis.mappers.StudentMapper
和语句 id:findStudentById
组成)调用映射的
SQL 语句,可是那种措施
简单出错。你须求检查映射器配置文件中的定义,以保险你的输入参数类型和结果回到类型是行得通的。

方法二:

第三步:创设多个映射器接口
StudentMapper.java

package com.aming.training.mybatis.mappers;import java.util.List;import com.aming.training.mybatis.pojo.Student;public interface StudentMapper {    /**     * 根据id获取Student对象     * @param id id     * @return Student对象     */    Student findStudentById(int id); }

其次步:使用映射器接口大家能够以种类安全的方式调用调用映射语句

@Test    public void testSelect2(){        SqlSession sqlSession = MyBatisSqlSessionFactory.openSession();        try{            int id = 1;            StudentMapper studentMapper = sqlSession.getMapper(StudentMapper.class);            Student student = studentMapper.findStudentById(id);            System.out.println(student);        }finally{            sqlSession.close();        }    }

说明:

1.在
StudentMapper.xml
映射器配置文件中,其名空间
namespace 应该跟 StudentMapper 接口的一心限定名保持一

致。此外, StudentMapper.xml 中语句 id, parameterType, returnType 应该分别和 StudentMapper 接口中的方法名,
参数类型,再次来到值相对应。

2.不怕映射器
Mapper
接口能够以项目安全的办法调用映射语句,可是大家也应该承担执笔正确的,匹配方法名、参数类型、
和重回值的映射器 Mapper
接口。

即使映射器 Mapper 接口中的方法和 XML 中的映射语句不能够匹配,会在运维期抛出1个13分。

骨子里,钦赐 parameterType 是可选的;MyBatis 能够选取反射机制来支配 parameterType。

唯独,从布局可读性的角度来看,最好钦定parameterType 属性。

比方 parameterType 没有被提及,开发者必须查看Mapper XML 配置和 Java 代码掌握传递给语句的输入参数的数据类型。

MyBatis,   

源于为知笔记(Wiz)

网站地图xml地图