目录:
- 1、搭建maven项目(工具:IDEA 2019.2.3)
- 2、在maven项目中搭建SpringBoot框架
- 3、maven项目中使用jsp(SpringBoot框架)
- 4、自定义SpringBoot配置
- 5、自定义项目启动banner显示(SpringBoot)
- 6、整合MyBatis Plus+MySQL(SpringBoot框架)
- 注:Maven pom.xml详解
1、在pom.xml文件中导入以下包
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatisplus-spring-boot-starter</artifactId>
<version>1.0.5</version>
</dependency>
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus</artifactId>
<version>2.1.9</version>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.46</version>
</dependency>
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>druid-spring-boot-starter</artifactId>
<version>1.1.9</version>
</dependency>
2、配置application.xml
spring:
datasource:
type: com.alibaba.druid.pool.DruidDataSource
driverClassName: com.mysql.jdbc.Driver
druid:
test:
url: jdbc:mysql://192.168.1.1:3306/test?allowMultiQueries=true&com.mysql.jdbc.faultInjection.serverCharsetIndex=45
username: root
password: 123456
#mybatis
mybatis-plus:
mapper-locations: classpath:mapper/*.xml #路径为src/main/resources/mapper
typeAliasesPackage: com.lzw.entity
global-config:
#主键类型:0-数据库自增id, 1-用户输入id,2-全局唯一ID (数字类型唯一id), 3-全局唯一id uuid
id-type: 2
#字段策略:0-忽略判断,1-非NULL判断,2-非空判断
field-strategy: 2
#驼峰下划线转换
db-column-underline: true
#刷新mapper
refresh-mapper: true
#逻辑删除配置
logic-delete-value: -1
logic-not-delete-value: 0
#自定义SQL注入器
sql-injector: com.baomidou.mybatisplus.mapper.LogicSqlInjector
configuration:
map-underscore-to-camel-case: true
cache-enabled: false
call-setters-on-nulls: true
3、配置数据源,创建DynamicDataSourceConfig.java和DynamicDataSource.java
DynamicDataSourceConfig.java:
import com.alibaba.druid.spring.boot.autoconfigure.DruidDataSourceBuilder;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.Primary;
import javax.sql.DataSource;
import java.util.HashMap;
import java.util.Map;
/**
* 配置数据源
*/
@Configuration
public class DynamicDataSourceConfig {
private static String DATA_SOURCE = "test";
@Bean
@ConfigurationProperties("spring.datasource.druid.test")
public DataSource firstDataSource(){
return DruidDataSourceBuilder.create().build();
}
@Bean
@Primary
public DynamicDataSource dataSource(DataSource dataSource) {
Map<Object, Object> targetDataSources = new HashMap<>();
targetDataSources.put(DATA_SOURCE, dataSource);
return new DynamicDataSource(dataSource, targetDataSources);
}
}
DynamicDataSource.java:
import org.springframework.jdbc.datasource.lookup.AbstractRoutingDataSource;
import javax.sql.DataSource;
import java.util.Map;
/**
* 动态数据源
*/
public class DynamicDataSource extends AbstractRoutingDataSource {
private static final ThreadLocal<String> contextHolder = new ThreadLocal<>();
public DynamicDataSource(DataSource defaultTargetDataSource, Map<Object, Object> targetDataSources) {
super.setDefaultTargetDataSource(defaultTargetDataSource);
super.setTargetDataSources(targetDataSources);
super.afterPropertiesSet();
}
@Override
protected Object determineCurrentLookupKey() {
return getDataSource();
}
public static String getDataSource() {
return contextHolder.get();
}
}
4、创建测试类
①、创建实体类User.java
package com.lzw.entity;
public class User {
private Long id;
private String name;
public Long getId() {
return id;
}
public void setId(Long id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
②、创建dao层UserDao.java
package com.lzw.dao;
import com.baomidou.mybatisplus.mapper.BaseMapper;
import com.lzw.entity.User;
import org.apache.ibatis.annotations.Mapper;
/**
* 此处不添加@Mapper则需要在Application.java中添加注解@MapperScan("com.lzw.dao")进行统一配置
*/
@Mapper
public interface UserDao extends BaseMapper<User> {
}
③、创建服务层 UserService.java和实现类UserServiceImpl.java
UserService.java:
package com.lzw.service;
import com.baomidou.mybatisplus.service.IService;
import com.lzw.entity.User;
import java.util.List;
public interface UserService extends IService<User> {
List<User> queryUserList();
}
UserServiceImpl.java:
package com.lzw.service.impl;
import com.baomidou.mybatisplus.mapper.EntityWrapper;
import com.baomidou.mybatisplus.service.impl.ServiceImpl;
import com.lzw.dao.UserDao;
import com.lzw.entity.User;
import com.lzw.service.UserService;
import org.springframework.stereotype.Service;
import java.util.List;
@Service
public class UserServiceImpl extends ServiceImpl<UserDao, User> implements UserService {
public List<User> queryUserList() {
return this.selectList(new EntityWrapper<User>());
}
}
④、创建Controller
package com.lzw.controller;
import com.lzw.entity.User;
import com.lzw.service.UserService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import java.util.List;
@RestController
public class TestController {
@Autowired
private UserService userService;
@RequestMapping("/test")
public List<User> test() {
return userService.queryUserList();
}
}
5、启动项目并访问
自定义sql语句:
①、src/main/resources/mapper路径下创建测试xml,如图
UserDao.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.lzw.dao.UserDao">
<select id="queryList" resultType="com.lzw.entity.User">
select * from `user`
</select>
</mapper>
②、在dao层编写代码
@Mapper
public interface UserDao extends BaseMapper<User> {
List<User> queryList(@Param("name") String name); // 方法名称须和UserDao.xml中的id名称一致,其中@Param("name")单个参数可不写,多个必须写
}
③、调用dao层方法,请求接口即可实现自定义sql查询