在网上找了很多资料看,跟着写,发现错误还是挺多的,这次终于弄好了,决定弄一个笔记,防止下次还会用到,首先是配置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上面的给的建议去弄
stackoverflow.com/questions/4…
弄好以后需要写一个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调用。
参考链接