前面就没有整理好mybatis 也是因为跳过这个直接去学的springboot
也导致没有更深层次理解 也是逢坑踩坑
一下我版本为2.2.5.RELEASE

1 导入mybatis和mysql驱动依赖

如果mybatis加载不出来降低版本
参考:https://blog.csdn.net/S852509769/article/details/134456125
    <!-- https://mvnrepository.com/artifact/org.mybatis.spring.boot/mybatis-spring-boot-starter -->
        <dependency>
            <groupId>org.mybatis.spring.boot</groupId>
            <artifactId>mybatis-spring-boot-starter</artifactId>
            <version>2.1.1</version>
        </dependency>

        <!-- https://mvnrepository.com/artifact/mysql/mysql-connector-java -->
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <version>8.0.33</version>
        </dependency>

2. 写出死步骤properties(yaml)配置

其中密码和用户名为电脑上mysql对应的密码和用户名
spring.datasource.username=root
spring.datasource.password=root
spring.datasource.url=jdbc:mysql://localhost:3306/数据库名字?serverTimezone=GMT&2B8&userUnicode=true&characterEncoding=utf-8
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver

这里坑坑坑:
对于SpringBoot项目来说,classpath指的是src.main.java和src.main.resources路径以及第三方jar包的根路径,存放在这两个路径下的文件,都可以通过classpath作为相对路径来引用

第一个为你实体类的地方 一般都是在包下建的 所有为 包名.entity(或pojo)
mybatis.type-aliases-package=包名.entity

mapper文件的映射 你写的xml文件的位置:
如果你再resource下建的mapper 然后放在里面的xml则为以下
如果是在其他地方必须改变路径位置
mybatis.mapper-locations=classpath:mapper/*.xml

3.然后是实体类的编写(entity pojo 建立的类首字母大写)

使用到lombok简化
还有就是 字段和和你数据表对应


4.编写mapper映射(一般又有service层)

举个例子:
@Mapper  表明此为映射文件
@Repository 注解修饰哪个类表明这个类具有对数据库CRUD的功能
public interface User {
简单的增删改查 User即为entity层
  List<User> query();
    User queryByid(int id);
    int add(User user);
    int update(User user);
    int delete(int id);
}
implements继承自一个mapper映射文件 实现接口方法
@Service
public class UserServiceImpl implements UserService {
    @Autowired
    UserMapper userMapper; mapper映射文件
    @Override
    public User query(String name) {
        return userMapper.query(name);
    }
}


5.注意 xml文件的编写 坑多

头上面为死步骤
<?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映射文件的路径 也就是4在的位置
<mapper namespace="包名.mapper.UserMapper">

id对应的是你mapper中写的方法名字
    <select id="query" resultType="User">
    select *from user ;
    </select>

    <select id="queryByid" resultType="User">
    select *from user where id=#{id} ;
    </select>

    <insert id="add" parameterType="User">
    insert into user(id,name,pwd) values(#{id},#{name},#{pwd})
    </insert>

    <update id="update" parameterType="User">
        update user set name=#{name},pwd=#{pwd} where id=#{id}
    </update>

    <delete id="delete" parameterType="int">
        delete from user where id=#{id}
    </delete>
</mapper>

6.最好测试一下

在test 中的.java中 测试一下你的springboot和mybatis是否成功

@SpringBootTest
class DemoApplicationTests {
    //测试
    @Autowired
     Mapper映射

    @Test
    void contextLoads() {
        System.out.println(mapper.query("高远"));
    }

}

这次应该比上次更加清晰明了

posted on 2024-04-12 09:43  蒸饺  阅读(16)  评论(0)    收藏  举报