1.新建一个spring boot项目,需要选择web和SQL下一些选项,如下图
2.修改pom文件,增加druid包
<!-- alibaba的druid数据库连接池 --> <dependency> <groupId>com.alibaba</groupId> <artifactId>druid-spring-boot-starter</artifactId> <version>1.1.9</version> </dependency>
3.修改application.properties配置,添加数据库配置
# 数据库访问配置 spring.datasource.type=com.alibaba.druid.pool.DruidDataSource spring.datasource.driver-class-name=com.mysql.jdbc.Driver spring.datasource.url=jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=gbk&zeroDateTimeBehavior=convertToNull&useSSL=false spring.datasource.username=root spring.datasource.password=123456 # 下面为连接池的补充设置,应用到上面所有数据源中 spring.datasource.initialSize=5 spring.datasource.minIdle=5 spring.datasource.maxActive=20 # 配置获取连接等待超时的时间 spring.datasource.maxWait=60000 # 配置间隔多久才进行一次检测,检测需要关闭的空闲连接,单位是毫秒 spring.datasource.timeBetweenEvictionRunsMillis=60000 # 配置一个连接在池中最小生存的时间,单位是毫秒 spring.datasource.minEvictableIdleTimeMillis=300000 spring.datasource.validationQuery=SELECT 1 FROM DUAL spring.datasource.testWhileIdle=true spring.datasource.testOnBorrow=false spring.datasource.testOnReturn=false # 配置监控统计拦截的filters,去掉后监控界面sql无法统计,'wall'用于防火墙 spring.datasource.filters=stat,wall,log4j spring.datasource.logSlowSql=true
4.修改application.properties配置,添加mybatis相关配置
# 注意:对应实体类的路径,多个package之间可以用逗号
mybatis.type-aliases-package=com.example.springbootMybatis.system.model;com.example.springbootMybatis.order.model
#注意:一定要对应mapper映射xml文件的所在路径
mybatis.mapper-locations=classpath:mapper/*.xml
5.启动类增加mybatis的包扫描
@MapperScan("com.example.springbootMybatis.*.dao") @EnableTransactionManagement @SpringBootApplication public class SpringbootMybatisApplication { public static void main(String[] args) { SpringApplication.run(SpringbootMybatisApplication.class, args); } }
6.在resources文件夹下建立mapper文件夹(和上面classpath:mapper/*.xml配置对应),在mapper文件夹下新建UserMapper.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.example.springbootMybatis.system.dao.UserDao" > <select id="get" parameterType="string" resultType="user" > select id,login_name loginName,login_time loginTime from user </select> </mapper>
由于上面配置了mybatis.type-aliases-package,所以resultType="user"这里不需要写类的全名。
7.写相应的service,dao,controller,
@RestController public class UserController { @Autowired private UserService userService; @GetMapping("/userInfo") public User getUserInfo() { return userService.getUserInfo("test"); } }
public class User { private String loginName; private Date loginTime; public String getLoginName() { return loginName; } public void setLoginName(String loginName) { this.loginName = loginName; } public Date getLoginTime() { return loginTime; } public void setLoginTime(Date loginTime) { this.loginTime = loginTime; } }
@Service public class UserService { @Autowired private UserDao userDao; public User getUserInfo(String loginName){ return userDao.get(loginName); } }
@Mapper public interface UserDao { User get(String loginName); }
8.整个项目结构如下:
注意启动类一定要放在第一级包目录下,如上图,不然不能扫描controller.
需要项目代码,可以发邮件zhuyuehua110@163.com