此文档以哔哩哔哩up主黎曼的猜想发表的SSM框架合集为基础总结讲述idea下如何利用mybatis实现用户查询操作,此处记录,以便后续查阅复习总结之。
视频链接为:https://www.bilibili.com/video/BV1mE411X7yp?p=24
注:此文档以https://blog.csdn.net/qq_58156653/article/details/119302292(mybatis入门环境搭建,test测试控制台输出数据库信息)为基础
首先说明,笔者代码层级结构如下:
1.在持久层(dao包)接口Iuserdao中添加查询方法findById
全部代码如下:
package dao;
import domin.User;
import java.util.List;
public interface Iuserdao {
/**
* 查询所有用户
*/
List<User> findAll();
//保存用户方法
void saveUser(User user);
//更新用户方法
void updateUser(User user);
//删除用户方法
void deleteUser(User user);
//查询用户
User findById(User user);
}
2.在对应的映射配置Iuserdao.xml中配置保存方法的映射,使用select
标签
注:使用id查询的话这里也可以写为parameterType="int"
注:使用select标签,id中的值为方法名称,user中为实体中User的属性。values代表所操作的数据。
sql语句使用#{}字符:它代表占位符,相当于原来jdbc中的?,都是用于执行语句时替换实际的数据。具体的数据是由#{}中的内容所决定的。
#{}中内容的写法:由于我们保存方法的参数是一个User对象,此处要写User对象中属性的名称,它使用的是oqnl表达式。
所谓的oqnl表达式是oqnl官方提供的一种表达式语言,它按照一定的语法格式来获取数据,即#{对象.对象}
例如#{user.username}它会先找user对象,然后在user对象中找到username属性,并调用getUsername()方法取值,若在parameterType中指明了实体类名称,例如parameterType="domin.User",则不再需要写user,可以直接写username,即#{对象}
全部代码如下:
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/m