一个完整的springboot项目,功能是在数据库查一条数据
项目结构
效果图
项目依赖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> <parent> <groupId>com.baizhi</groupId> <artifactId>spring</artifactId> <version>1.0-SNAPSHOT</version> </parent> <groupId>com.baizhi</groupId> <artifactId>spring-day05</artifactId> <version>1.0-SNAPSHOT</version> <packaging>war</packaging> <name>spring-day05 Maven Webapp</name> <!-- FIXME change it to the project's website --> <url>http://www.example.com</url> <dependencies> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>4.12</version> <scope>test</scope> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-test</artifactId> <version>5.2.8.RELEASE</version> </dependency> <!-- 数据库驱动依赖--> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <version>5.1.48</version> </dependency> <!-- 连接池依赖--> <dependency> <groupId>com.alibaba</groupId> <artifactId>druid</artifactId> <version>1.1.14</version> </dependency> <!-- mybatis依赖--> <dependency> <groupId>org.mybatis</groupId> <artifactId>mybatis</artifactId> <version>3.5.4</version> </dependency> <dependency> <groupId>org.slf4j</groupId> <artifactId>slf4j-log4j12</artifactId> <version>1.7.30</version> </dependency> <!-- servlet+jsp+jstl依赖--> <dependency> <groupId>javax.servlet</groupId> <artifactId>javax.servlet-api</artifactId> <version>3.1.0</version> <scope>provided</scope> </dependency> <dependency> <groupId>javax.servlet.jsp</groupId> <artifactId>javax.servlet.jsp-api</artifactId> <version>2.2.1</version> <scope>provided</scope> </dependency> <dependency> <groupId>jstl</groupId> <artifactId>jstl</artifactId> <version>1.2</version> </dependency> <!-- https://mvnrepository.com/artifact/taglibs/standard --> <dependency> <groupId>taglibs</groupId> <artifactId>standard</artifactId> <version>1.1.2</version> </dependency> <!-- struts2 依赖--> <dependency> <groupId>org.apache.struts</groupId> <artifactId>struts2-core</artifactId> <version>2.3.16.3</version> </dependency> <dependency> <groupId>org.apache.struts</groupId> <artifactId>struts2-json-plugin</artifactId> <version>2.3.16.3</version> </dependency> <!-- spring依赖--> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-context</artifactId> <version>5.2.8.RELEASE</version> </dependency> <dependency> <groupId>org.aspectj</groupId> <artifactId>aspectjweaver</artifactId> <version>1.9.5</version> </dependency> <!-- spring整合mybatis依赖--> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-jdbc</artifactId> <version>5.2.8.RELEASE</version> </dependency> <dependency> <groupId>org.mybatis</groupId> <artifactId>mybatis-spring</artifactId> <version>2.0.4</version> </dependency> <!-- spring整合struts2依赖--> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-web</artifactId> <version>5.2.8.RELEASE</version> </dependency> <dependency> <groupId>org.apache.struts</groupId> <artifactId>struts2-spring-plugin</artifactId> <version>2.3.16.3</version> </dependency> </dependencies> <build> <finalName>spring-day05</finalName> <pluginManagement><!-- lock down plugins versions to avoid using Maven defaults (may be moved to parent pom) --> <plugins> <plugin> <artifactId>maven-clean-plugin</artifactId> <version>3.1.0</version> </plugin> <!-- see http://maven.apache.org/ref/current/maven-core/default-bindings.html#Plugin_bindings_for_war_packaging --> <plugin> <artifactId>maven-resources-plugin</artifactId> <version>3.0.2</version> </plugin> <plugin> <artifactId>maven-compiler-plugin</artifactId> <version>3.8.0</version> </plugin> <plugin> <artifactId>maven-surefire-plugin</artifactId> <version>2.22.1</version> </plugin> <plugin> <artifactId>maven-war-plugin</artifactId> <version>3.2.2</version> </plugin> <plugin> <artifactId>maven-install-plugin</artifactId> <version>2.5.2</version> </plugin> <plugin> <artifactId>maven-deploy-plugin</artifactId> <version>2.8.2</version> </plugin> </plugins> </pluginManagement> </build> </project>
sql
create table t_user(
id int primary key auto_increment,
username varchar(20),
password varchar(20)
)
insert into t_user values(1,123,111)
select * from t_user;
User(entity)
package com.baizhi.entity; /** * @Package: com.baizhi.entity * @ClassName: User * @Author: alex * @CreateTime: 2020/11/7 19:03 * @Description: */ public class User { private Integer id; private String username; private String password; public User() { } public User(Integer id, String username, String password) { this.id = id; this.username = username; this.password = password; } public Integer getId() { return id; } public void setId(Integer id) { this.id = id; } public String getUsername() { return username; } public void setUsername(String username) { this.username = username; } public String getPassword() { return password; } public void setPassword(String password) { this.password = password; } @Override public String toString() { return "User{" + "id=" + id + ", username='" + username + '\'' + ", password='" + password + '\'' + '}'; } }
UserDao(Interface)
package com.baizhi.dao; import com.baizhi.entity.User; /** * @Package: com.baizhi.dao * @ClassName: UserDao * @Author: alex * @CreateTime: 2020/11/7 19:23 * @Description: */ public interface UserDao { User selectById(Integer id); }
UserDao.xml(Mapper)
<?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.baizhi.dao.UserDao"> <resultMap id="userResultMap" type="com.baizhi.entity.User"> <id property="id" column="id"/> <result property="username" column="username"/> <result property="password" column="password"/> </resultMap> <select id="selectById" resultMap="userResultMap"> select * from t_user where id = #{id} </select> </mapper>
UserService(Interface)
package com.baizhi.service; import com.baizhi.entity.User; /** * @Package: com.baizhi.service * @ClassName: UserService * @Author: alex * @CreateTime: 2020/11/7 19:20 * @Description: */ public interface UserService { User selectById(Integer id); }
UserServiceImpl
package com.baizhi.service.impl; import com.baizhi.dao.UserDao; import com.baizhi.entity.User; import com.baizhi.service.UserService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; /** * @Package: com.baizhi.service.impl * @ClassName: UserServiceImpl * @Author: alex * @CreateTime: 2020/11/7 19:20 * @Description: */ @Service @Transactional public class UserServiceImpl implements UserService { @Autowired private UserDao userDao; public void setUserDao(UserDao userDao) { this.userDao = userDao; } public User selectById(Integer id){ return userDao.selectById(id); } }
UserController(Controller)
package com.baizhi.controller; import com.baizhi.entity.User; import com.baizhi.service.UserService; import org.apache.ibatis.annotations.ResultMap; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.ResponseBody; import javax.xml.ws.RequestWrapper; import java.util.HashMap; import java.util.Map; /** * @Package: com.baizhi.controller * @ClassName: UserController * @Author: alex * @CreateTime: 2020/11/8 9:58 * @Description: */ @Controller public class UserController { @Autowired private UserService userService; @RequestMapping("/login") @ResponseBody public Map<Object,Object> selectById(Integer id){ HashMap<Object, Object> map = new HashMap<>(); User user = userService.selectById(id); map.put("user",user); return map; } }
springbootApplication
package com.baizhi; import org.mybatis.spring.annotation.MapperScan; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; /** * @Package: com.baizhi * @ClassName: springbootday_03Application * @Author: alex * @CreateTime: 2020/11/7 19:15 * @Description: */ @SpringBootApplication //配置扫描mapper的包 @MapperScan("com.baizhi.dao") public class springbootday_03Application { public static void main(String[] args) { SpringApplication.run(springbootday_03Application.class,args); } }
application.yml
#配置文件初始化和文件名字 server: port: 8989 servlet: context-path: /springbootday_03 #配置jsp视图解析器 spring: profiles: active: online mvc: view: prefix: / suffix: .jsp #连接池相关配置 datasource: driver-class-name: com.mysql.jdbc.Driver url: jdbc:mysql://localhost:3306/alex?useUnicode=true&characterEncoding=utf-8 username: root password: admin type: com.alibaba.druid.pool.DruidDataSource #mybaits相关配置 mybatis: type-aliases-package: com.baizhi.entity mapper-locations: classpath:com/baizhi/dao/*Dao.xml