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.csdn.net/qq_34243622/article/details/79483157