1.开发环境
Eclipse版本:Oxygen.2 Release (4.7.2)
maven版本:3.5.0
jdk版本:1.8
mysql版本:mysql-5.5.58-winx64
2.过程
2.1 创建maven项目
输入Group Id 和Artifact Id,点击finish就可以创建maven项目了。(因为我已经创建了,所以会提示BOOT项目已存在)
2.2pom.xml里导入spring boot支持和Mybatis的相关依赖
-
<!-- 添加springboot继承 -->
-
<parent>
-
<groupId>org.springframework.boot</groupId>
-
<artifactId>spring-boot-starter-parent</artifactId>
-
<version>2.0.0.RELEASE</version>
-
</parent>
-
<dependencies>
-
<!-- 添加springMVC支持 -->
-
<dependency>
-
<groupId>org.springframework.boot</groupId>
-
<artifactId>spring-boot-starter-web</artifactId>
-
</dependency>
-
<!-- MySQL -->
-
<dependency>
-
<groupId>mysql</groupId>
-
<artifactId>mysql-connector-java</artifactId>
-
</dependency>
-
<!-- mybatis -->
-
<dependency>
-
<groupId>org.mybatis</groupId>
-
<artifactId>mybatis-spring</artifactId>
-
<version>1.3.0</version>
-
</dependency>
-
<dependency>
-
<groupId>org.mybatis</groupId>
-
<artifactId>mybatis</artifactId>
-
<version>3.2.5</version>
-
</dependency>
-
<!-- dbcp连接池 -->
-
<dependency>
-
<groupId>commons-dbcp</groupId>
-
<artifactId>commons-dbcp</artifactId>
-
<version>1.4</version>
-
</dependency>
-
<!-- spring核心 -->
-
<dependency>
-
<groupId>org.springframework</groupId>
-
<artifactId>spring-tx</artifactId>
-
</dependency>
-
<dependency>
-
<groupId>org.springframework</groupId>
-
<artifactId>spring-jdbc</artifactId>
-
</dependency>
-
<dependency>
-
<groupId>org.springframework</groupId>
-
<artifactId>spring-aspects</artifactId>
-
</dependency>
-
</dependencies>
-
<build>
-
<finalName>BOOT</finalName>
-
<plugins>
-
<!-- 引入java编译器插件 -->
-
<plugin>
-
<groupId>org.apache.maven.plugins</groupId>
-
<artifactId>maven-compiler-plugin</artifactId>
-
<configuration>
-
<source>1.8</source>
-
<target>1.8</target>
-
<compilerVersion>1.8</compilerVersion>
-
<encoding>UTF-8</encoding>
-
</configuration>
-
</plugin>
-
<!-- 资源文件拷贝插件 -->
-
<plugin>
-
<groupId>org.apache.maven.plugins</groupId>
-
<artifactId>maven-resources-plugin</artifactId>
-
<configuration>
-
<encoding>UTF-8</encoding>
-
</configuration>
-
</plugin>
-
</plugins>
-
</build>
这是完整的pom.xml代码文件
2.3完整项目的目录
bean:实体类包
config:java配置类
controller:控制层
mapper:持久
service:事务逻辑接口
service.impl:事务逻辑实现类
MainApplication.java:项目入口文件
2.4编写config包下的java配置
2.4.1在src/main/resources下创建jdbc.properties
-
jdbc.driver=com.mysql.jdbc.Driver
-
jdbc.url=jdbc:mysql://localhost:3306/boot?characterEncoding=utf-8
-
jdbc.username=
-
jdbc.password=
2.4.2BootApplication.java
-
package net.stxy.one.config;
-
import javax.sql.DataSource;
-
import org.apache.commons.dbcp.BasicDataSource;
-
import org.springframework.beans.factory.annotation.Value;
-
import org.springframework.boot.autoconfigure.SpringBootApplication;
-
import org.springframework.boot.builder.SpringApplicationBuilder;
-
import org.springframework.context.annotation.Bean;
-
import org.springframework.context.annotation.ComponentScan;
-
import org.springframework.context.annotation.Configuration;
-
import org.springframework.context.annotation.PropertySource;
-
@Configuration
-
@PropertySource(value = { "classpath:jdbc.properties" })
-
@ComponentScan(basePackages = "net.stxy.one")
-
@SpringBootApplication
-
public class BootApplication {
-
@Value("${jdbc.driver}")
-
private String driverClassName;
-
@Value("${jdbc.url}")
-
private String url;
-
@Value("${jdbc.username}")
-
private String username;
-
@Value("${jdbc.password}")
-
private String password;
-
// 配置数据源
-
@Bean(destroyMethod = "close")
-
public DataSource dataSource() {
-
BasicDataSource basicDataSource = new BasicDataSource();
-
basicDataSource.setDriverClassName(driverClassName);
-
basicDataSource.setUrl(url);
-
basicDataSource.setUsername(username);
-
basicDataSource.setPassword(password);
-
return basicDataSource;
-
}
-
protected SpringApplicationBuilder springApplicationBuilder(SpringApplicationBuilder builder) {
-
return builder.sources(BootApplication.class);
-
}
-
}
2.4.3MybatisConfig.java
-
package net.stxy.one.config;
-
import javax.sql.DataSource;
-
import org.mybatis.spring.SqlSessionFactoryBean;
-
import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
-
import org.springframework.context.annotation.Bean;
-
import org.springframework.context.annotation.Configuration;
-
@Configuration
-
public class MybatisConfig {
-
@Bean
-
@ConditionalOnMissingBean // 当容器里没有指定的Bean的情况下创建该对象
-
public SqlSessionFactoryBean sqlSessionFactoryBean(DataSource dataSource) {
-
SqlSessionFactoryBean sqlSessionFactoryBean = new SqlSessionFactoryBean();
-
// 设置数据源
-
sqlSessionFactoryBean.setDataSource(dataSource);
-
// 设置别名包
-
sqlSessionFactoryBean.setTypeAliasesPackage("net.stxy.one.bean");
-
return sqlSessionFactoryBean;
-
}
-
}
2.4.4MybatisScannerConfig.java
-
package net.stxy.one.config;
-
import org.mybatis.spring.mapper.MapperScannerConfigurer;
-
import org.springframework.boot.autoconfigure.AutoConfigureAfter;
-
import org.springframework.context.annotation.Bean;
-
import org.springframework.context.annotation.Configuration;
-
@Configuration
-
@AutoConfigureAfter(MybatisConfig.class) // 保证在MybatisConfig类实例化后才实例化此方法
-
public class MybatisScannerConfig {
-
// mapper接口的扫描器
-
@Bean
-
public MapperScannerConfigurer mapperScannerConfigurer() {
-
MapperScannerConfigurer mapperScannerConfigurer = new MapperScannerConfigurer();
-
mapperScannerConfigurer.setBasePackage("net.stxy.one.mapper");
-
return mapperScannerConfigurer;
-
}
-
}
2.4.5编写过程
在Spring+SpringMVC+Mybatis整合时,用的是xml的配置,现在整合用的是spring的另一种配置方式--java配置方式。可以对照着以往的配置方式来写一个java配置类。例如 MybatisConfig.java编写
xml的配置方式
-
<bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
-
<property name="dataSource" ref="dataSource"></property>
-
<property name="typeAliasesPackage" value="net.stxy.one.model" />
-
</bean>
再写java配置类时,需要SqlSessionFactoryBean实例化并返回,property就用实例化的类的set方法设置,如下
-
@Bean
-
public SqlSessionFactoryBean sqlSessionFactoryBean(DataSource dataSource) {
-
SqlSessionFactoryBean sqlSessionFactoryBean = new SqlSessionFactoryBean();
-
sqlSessionFactoryBean.setDataSource(dataSource);
-
sqlSessionFactoryBean.setTypeAliasesPackage("net.stxy.one.bean");
-
return sqlSessionFactoryBean;
-
}
到此,mybatis已经整合完毕了。
2.5使用MVC结构测试程序
2.5.1创建数据库和数据表
-
CREATE TABLE `tuser` (
-
`id` int(11) NOT NULL AUTO_INCREMENT,
-
`name` varchar(20) DEFAULT NULL,
-
`password` varchar(18) DEFAULT NULL,
-
PRIMARY KEY (`id`)
-
) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=utf8;
2.5.2创建实体类Tuser.java
-
package net.stxy.one.bean;
-
public class Tuser {
-
private int id;
-
private String name;
-
private String password;
-
//get 和 set...
-
}
2.5.3编写Mapper
2.5.3.1TuserMapper.java接口文件
-
public interface TuserMapper {
-
List<Tuser> getAllUser();
-
}
2.5.3.2TuserMapper.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="net.stxy.one.mapper.TuserMapper">
-
<select id="getAllUser" resultType="Tuser">
-
select * from tuser
-
</select>
-
</mapper>
2.5.4编写service
2.5.4.1TuserService.java接口文件
-
public interface TuserService {
-
List<Tuser> getAllUser();
-
}
2.5.4.2TuserServiceImpl.java 接口实现文件
-
@Service("tuserService")
-
public class TuserServiceImpl implements TuserService {
-
@Autowired
-
private TuserMapper tuserMapper;
-
@Override
-
public List<Tuser> getAllUser() {
-
return tuserMapper.getAllUser();
-
}
-
}
2.5.5编写控制器TuserController.java
-
@Controller
-
public class TuserController {
-
@Autowired
-
private TuserService tuerService;
-
@RequestMapping("/tuser")
-
@ResponseBody
-
public String getUser() {
-
List<Tuser> users = tuerService.getAllUser();
-
return users.toString();
-
}
-
}
2.6编写项目入口文件MainApplication.java
-
public class MainApplication {
-
public static void main(String[] args) {
-
SpringApplication.run(BootApplication.class, args);
-
}
-
}
2.7启动并测试
直接启动MainApplication,因为springboot内置了tomcat,所以可以直接运行。运行后,在浏览器输入localhost:8080/tuser进行测试
这样就整合完mybatis了。
原地址:https://blog.youkuaiyun.com/qq_34243622/article/details/79483157