MyBatis入门学习二:面向接口编程

// 4. 准备基本信息
// 4.1) statement: 用来定位映射文件(PersonMapper.xml)中的语句(通过namespace id + select id)
//String statement = "com.xiya.dao.PersonDao.getPersonById";
// 4.2) parameter: 传进去的参数,也就是需要获取students表中主键值为1的记录
//int parameter = 1;
// 5. SqlSession 实例来直接执行已映射的 SQL 语句,selectOne表示获取的是一条记录
//Person person = session.selectOne(statement, parameter);
//System.out.println(person);
这种方式是用SqlSession实例来直接执行已映射的SQL语句。

诚然这种方式能够正常工作,并且对于使用旧版本 MyBatis 的用户来说也比较熟悉,不过现在有了一种更直白的方式。

使用对于给定的sql语句能够合理描述其参数和返回值的接口(比如说PersonDao.class),你现在不但可以执行更清晰和类型安全的代码,而且还不用担心易错的字符串字面值以及强制类型转换。

PersonDao personMapper = session.getMapper(PersonDao.class);
Person person = personMapper.getPersonById(1);
System.out.println(person);
PersonDao.java

package com.xiya.dao;
import com.xiya.entity.Person;
public interface PersonDao {
    Person getPersonById(int id);
}

这里的getPersonById必须与PersonMapper.xml里的select id一致。

PersonMapper.xml里的命名空间需要指向PersonDao接口的全类名。

xml version="1.0" encoding="UTF-8" ?>
mapper
        PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
        "http://mybatis.org/dtd/mybatis-3-mapper.dtd">

namespace="com.xiya.dao.PersonDao">
    
    
    
    
    

    

    
    id="persons" type="com.xiya.entity.Person">
        column="id" property="id"/>
        column="name" property="name"/>
        column="age" property="age"/>
    


目录结构:

MyBatis入门学习二:面向接口编程_第1张图片

Demo:

https://github.com/N3verL4nd/MyBatis

你可能感兴趣的:(MyBatis,SSM学习笔记)