MyBatis简介
MyBatis是一款优秀的持久层框架,它支持定制化SQL、存储过程以及高级映射,MyBatis避免了几乎所有的JDBC代码和手动设置参数以及获取结果集,MyBatis可以使用简单的XML或注解来配置和映射原生类型、接口和Java的POJO(Plain Old Java Objects,普通的Java对象)为数据库中的记录。
添加数据返回对象
1、定义实体类
我们需要定义一个实体类,用于映射数据库中的表结构,我们有一个用户表(user),包含以下字段:id、name、age、email,我们可以定义一个User类来表示这个表:
public class User { private int id; private String name; private int age; private String email; // getter和setter方法省略 }
2、创建映射文件
接下来,我们需要创建一个映射文件(UserMapper.xml),用于定义SQL语句和映射规则,在映射文件中,我们可以使用<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.example.mapper.UserMapper"> <resultMap id="UserResultMap" type="com.example.entity.User"> <id property="id" column="id"/> <result property="name" column="name"/> <result property="age" column="age"/> <result property="email" column="email"/> </resultMap> </mapper>
3、创建接口
我们需要创建一个接口(UserMapper.java),用于定义与数据库交互的方法,在这个接口中,我们需要继承org.apache.ibatis.annotations.Mapper注解,并指定映射文件的名称:
package com.example.mapper; import com.example.entity.User; import org.apache.ibatis.annotations.Insert; import org.apache.ibatis.annotations.Select; import org.apache.ibatis.annotations.Results; import org.apache.ibatis.annotations.Result; import java.util.List; public interface UserMapper { @Insert("INSERT INTO user (name, age, email) VALUES ({name}, {age}, {email})") int insert(User user); @Select("<script>" + "SELECT * FROM user WHERE id = {id}" + "</script>") @Results(id = "UserResultMap", value = {"id", "name", "age", "email"}) User getById(int id); }
4、在Service中使用Mapper
在Service层中,我们可以通过@Autowired注解来注入UserMapper接口,并调用其方法来操作数据库:
package com.example.service; import com.example.entity.User; import com.example.mapper.UserMapper; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import java.util.List; @Service public class UserService { @Autowired private UserMapper userMapper; public int addUser(User user) { return userMapper.insert(user); } }
相关问题与解答
1、如何使用MyBatis批量插入数据?
答:可以在映射文件中使用<foreach>标签来实现批量插入。
<insert id="batchInsert" parameterType="java.util.List"> INSERT INTO user (name, age, email) VALUES ({name}, {age}, {email}) </insert>
原创文章,作者:K-seo,如若转载,请注明出处:https://www.kdun.cn/ask/131525.html