前面就没有整理好mybatis 也是因为跳过这个直接去学的springboot
也导致没有更深层次理解 也是逢坑踩坑
一下我版本为2.2.5.RELEASE
1 导入mybatis和mysql驱动依赖
| 如果mybatis加载不出来降低版本 |
| 参考:https://blog.csdn.net/S852509769/article/details/134456125 |
| |
| <dependency> |
| <groupId>org.mybatis.spring.boot</groupId> |
| <artifactId>mybatis-spring-boot-starter</artifactId> |
| <version>2.1.1</version> |
| </dependency> |
| |
| |
| <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: |
| 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 |
| |
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("高远")); |
| } |
| |
| } |
这次应该比上次更加清晰明了
· DeepSeek “源神”启动!「GitHub 热点速览」
· 微软正式发布.NET 10 Preview 1:开启下一代开发框架新篇章
· C# 集成 DeepSeek 模型实现 AI 私有化(本地部署与 API 调用教程)
· DeepSeek R1 简明指南:架构、训练、本地部署及硬件要求
· NetPad:一个.NET开源、跨平台的C#编辑器