SpringBoot+Mybatis纯净版

今天带小飞飞飞贼带大家整理一波 Springboot+Mybatis,注意 没有其他杂七杂八,只有单纯的mybatis整合。

首先什么是SpringBoot呢?我了解到的SpringBoot是Spring社区较新的一个项目,大大的简化了配置,在上一篇中我们整合了SSM+Redis,在配置文件上,我们都花了好久,好多功夫。那么在实际应用中,时间这么宝贵,怎么能花时在这些配置上面呢?于是我们今天就来学习一下Springboot+Mybatis的配置。我们采用java配置的方式,不在使用Xml文件配置的方式,这也是Spring4.X以后,Spring官方推荐的配置。

还是一样,话不多说,先上代码:

  1. 数据库如下(SqlServer)

  2. 我的项目目录
  3. Maven的Pom文件如下
  4. <!-- 必须将 parent 设置为Spring Boot 的parent,其中包含大量的默认配置,简化开发 -->
        <parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>1.5.2.RELEASE</version>
</parent>

<groupId>SpringBootDemo2</groupId>
<artifactId>SpringBootDemo2</artifactId>
<version>0.0.1-SNAPSHOT</version>
<packaging>war</packaging>
<name />
<description />
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>


<!-- mybatis版本号 -->
<mybatis.version>3.4.1</mybatis.version>
<!-- mybatis和spring整合的jar -->
<mybatis.spring.version>1.3.1</mybatis.spring.version>


<!-- mysql链接的jar -->
<mysql.connector.version>5.0.8</mysql.connector.version>
<!-- C3P0连接池 版本 -->
<c3p0-version>0.9.2.1</c3p0-version>
<!-- sqlServer connector -->
<sqljdbc4-version>4.0</sqljdbc4-version>
</properties>
<!-- 导入SpringBoot对web的支持 -->
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>


<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-jdbc</artifactId>
</dependency>


<!-- 使用内嵌的tomcat -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-tomcat</artifactId>
<!-- 开发时候使用内置的tomcat 发布时不使用 -->
<scope>provided</scope>
</dependency>




<!-- c3p0 star -->
<dependency>
<groupId>com.mchange</groupId>
<artifactId>c3p0</artifactId>
<version>${c3p0-version}</version>
</dependency>
<dependency>
<groupId>com.mchange</groupId>
<artifactId>mchange-commons-java</artifactId>
<version>0.2.12</version>
</dependency>
<!-- c3p0 star -->


<!-- sqlServer-connector -->
<dependency>
<groupId>com.microsoft.sqlserver</groupId>
<artifactId>sqljdbc4</artifactId>
<version>${sqljdbc4-version}</version>
</dependency>
<!-- sqlServer-connector -->


<!-- mybatis start -->
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis</artifactId>
<version>${mybatis.version}</version>
</dependency>


<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis-spring</artifactId>
<version>${mybatis.spring.version}</version>
</dependency>
<!--mybatis end -->


</dependencies>
<build>
<plugins>
<plugin>
<artifactId>maven-war-plugin</artifactId>
</plugin>
<plugin>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<source>1.7</source>
<target>1.7</target>
</configuration>
</plugin>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
</project>

  1. 对SpringBoot的入口类配置
  2. 接下来就是配置SpringBoot和Mybatis了,其实java配置和Xml配置很像,只是把在Xml文件中的配置转化到java里面来,需要注意的是@Configuration这个在类上的注解就相当于把这个类当成是一个XMl配置,@Bean(name = "dataSource") 这个配置 就相当于 <bean name="dataSource" class=".....">....</bean>....(偷个小懒,哈哈),接下来是配置C3P0数据源,SqlSessionFactory等等。@Value注解就是把Properties中的配置读取出来,然后赋值到各个属性上,然后调用就好了。值得一提的是网络上好多整合中提供  new ClassPathResource("classpath:mybatis/mybatisConfig.xml")   这个方法来加载mybatis的配置文件,但是我找不到,会报空指针异常。

  3. @Configuration
    public class Spring_Dao {
    @Value(value = "${jdbc.driverClass}")
    private String driverClass;
    @Value(value = "${jdbc.jdbcUrl}")
    private String jdbcUrl;
    @Value(value = "${jdbc.user}")
    private String user;
    @Value(value = "${jdbc.password}")
    private String password;


    /**
    * 配置数据源

    * @return
    * @throws PropertyVetoException
    */
    @Bean(name = "dataSource")
    public ComboPooledDataSource dataSource() {
    try {
    ComboPooledDataSource dataSources = new ComboPooledDataSource();
    dataSources.setDriverClass(driverClass);
    dataSources.setJdbcUrl(jdbcUrl);
    dataSources.setUser(user);
    dataSources.setPassword(password);
    return dataSources;
    } catch (PropertyVetoException e) {
    e.printStackTrace();
    throw new RuntimeException(e);
    }
    }


    /**
    * 配置SqlSessionFactory

    * @return
    */
    @Bean(name = "sqlSessionFactory")
    public SqlSessionFactory sqlSessionFactoryBean() {
    SqlSessionFactoryBean bean = new SqlSessionFactoryBean();
    bean.setConfigLocation(new DefaultResourceLoader().getResource("classpath:mybatis/mybatisConfig.xml"));
    //new ClassPathResource("classpath:mybatis/mybatisConfig.xml")  网络上很多这个,但是我读取不到
    bean.setDataSource(dataSource());
    try {
    return bean.getObject();
    } catch (Exception e) {
    e.printStackTrace();
    throw new RuntimeException(e);
    }
    }
    }
  4. 接下来就是配置mapper扫描器了
  5. @Configuration
    // 由于MapperScannerConfigurer执行的比较早,所以必须有下面的注解
    @AutoConfigureAfter(Spring_Dao.class)
    public class Spring_MapperScan {
    /**
    * 配置Mapper扫描

    * @return
    */
    @Bean
    public MapperScannerConfigurer mapperScannerConfigurer() {
    MapperScannerConfigurer mapperScannerConfigurer = new MapperScannerConfigurer();
    mapperScannerConfigurer.setBasePackage("com.itheima.mapper");
    mapperScannerConfigurer.setSqlSessionFactoryBeanName("sqlSessionFactory");
    return mapperScannerConfigurer;
    }
    }
  6. 到这里差不多已经配置好了。怎么样配置还是蛮简单的把,也就是把Xml转化为java配置,SpringBoot的相关介绍,在这一篇中就不多做介绍了。
  7. 测试类如下

  8. 运行结果如下,运行入口函数SpringBootDemoApplication,然后在浏览器输入http://localhost:8080/findAllUser.action

  9. 控制台打印结果如下(偷个小懒,就不把东西打印到页面啦)

猜你喜欢

转载自blog.csdn.net/qq_34509230/article/details/78516825