原创

spring整合mybatis(纯注解)

温馨提示:
本文最后更新于 2022年08月27日,已超过 38 天没有更新。若文章内的图片失效(无法正常加载),请留言反馈或直接联系我

我们在写一个独立的小项目的时候往往不需要引入mvc模块,仅仅需要操作数据库即可
所以就整合一下spring和mybatis,方便进行对数据库的操作

注意:文档中代码不全,评论填写邮箱,自动发送

一. 整体项目结构

file

二. 依赖相关

Spring核心依赖

spring-core,spring-context,spring-beans

        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-core,spring-context,spring-beans</artifactId>
            <version>5.2.19.RELEASE</version>
            <scope>compile</scope>
        </dependency>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-context</artifactId>
            <version>5.2.19.RELEASE</version>
            <scope>compile</scope>
        </dependency>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-beans</artifactId>
            <version>5.2.19.RELEASE</version>
            <scope>compile</scope>
        </dependency>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-jdbc</artifactId>
            <version>5.2.19.RELEASE</version>
            <scope>compile</scope>
        </dependency>

mybatis依赖

        <dependency>
            <groupId>org.mybatis</groupId>
            <artifactId>mybatis</artifactId>
            <version>3.5.6</version>
        </dependency>

spring整合mybatis整合依赖

        <dependency>
            <groupId>org.mybatis</groupId>
            <artifactId>mybatis-spring</artifactId>
            <version>2.0.6</version>
        </dependency>

MySQL驱动

        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <version>8.0.11</version>
        </dependency>

三. 配置文件

db.properties数据库参数配置文件

database.driver=com.mysql.cj.jdbc.Driver
database.url=jdbc:mysql://localhost/dblog?characterEncoding=utf8&characterSetResults=utf8&autoReconnect=true&failOverReadOnly=false
database.username=root
database.password=root

mybatis.properties Mybatis参数配置文件

mybatis.aliasesPackage=com.it1997.domain
mybatis.mapperLocations=classpath:mapper/*Mapper.xml

四. 配置类

SpringConfig配置类

@Configuration
@ComponentScan("com.it1997") // 开启Spring注解组件扫描
@MapperScan("com.it1997.mapper") // 扫描mapper接口地址
public class SpringConfig {

}

这个配置类指定了spring扫描的包路径和mapper接口路径

JdbcConfig配置类

这个配置类实现的功能是
读取properties配置文件
构造数据源
配置动态创建数据库连接的对象

@Configuration // 该注解声明该类是一个配置类,不能省略
@PropertySource({"classpath:db.properties","classpath:mybatis.properties"})
public class JdbcConfig {
    // 驱动名称
    @Value("${database.driver}")
    private String driverClassName;
    // 数据库连接地址
    @Value("${database.url}")
    private String url;
    // 数据库用户名
    @Value("${database.username}")
    private String username;
    // 数据库密码
    @Value("${database.password}")
    private String password;
    @Value("${mybatis.aliasesPackage}")
    public String aliasesPackage;
    @Value("${mybatis.mapperLocations}")
    private String mapperLocations;

    // 配置数据源
    @Bean("dataSource")
    public DataSource createDataSource() {
        // 创建Druid连接池对象
        DruidDataSource dataSource = new DruidDataSource();
        dataSource.setDriverClassName(driverClassName);
        dataSource.setUrl(url);
        dataSource.setUsername(username);
        dataSource.setPassword(password);
        dataSource.setDefaultAutoCommit(true); // 自动提交事务,默认true
        return dataSource;
    }

    // 配置创建数据库连接的对象
    @Bean
    public SqlSessionFactoryBean getSqlSessionFactoryBean(DataSource dataSource) throws IOException {
        SqlSessionFactoryBean sqlSessionFactoryBean=new SqlSessionFactoryBean();
        // 设置连接池
        sqlSessionFactoryBean.setDataSource(dataSource);
        // 实体类起别名
        sqlSessionFactoryBean.setTypeAliasesPackage(aliasesPackage);
        // 配置mapper.xml配置文件路径
        sqlSessionFactoryBean.setMapperLocations(new PathMatchingResourcePatternResolver().getResources(mapperLocations));
        return sqlSessionFactoryBean;
    }

}

五. 测试类

public static void main( String[] args ) {
        System.out.println( "Hello World!" );
        ApplicationContext applicationContext = new AnnotationConfigApplicationContext(SpringConfig.class);
        UserMapper userMapper = applicationContext.getBean(UserMapper.class);
        List<String> list = userMapper.selectUserId();
        System.out.println(list.toString());
    }
正文到此结束
本文目录