项目树
springboot
src/main/java
cn/yxh/springboot
pojo
User.java
UserExample.java
mapper
UserMapper.java
controller
UserController.java
service
impl
UserServiceImpl.java
UserService.java
utils
App.java
src/main/resources
mybatis
mapper
UserMapper.xml
static
templates
application.yml
pom.xml
-----------------------------------------------------------
User.java(此处省略getset)
@Table(name = "admin") public class User { /** * 编号 */ @Column(auto = true) private Integer id; /** * 姓名 */ @Column(unique = true, maxLength = 10) private String name; /** * 年龄 */ @Column() private Integer age;. }
pom.xml
<?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>cn.yxh.springboot</groupId> <artifactId>springboot-test</artifactId> <version>0.0.1-SNAPSHOT</version> <packaging>war</packaging> <name>springboot-test</name> <description>Demo project for Spring Boot</description> <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>2.0.5.RELEASE</version> <relativePath/> <!-- lookup parent from repository --> </parent> <properties> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding> <java.version>1.8</java.version> </properties> <dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-freemarker</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-tomcat</artifactId> <scope>provided</scope> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-test</artifactId> <scope>test</scope> </dependency> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <version>5.1.35</version> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-jpa</artifactId> </dependency> <dependency> <groupId>org.mybatis.spring.boot</groupId> <artifactId>mybatis-spring-boot-starter</artifactId> <version>1.3.1</version> </dependency> <dependency> <groupId>com.fasterxml.jackson.core</groupId> <artifactId>jackson-core</artifactId> </dependency> <dependency> <groupId>com.fasterxml.jackson.core</groupId> <artifactId>jackson-databind</artifactId> </dependency> <dependency> <groupId>com.fasterxml.jackson.datatype</groupId> <artifactId>jackson-datatype-joda</artifactId> </dependency> <dependency> <groupId>com.fasterxml.jackson.module</groupId> <artifactId>jackson-module-parameter-names</artifactId> </dependency> <!-- 分页插件 --> <dependency> <groupId>com.github.pagehelper</groupId> <artifactId>pagehelper-spring-boot-starter</artifactId> <version>1.2.3</version> </dependency> <!-- alibaba的druid数据库连接池 --> <dependency> <groupId>com.alibaba</groupId> <artifactId>druid</artifactId> <version>1.1.0</version> </dependency> </dependencies> <build> <plugins> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> </plugin> <!-- mybatis generator 自动生成代码插件 --> <plugin> <groupId>org.mybatis.generator</groupId> <artifactId>mybatis-generator-maven-plugin</artifactId> <version>1.3.2</version> <configuration> <configurationFile>${basedir}/src/main/resources/generator/generatorConfig.xml</configurationFile> <overwrite>true</overwrite> <verbose>true</verbose> </configuration> </plugin> </plugins> </build> </project>
application.yml
spring: datasource: # 驱动配置信息 url: jdbc:mysql://localhost:3306/depot?useUnicode=true&characterEncoding=utf8 username: root password: 1234 type: com.alibaba.druid.pool.DruidDataSource driver-class-name: com.mysql.jdbc.Driver # 连接池的配置信息 filters: stat maxActive: 20 initialSize: 1 maxWait: 60000 minIdle: 1 timeBetweenEvictionRunsMillis: 60000 minEvictableIdleTimeMillis: 300000 validationQuery: select 'x' testWhileIdle: true testOnBorrow: false testOnReturn: false poolPreparedStatements: true maxOpenPreparedStatements: 20 mybatis: mapper-locations: classpath*:mybatis/mapper/*.xml
UserController.java
/** * @RestController 和 @Controller的区别 * @RestController 返回的数据直接封装为JSON格式,不支持返回视图 * @Controller 可以返回视图,若要返回json的数据要加上@ResponseBody注解 */ @RestController public class UserController { /** * @Autowired和@Resource的区别 * @Autowired 按byType自动注入 ---spring * @Resource 按byName自动注入---javaee * 都能自动装配bean,都能写在setter方法上 * @Autowired 默认情况下必须要求依赖对象必须存在 * 空值则@Autowired(required=false) */ @Autowired private UserService userService; @RequestMapping("/index") public String addUser(User user){ userService.addUser(user); return "success"; } }
UserService.java
public interface UserService { public void addUser(User user); }
UserServiceImpl.java
@Service public class UserServiceImpl implements UserService { @Resource private UserMapper userMapper; /* 新增用户 */ public void addUser(User user) { /*忽略空值校验...*/ userMapper.insert(user); } }
App.java
@SpringBootApplication /*此处与Mapper文件的@Mapper注解二选一*/ @MapperScan("cn.yxh.springboot.mapper") public class App { public static void main(String[] args) { SpringApplication.run(App.class,args); } }