springboot mybatis配置
在网上找了很多资料看,跟着写,发现错误还是挺多的,这次终于弄好了,决定弄一个笔记,防止下次还会用到,首先是配置pom.xml,因为我用的是mysql,所以基本配置如下
spring.datasource.url=
spring.datasource.username =
spring.datasource.password =
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
#mybatis 配置
mybatis.type-aliases-package = wordroot.wr.Mapper(这里是你放mapper文件的包,如果是xml就是xml的形式,我的是注解的)
在启动类也需要做一些变化,这里加MapperScan,之后在mapper包中的每个文件都不需要添加@mapper了,这里不深入讨论
import org.mybatis.spring.annotation.MapperScan; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; @SpringBootApplication @MapperScan("wordroot.wr.Mapper") public class WrApplication { public static void main(String[] args) { SpringApplication.run(WrApplication.class, args); } }
接着是编写代码部分,主要是一个项目结构的问题,可以根据在StackOverflow上面的给的建议去弄
弄好以后需要写一个sql文件来建表
CREATE TABLE `user` ( `id` int(13) NOT NULL AUTO_INCREMENT COMMENT '主键', `name` varchar(33) DEFAULT NULL COMMENT '姓名', `age` int(3) DEFAULT NULL COMMENT '年龄', PRIMARY KEY (`id`) ) ENGINE=InnoDB AUTO_INCREMENT=5 DEFAULT CHARSET=utf8
如果你是按章StackOverflow给的建立来建立的项目结构,那在model目录中建立userModel.java

public class userModel{ String name; int age; public String getName() { return name; } public void setName(int name) { this.name = name; } /** 后面的以此类推 **/ }
接着要去Dao层或者mapper层编写代码,这里的代码是指注解的sql,同样的也不深入,会用就行。
public interface UserDao { /** * 通过名字查询用户信息 */ @Select("SELECT * FROM user WHERE name = #{name}") User findUserByName(@Param("name") String name); /** * 查询所有用户信息 */ @Select("SELECT * FROM user") List<User> findAllUser(); /** * 插入用户信息 */ @Insert("INSERT INTO user(name, age) VALUES(#{name}, #{age}") void insertUser(@Param("name") String name, @Param("age") Integer age); /** * 根据 id 更新用户信息 */ @Update("UPDATE user SET name = #{name},age = #{age},money= #{money} WHERE id = #{id}") void updateUser(@Param("name") String name, @Param("age") Integer age, @Param("id") int id); /** * 根据 id 删除用户信息 */ @Delete("DELETE from user WHERE id = #{id}") void deleteUser(@Param("id") int id); }
最后在Controller层编写api
@RestController @RequestMapping("/") public class UserController { @Autowired private UserMapper userMapper; @RequestMapping("/") public ModelAndView index(){ User user = new User(); user.setName("test"); user.age(10); UserDao.insertUser(user); ModelAndView modelAndView = new ModelAndView("/index"); modelAndView.addObject("count", UserDao.findAllUser().size()); return modelAndView; }
大致流程就是这个样子,dao层/mapper层编写关于sql的文件,实体层编写和表数据有关的get/set,最后Controller调用。
参考链接
浙公网安备 33010602011771号