记录在eclipse用maven整合springboot+mybatis

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了。

3另一种写法
mybatis和spirng boot其实有个starter包的,可以直接引用即可使用。

<dependency>
      <groupId>org.mybatis.spring.boot</groupId>
      <artifactId>mybatis-spring-boot-starter</artifactId>
      <version>1.3.2</version>
</dependency>
然后稍稍的在yml配置以下数据源就可以了

spring:
  datasource:
    driver-class-name: com.mysql.jdbc.Driver
    url: jdbc:mysql://localhost:3306/demo?characterEncoding=utf8&useSSL=true
    username: root
    password: 123456
在启动类加个注解又完事了

@MapperScan(basePackages = "")
是不是很方便?
————————————————
版权声明:本文为CSDN博主「李同学09」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/qq_34243622/article/details/79483157

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值