版本说明:
Sprngboot:2.1.3.RELEASE
jdk:1.8
Mysql:5.7
Idea:2018.2.4
功能:集成通用Mapper实现CRUD
整体项目结构
建表语句:
CREATE TABLE t_user
(
ID
int(11) NOT NULL AUTO_INCREMENT,
USERNAME
varchar(255) DEFAULT NULL,
PASSWORD
varchar(255) DEFAULT NULL,
AGE
int(12) DEFAULT NULL,
SEX
varchar(12) DEFAULT NULL,
BIRTHDAY
date DEFAULT NULL,
CREATE_DATE
date DEFAULT NULL,
UPDATE_DATE
date DEFAULT NULL,
NOTE
varchar(255) DEFAULT NULL,
PRIMARY KEY (ID
) USING BTREE
) ENGINE=InnoDB AUTO_INCREMENT=4 DEFAULT CHARSET=utf8
填好GroupId和ArtifactId直接next
参数解释:GroupId:组织名,通常是用公司域名 ArtifactId为项目名 Version:版本 具体更详细的请看《maven实战》
4.0.0
com.huhst
Producer
1.0-SNAPSHOT
org.springframework.boot
spring-boot-starter-parent
2.1.3.RELEASE
1.8
org.projectlombok
lombok
mysql
mysql-connector-java
tk.mybatis
mapper-spring-boot-starter
2.0.3
org.springframework.boot
spring-boot-starter-web
springboot的目的就是简化项目的配置,默认springboot去读resource下的application开头的文件,不过底层实际上仍然是.xml或者是注解形式的配置。
参数简单解释:
port:springboot自带tomcat,用来指定端口
username,password,url,driver-class-name:这四个参数为配置mysql连接,功能与以前的jdbc.properties一致
hikari:连接池,springboot默认支持,有兴趣可以百度下,效率是c3p0的很多倍
mybatis:Mybatis配置
logging:日志
server:
port: 8088
spring:
datasource:
username: root
password: root
url: jdbc:mysql://127.0.0.1:3306/huhst
driver-class-name: com.mysql.jdbc.Driver
hikari:
idle-timeout: 60000
maximum-pool-size: 30
minimum-idle: 10
mybatis:
# type-aliases-package: com.huhst.dto
mapper-locations: classpath:mapper/*.xml
logging:
level:
com.huhst: debug
实体类 User
注解简单解释:
@Data 是来自于lombok的注解 加上它就不用再手动生成get set方法了
@Table 是来自import javax.persistence.Table;的注解,指定实体类User和t_user相互关联
@Id 是来自import javax.persistence.Table;的注解 标识这是主键
@KeySql(useGeneratedKeys = true) 是来自lombok的注解,表示是主键自增长
@Data
@Table(name = "t_user")
public class User {
@Id
@KeySql(useGeneratedKeys = true)
private Integer id;
private String username;
private String password;
private Integer age;
private String sex;
private Date birthday;
private Date createDate;
private Date updateDate;
private String note;
}
可以看见这有两个mapper,@Mapper是来自于Mabatis的注解
而继承的tk.mybatis.mapper.common.Mapper是通用mapper,里面已经包含了常见的crud方法
@Mapper
public interface UserMapper extends tk.mybatis.mapper.common.Mapper {
}
public interface UserService {
/**
* 插入用户信息
* @param user
* @return
*/
public int insertUserInfo(User user);
/**
* 根据id查询用户信息
* @param id
* @return
*/
public User queryUserInfoById(Integer id);
}
@Service
public class UserServiceImpl implements UserService {
@Autowired
private UserMapper userMapper;
@Override
public int insertUserInfo(User user) {
return userMapper.insert(user);
}
@Override
public User queryUserInfoById(Integer id) {
return userMapper.selectByPrimaryKey(id);
}
}
参数简单解释:默认是知道ssm的哈
@Slf4j是来自lombok的注解,有了它,我们能直接输出日志:如 log.debug(“数据查询失败!”); 记得yaml里面得先配置日志级别哦
@RestController
@Slf4j
public class UserController {
@Autowired
private UserService userService;
@RequestMapping(value = "/api/insert")
public Map insert(@RequestBody User user){
HashMap
值得注意的是,如果目录是和我一样的话ProducerApplication得在com.huhst包下,因为默认是扫当前包及其子包下
@SpringBootApplication
public class ProducerApplication {
public static void main(String[] args) {
SpringApplication.run(ProducerApplication.class, args);
}
}