Springboot+MyBatis框架(2)

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的相关依赖

 
  1. <!-- 添加springboot继承 -->

  2. <parent>

  3. <groupId>org.springframework.boot</groupId>

  4. <artifactId>spring-boot-starter-parent</artifactId>

  5. <version>2.0.0.RELEASE</version>

  6. </parent>

  7.  
  8. <dependencies>

  9. <!-- 添加springMVC支持 -->

  10. <dependency>

  11. <groupId>org.springframework.boot</groupId>

  12. <artifactId>spring-boot-starter-web</artifactId>

  13. </dependency>

  14. <!-- MySQL -->

  15. <dependency>

  16. <groupId>mysql</groupId>

  17. <artifactId>mysql-connector-java</artifactId>

  18. </dependency>

  19. <!-- mybatis -->

  20. <dependency>

  21. <groupId>org.mybatis</groupId>

  22. <artifactId>mybatis-spring</artifactId>

  23. <version>1.3.0</version>

  24. </dependency>

  25. <dependency>

  26. <groupId>org.mybatis</groupId>

  27. <artifactId>mybatis</artifactId>

  28. <version>3.2.5</version>

  29. </dependency>

  30. <!-- dbcp连接池 -->

  31. <dependency>

  32. <groupId>commons-dbcp</groupId>

  33. <artifactId>commons-dbcp</artifactId>

  34. <version>1.4</version>

  35. </dependency>

  36. <!-- spring核心 -->

  37. <dependency>

  38. <groupId>org.springframework</groupId>

  39. <artifactId>spring-tx</artifactId>

  40. </dependency>

  41. <dependency>

  42. <groupId>org.springframework</groupId>

  43. <artifactId>spring-jdbc</artifactId>

  44. </dependency>

  45. <dependency>

  46. <groupId>org.springframework</groupId>

  47. <artifactId>spring-aspects</artifactId>

  48. </dependency>

  49. </dependencies>

  50.  
  51. <build>

  52. <finalName>BOOT</finalName>

  53. <plugins>

  54. <!-- 引入java编译器插件 -->

  55. <plugin>

  56. <groupId>org.apache.maven.plugins</groupId>

  57. <artifactId>maven-compiler-plugin</artifactId>

  58. <configuration>

  59. <source>1.8</source>

  60. <target>1.8</target>

  61. <compilerVersion>1.8</compilerVersion>

  62. <encoding>UTF-8</encoding>

  63. </configuration>

  64. </plugin>

  65. <!-- 资源文件拷贝插件 -->

  66. <plugin>

  67. <groupId>org.apache.maven.plugins</groupId>

  68. <artifactId>maven-resources-plugin</artifactId>

  69. <configuration>

  70. <encoding>UTF-8</encoding>

  71. </configuration>

  72. </plugin>

  73. </plugins>

  74. </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

 
  1. jdbc.driver=com.mysql.jdbc.Driver

  2. jdbc.url=jdbc:mysql://localhost:3306/boot?characterEncoding=utf-8

  3. jdbc.username=

  4. jdbc.password=

2.4.2BootApplication.java

 
  1. package net.stxy.one.config;

  2.  
  3. import javax.sql.DataSource;

  4.  
  5. import org.apache.commons.dbcp.BasicDataSource;

  6. import org.springframework.beans.factory.annotation.Value;

  7. import org.springframework.boot.autoconfigure.SpringBootApplication;

  8. import org.springframework.boot.builder.SpringApplicationBuilder;

  9. import org.springframework.context.annotation.Bean;

  10. import org.springframework.context.annotation.ComponentScan;

  11. import org.springframework.context.annotation.Configuration;

  12. import org.springframework.context.annotation.PropertySource;

  13.  
  14. @Configuration

  15. @PropertySource(value = { "classpath:jdbc.properties" })

  16. @ComponentScan(basePackages = "net.stxy.one")

  17. @SpringBootApplication

  18. public class BootApplication {

  19.  
  20. @Value("${jdbc.driver}")

  21. private String driverClassName;

  22.  
  23. @Value("${jdbc.url}")

  24. private String url;

  25.  
  26. @Value("${jdbc.username}")

  27. private String username;

  28.  
  29. @Value("${jdbc.password}")

  30. private String password;

  31.  
  32. // 配置数据源

  33. @Bean(destroyMethod = "close")

  34. public DataSource dataSource() {

  35. BasicDataSource basicDataSource = new BasicDataSource();

  36. basicDataSource.setDriverClassName(driverClassName);

  37. basicDataSource.setUrl(url);

  38. basicDataSource.setUsername(username);

  39. basicDataSource.setPassword(password);

  40. return basicDataSource;

  41. }

  42.  
  43. protected SpringApplicationBuilder springApplicationBuilder(SpringApplicationBuilder builder) {

  44. return builder.sources(BootApplication.class);

  45. }

  46.  
  47. }

2.4.3MybatisConfig.java

 
  1. package net.stxy.one.config;

  2.  
  3. import javax.sql.DataSource;

  4.  
  5. import org.mybatis.spring.SqlSessionFactoryBean;

  6. import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;

  7. import org.springframework.context.annotation.Bean;

  8. import org.springframework.context.annotation.Configuration;

  9.  
  10. @Configuration

  11. public class MybatisConfig {

  12.  
  13. @Bean

  14. @ConditionalOnMissingBean // 当容器里没有指定的Bean的情况下创建该对象

  15. public SqlSessionFactoryBean sqlSessionFactoryBean(DataSource dataSource) {

  16. SqlSessionFactoryBean sqlSessionFactoryBean = new SqlSessionFactoryBean();

  17. // 设置数据源

  18. sqlSessionFactoryBean.setDataSource(dataSource);

  19. // 设置别名包

  20. sqlSessionFactoryBean.setTypeAliasesPackage("net.stxy.one.bean");

  21. return sqlSessionFactoryBean;

  22. }

  23. }

2.4.4MybatisScannerConfig.java

 
  1. package net.stxy.one.config;

  2.  
  3. import org.mybatis.spring.mapper.MapperScannerConfigurer;

  4. import org.springframework.boot.autoconfigure.AutoConfigureAfter;

  5. import org.springframework.context.annotation.Bean;

  6. import org.springframework.context.annotation.Configuration;

  7.  
  8. @Configuration

  9. @AutoConfigureAfter(MybatisConfig.class) // 保证在MybatisConfig类实例化后才实例化此方法

  10. public class MybatisScannerConfig {

  11. // mapper接口的扫描器

  12. @Bean

  13. public MapperScannerConfigurer mapperScannerConfigurer() {

  14. MapperScannerConfigurer mapperScannerConfigurer = new MapperScannerConfigurer();

  15. mapperScannerConfigurer.setBasePackage("net.stxy.one.mapper");

  16. return mapperScannerConfigurer;

  17. }

  18. }

2.4.5编写过程

在Spring+SpringMVC+Mybatis整合时,用的是xml的配置,现在整合用的是spring的另一种配置方式--java配置方式。可以对照着以往的配置方式来写一个java配置类。例如 MybatisConfig.java编写

xml的配置方式

 
  1. <bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">

  2. <property name="dataSource" ref="dataSource"></property>

  3. <property name="typeAliasesPackage" value="net.stxy.one.model" />

  4. </bean>

再写java配置类时,需要SqlSessionFactoryBean实例化并返回,property就用实例化的类的set方法设置,如下

 
  1. @Bean

  2. public SqlSessionFactoryBean sqlSessionFactoryBean(DataSource dataSource) {

  3. SqlSessionFactoryBean sqlSessionFactoryBean = new SqlSessionFactoryBean();

  4. sqlSessionFactoryBean.setDataSource(dataSource);

  5. sqlSessionFactoryBean.setTypeAliasesPackage("net.stxy.one.bean");

  6. return sqlSessionFactoryBean;

  7. }

到此,mybatis已经整合完毕了。

2.5使用MVC结构测试程序

2.5.1创建数据库和数据表

 
  1. CREATE TABLE `tuser` (

  2. `id` int(11) NOT NULL AUTO_INCREMENT,

  3. `name` varchar(20) DEFAULT NULL,

  4. `password` varchar(18) DEFAULT NULL,

  5. PRIMARY KEY (`id`)

  6. ) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=utf8;

2.5.2创建实体类Tuser.java

 
  1. package net.stxy.one.bean;

  2.  
  3. public class Tuser {

  4. private int id;

  5. private String name;

  6. private String password;

  7. //get 和 set...

  8. }

2.5.3编写Mapper

2.5.3.1TuserMapper.java接口文件

 
  1. public interface TuserMapper {

  2. List<Tuser> getAllUser();

  3. }

2.5.3.2TuserMapper.xml

 
  1. <?xml version="1.0" encoding="UTF-8"?>

  2. <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">

  3. <mapper namespace="net.stxy.one.mapper.TuserMapper">

  4. <select id="getAllUser" resultType="Tuser">

  5. select * from tuser

  6. </select>

  7. </mapper>

2.5.4编写service

2.5.4.1TuserService.java接口文件

 
  1. public interface TuserService {

  2. List<Tuser> getAllUser();

  3. }

2.5.4.2TuserServiceImpl.java 接口实现文件

 
  1. @Service("tuserService")

  2. public class TuserServiceImpl implements TuserService {

  3. @Autowired

  4. private TuserMapper tuserMapper;

  5.  
  6. @Override

  7. public List<Tuser> getAllUser() {

  8. return tuserMapper.getAllUser();

  9. }

  10.  
  11. }

2.5.5编写控制器TuserController.java

 
  1. @Controller

  2. public class TuserController {

  3. @Autowired

  4. private TuserService tuerService;

  5.  
  6. @RequestMapping("/tuser")

  7. @ResponseBody

  8. public String getUser() {

  9. List<Tuser> users = tuerService.getAllUser();

  10. return users.toString();

  11. }

  12. }

2.6编写项目入口文件MainApplication.java

 
  1. public class MainApplication {

  2. public static void main(String[] args) {

  3. SpringApplication.run(BootApplication.class, args);

  4. }

  5. }

2.7启动并测试

直接启动MainApplication,因为springboot内置了tomcat,所以可以直接运行。运行后,在浏览器输入localhost:8080/tuser进行测试

这样就整合完mybatis了。

原地址:https://blog.csdn.net/qq_34243622/article/details/79483157

猜你喜欢

转载自blog.csdn.net/qq_42060456/article/details/81408752
今日推荐