无spring环境下使用druid+mybatis

410 阅读1分钟

目前流行的一些云产品,比如云函数,serverless使用时,使用java编写代码时,如果使用不了spring框架,只能单纯使用相关框架java api来实现访问数据mysql,redis,mq.....

1.项目pom文件

<dependencies>
    <dependency>
        <groupId>mysql</groupId>
        <artifactId>mysql-connector-java</artifactId>
        <version>8.0.28</version>
    </dependency>
    <dependency>
        <groupId>org.mybatis</groupId>
        <artifactId>mybatis</artifactId>
        <version>3.5.9</version>
    </dependency>
    <dependency>
        <groupId>com.alibaba</groupId>
        <artifactId>druid</artifactId>
        <version>1.2.8</version>
    </dependency>
</dependencies>

2.项目结构

Snipaste_2022-02-21_10-04-12.png

3.代码

public class MybatisMain {

    public static void main(String[] args) throws Exception {
        TAccountUserMapper accountUserMapper = getMapper(TAccountUserMapper.class);
        TAccountUser accountUser = accountUserMapper.selectByPrimaryKey(1);
    }
    //你也可以使用其它数据源,比较使用shardingJdbc框架的数据源...
    private static DataSource getDataSource() throws Exception {
        HashMap<String, String> dataSourceMap = new HashMap<>(8);
        DruidDataSource dataSource = new DruidDataSource();
        dataSource.setUrl("jdbc:mysql://xxxx:3306/db?useUnicode=true&characterEncoding=utf-8&autoReconnect=true&rewriteBatchedStatements=true&useSSL=false&serverTimezone=Asia/Shanghai");
        dataSource.setDriverClassName("com.mysql.jdbc.Driver");
        dataSource.setUsername("dbUserName");
        dataSource.setPassword("password");
        //其它参数
        dataSource.init();
        return dataSource;
    }


    private static SqlSessionFactory getSqlSessionFactory() throws Exception {
        //mybatis java api 获取sqlSessionFactory来操作sqlSession 参数mybatis官网
        JdbcTransactionFactory jdbcTransactionFactory = new JdbcTransactionFactory();
        Environment environment = new Environment("development",jdbcTransactionFactory,getDataSource());
        Configuration configuration = new Configuration();
        //设置mapper包路径
        configuration.addMappers("com.mybatis.java.api.mapper");
        configuration.setEnvironment(environment);
        return new SqlSessionFactoryBuilder().build(configuration);
    }


    private static <T> T getMapper(Class<T> clazz) throws Exception {
        SqlSession sqlSession = getSqlSessionFactory().openSession(true);
        return sqlSession.getMapper(clazz);
    }
}