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