MyBatis入门学习二:面向接口编程
来源:互联网 发布:华硕a555lbios怎么优化 编辑:程序博客网 时间:2024/06/01 10:41
// 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" ?><!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"><!-- namespace必须是唯一的,建议用该文件所在的包路径全类名 --><mapper namespace="com.xiya.dao.PersonDao"> <!-- select:表示这是一个查询操作 --> <!-- id:用来配合namespace来定位这个操作,也就是在调用时,将采用com.xiya.entity.PersonMapper.getPerson --> <!-- resultType:表示返回值类型,必须是全类名,MyBatis将自动为我们将查询结果封装成 Person 对象 --> <!-- parameterType:表示传进来的参数的类型,因为传的是id主键,所以是int型 --> <select id="getPersonById" parameterType="int" resultType="com.xiya.entity.Person"> <!-- #{id}:表示占位符,也就是调用时必须为其传一个id参数进来,注意是#不是$ --> select * from persons where id = #{id} </select> <select id="getAllPersons" resultMap="persons"> select * from persons </select> <resultMap id="persons" type="com.xiya.entity.Person"> <result column="id" property="id"/> <result column="name" property="name"/> <result column="age" property="age"/> </resultMap></mapper>
目录结构:
Demo:
https://github.com/N3verL4nd/MyBatis
0 0
- MyBatis入门学习二:面向接口编程
- mybatis--面向接口编程
- Mybatis面向接口编程
- Mybatis 面向接口编程
- Mybatis面向接口编程
- 自学mybatis(二)-----面向接口编程实现CRUD
- 面向接口编程 二
- Mybatis入门(二):以接口的方式编程
- MyBatis学习笔记(二)---以接口方式编程
- Mybatis学习笔记二:以接口方式编程
- 面向接口编程(二)
- 面向接口编程之二
- mybatis面向接口编程的小案例
- Mybatis面向接口编程、参数传递
- mybatis入门之二、使用接口interface
- Mybatis入门学习(二)
- Mybatis入门:(2)接口方式编程
- mybatis入门之接口式编程
- 海康、大华设备搜索大概实现原理
- 删除重复文件的程序
- python3 用socketserver框架建立TCP,UDP服务器
- scikit-learn学习之SVM算法
- cs231n学习笔记-CNN-目标检测、定位、分割
- MyBatis入门学习二:面向接口编程
- IL指令汇总
- Pytorch入门学习(五)---- 示例讲解Tensor, Autograd, nn.module
- Socket 通信(一)-- 慕课网教程
- SHA加密与MD5加密的区别与选择
- RHEL5.6 VNC安装配置
- AIO
- Android USB入门笔记
- linux中mount命令的使用