目录
一 引入依赖
<!-- Spring-Mybatis -->
<dependency>
<groupId>org.mybatis.spring.boot</groupId>
<artifactId>mybatis-spring-boot-starter</artifactId>
<version>1.3.1</version>
</dependency>
<!-- MySQL -->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.45</version>
</dependency>
二 表结构设计
CREATE TABLE `user` (
`id` int(11) NOT NULL AUTO_INCREMENT COMMENT 'ID',
`name` varchar(50) NOT NULL COMMENT '用户名',
`age` int(11) NOT NULL COMMENT '年龄',
`create_datetime` datetime NOT NULL COMMENT '创建时间',
`update_datetime` datetime NOT NULL COMMENT '更新时间',
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8
三 配置数据源
application.yml 添加如下配置,数据库、用户名、密码配置成自己的。
spring:
datasource:
driver-class-name: com.mysql.jdbc.Driver
url: jdbc:mysql://localhost:3306/account
username: root
password: root
四 代码实现
4.1 配置指定 domain 扫描包。
application.yml 添加如下配置让 mybatis 自动扫描到自定义 domain 类。
mybatis:
type-aliases-package: com.sb.demo.domain
4.2 dao 层代码接口和实现
package com.sb.dao;
import com.sb.domain.User;
import org.apache.ibatis.annotations.*;
import java.util.List;
public interface UserDao {
@Select("SELECT * FROM user WHERE id = #{id}")
User getUserById(Long id);
@Select("SELECT * FROM user")
public List<User> getUserList();
@Insert("insert into user(name, age, create_datetime, update_datetime) values(#{name}, #{age}, now(), now())")
public int add(User user);
@Update("UPDATE user SET name = #{user.name} , age = #{user.age} WHERE id = #{id}")
public int update(@Param("id") Long id, @Param("user") User user);
@Delete("DELETE from user where id = #{id} ")
public int delete(Long id);
}
添加 @MapperScan
package com.sb;
import org.mybatis.spring.annotation.MapperScan;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
@MapperScan(basePackages = "com.sb.dao")
@SpringBootApplication
public class SpringbootMybatisApplication {
public static void main(String[] args) {
SpringApplication.run(SpringbootMybatisApplication.class, args);
}
}
4.3 Service 层代码接口和实现
UserService 接口
package com.sb.service;
import com.sb.domain.User;
import java.util.List;
public interface UserService {
User getUserById(Long id);
public List<User> getUserList();
public int add(User user);
public int update(Long id, User user);
public int delete(Long id);
}
UserServiceImpl 实现
package com.sb.service.impl;
import com.sb.dao.UserDao;
import com.sb.domain.User;
import com.sb.service.UserService;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
import java.util.List;
@Service
public class UserServiceImpl implements UserService {
@Resource
private UserDao userDao;
@Override
public User getUserById(Long id) {
return userDao.getUserById(id);
}
@Override
public List<User> getUserList() {
return userDao.getUserList();
}
@Override
public int add(User user) {
return userDao.add(user);
}
@Override
public int update(Long id, User user) {
return userDao.update(id, user);
}
@Override
public int delete(Long id) {
return userDao.delete(id);
}
}
4.4 Controller 层代码实现
package com.sb.controller;
import com.sb.domain.User;
import com.sb.dto.RetDTO;
import com.sb.service.UserService;
import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource;
import java.util.*;
@RestController
@RequestMapping(value="/users")
public class UserController {
@Resource
private UserService userService;
@RequestMapping(value={"/list"}, method=RequestMethod.GET)
public RetDTO<List<User>> getUserList() {
List<User> r = userService.getUserList();
return RetDTO.getReturnJson(r);
}
@RequestMapping(value="/insert", method=RequestMethod.POST)
public RetDTO insert(@RequestBody User user) {
return RetDTO.getReturnJson(userService.add(user));
}
@RequestMapping(value="/{id}", method=RequestMethod.GET)
public RetDTO<User> getUser(@PathVariable Long id) {
return RetDTO.getReturnJson(userService.getUserById(id));
}
@RequestMapping(value="/{id}", method=RequestMethod.PUT)
public RetDTO putUser(@PathVariable Long id, @RequestBody User user) {
return RetDTO.getReturnJson(userService.update(id, user));
}
@RequestMapping(value="/{id}", method=RequestMethod.DELETE)
public RetDTO deleteUser(@PathVariable Long id) {
return RetDTO.getReturnJson(userService.delete(id));
}
}
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/9589.html