项目创建
idea新建项目
直接下一步
自定义你的项目名称,填好后点击“Finish”
目录创建
按照开发习惯一般分为:
4层目录:controller、service、dao或mapper、entity
一个启动类:UserApplication(名字可以随便自定义)
一个配置文件:application.yml(区分环境的话还可以创建application-dev.yml、application-pro.yml等)
mapper文件:resources目录下(记得在配置文件中指定)
启动类
@SpringBootApplication public class Application { public static void main(String[] args) { SpringApplication.run(Application.class, args); } }
配置文件
application.yml
spring: datasource: username: xxx password: xxx url: jdbc:mysql://IP:端口/库名?serverTimezone=UTC&useUnicode=true@characterEncoding=utf-8 driver-class-name: com.mysql.jdbc.Driver mybatis: configuration: # 默认是不允许自动转换驼峰命名,得自己设置为true map-underscore-to-camel-case: true # 起别名,xml中 resultType可以省略包名,直接写 对象名 type-aliases-package: com.lcdp.user.entity mybatis-plus: #指定mapper文件位置 mapper-locations: classpath:/mappers/**/*.xml configuration: # 默认是允许自动转换驼峰命名 map-underscore-to-camel-case: true # 开启日志 log-impl: org.apache.ibatis.logging.stdout.StdOutImpl
pom.xml
1:引入父类
<parent> <artifactId>spring-boot-starter-parent</artifactId> <groupId>org.springframework.boot</groupId> <version>2.3.2.RELEASE</version> </parent>
2:<dependencies>标签内
<!--web启动器--> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency><!--单元测试--> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-test</artifactId> </dependency><!--lombok包--> <dependency> <groupId>org.projectlombok</groupId> <artifactId>lombok</artifactId> </dependency><!--持久层框架mybaties-plus--> <dependency> <groupId>com.baomidou</groupId> <artifactId>mybatis-plus-boot-starter</artifactId> <version>3.2.0</version> </dependency><!--参数验证--> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-validation</artifactId> <version>2.5.1</version> </dependency><!--数据库驱动连接--> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-jdbc</artifactId> </dependency> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <scope>runtime</scope> </dependency>
代码样例
controller
package com.lcdp.user.controller;
import com.lcdp.user.entity.User;
import com.lcdp.user.service.UserService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
import java.util.List;
@RestController
@RequestMapping("/user")
public class UserController {
@Autowired
private UserService userService;
@GetMapping("/list")
public List<User> getUserList(){
List<User> userList = userService.getUserList();
return userList;
}
@GetMapping("/user")
public User getUserById(@RequestParam(name = "id") Integer id){
User user = userService.getUserById(id);
return user;
}
}
entity样例
package com.lcdp.user.entity;
import com.baomidou.mybatisplus.annotation.TableLogic;
import javax.validation.constraints.NotBlank;
import java.time.LocalDateTime;
public class BaseEntity {
@NotBlank
private String createUser;
@NotBlank
private LocalDateTime createTime;
private String updateUser;
private LocalDateTime updateTime;
@TableLogic(value = "0", delval = "1")
private boolean del;
}
package com.lcdp.user.entity;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotEmpty;
@Data
@NoArgsConstructor
@AllArgsConstructor
@TableName(value = "lcdp_user")
public class User extends BaseEntity{
@TableId(type = IdType.AUTO)
@NotEmpty
private Integer id;
@NotBlank
private String name;
private String mobile;
}
service接口类
package com.lcdp.user.service;
import com.lcdp.user.entity.User;
import java.util.List;
public interface UserService {
List<User> getUserList();
User getUserById(Integer id);
}
service实现类
这里采用了两种查询方式,
1:mybatiesplus提供的lambda代码方式
2:mappper xml中写sql的方式
package com.lcdp.user.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.lcdp.user.entity.User;
import com.lcdp.user.mappers.UserMapper;
import com.lcdp.user.service.UserService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.List;
@Service
public class UserServiceImpl implements UserService {
@Autowired
private UserMapper userMapper;
@Override
public List<User> getUserList() {
LambdaQueryWrapper<User> userLambdaQueryWrapper = new LambdaQueryWrapper<>();
List<User> users = userMapper.selectList(userLambdaQueryWrapper);
return users;
}
@Override
public User getUserById(Integer id) {
User u = userMapper.getUserById(id);
return u;
}
}
mapper样例
package com.lcdp.user.mappers;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.lcdp.user.entity.User;
import org.apache.ibatis.annotations.Mapper;
@Mapper
public interface UserMapper extends BaseMapper<User> {
User getUserById(Integer id);
}
mapper 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"> <mapper namespace="com.lcdp.user.mappers.UserMapper"> <select id="getUserById" resultType="com.lcdp.user.entity.User"> select * from lcdp_user <where> id = #{id} </where> </select> </mapper>
最终版目录结构
运行项目
成功启动
访问成功