美文网首页
Java 数据库之Mybatis(二) Console app使

Java 数据库之Mybatis(二) Console app使

作者: googoler | 来源:发表于2020-08-28 11:23 被阅读0次

上章 Java 数据库之Mybatis(一) Console app使用Mybatis,这节集成一下Druid连接池:

目录结构

所有包路径在这里查看:

image.png

新增加的构建:

  1. 增加的依赖项(dependencies):
    • 缓存池 druid
    • 日志库 logback
      pom文件如下:
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>

    <groupId>org.example</groupId>
    <artifactId>ConsoleMybatisDruid</artifactId>
    <version>1.0-SNAPSHOT</version>

    <packaging>jar</packaging>

    <properties>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
        <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
        <maven.compiler.source>11</maven.compiler.source>
        <maven.compiler.target>11</maven.compiler.target>
        <java.version>11</java.version>
    </properties>


    <dependencies>

        <!-- https://mvnrepository.com/artifact/com.h2database/h2 -->
        <dependency>
            <groupId>com.h2database</groupId>
            <artifactId>h2</artifactId>
            <version>1.4.200</version>
        </dependency>

        <!-- https://mvnrepository.com/artifact/org.mybatis/mybatis -->
        <dependency>
            <groupId>org.mybatis</groupId>
            <artifactId>mybatis</artifactId>
            <version>3.5.5</version>
        </dependency>

        <!-- https://mvnrepository.com/artifact/com.alibaba/druid -->
        <dependency>
            <groupId>com.alibaba</groupId>
            <artifactId>druid</artifactId>
            <version>1.1.23</version>
        </dependency>


        <!-- https://mvnrepository.com/artifact/ch.qos.logback/logback-classic -->
        <dependency>
            <groupId>ch.qos.logback</groupId>
            <artifactId>logback-classic</artifactId>
            <version>1.2.3</version>
            <scope>runtime</scope>
        </dependency>


    </dependencies>


</project>
  1. 新增类 DruidDataSourceFactory 如下:
package config;

import com.alibaba.druid.pool.DruidDataSource;
import org.apache.ibatis.datasource.unpooled.UnpooledDataSourceFactory;

public class DruidDataSourceFactory extends UnpooledDataSourceFactory {
    public DruidDataSourceFactory() {
        dataSource = new DruidDataSource();
    }
}

  1. 修改 mybatis-config 如下:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE configuration
        PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
        "http://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration>
    <environments default="test">
        <environment id="test">
            <transactionManager type="JDBC"/>
            <dataSource type="config.DruidDataSourceFactory">
                <property name="driverClass" value="org.h2.Driver"/>
                <property name="url" value="jdbc:h2:file:E:\\temp\\h2test"/>
                <property name="username" value="admin"/>
                <property name="password" value="admin"/>
                <property name="testWhileIdle" value="false" />
            </dataSource>
        </environment>
    </environments>

    <!-- 映射器 -->
    <mappers>
        <mapper resource="mapper/UserMapper.xml"/>
    </mappers>
</configuration>

其中注意:

  • <dataSource type="config.DruidDataSourceFactory"> 的变动;
  • <property name="driverClass" value="org.h2.Driver"/> 的变动;
  • 新增 <property name="testWhileIdle" value="false" />
  1. 关于logback的配置:
    可以不配置 默认以trace的模式输出到控制台;也可以简单配置为如下:
<?xml version="1.0" encoding="UTF-8"?>
<configuration>

    <appender name="CONSOLE" class="ch.qos.logback.core.ConsoleAppender">
        <encoder>
            <pattern>%d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n</pattern>
        </encoder>
    </appender>

    <root level="TRACE">
        <appender-ref ref="CONSOLE"/>
    </root>

</configuration>
  1. AppMain类:
import dao.IDaoUser;
import domain.User;
import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;
import org.apache.ibatis.session.SqlSessionFactoryBuilder;

import java.io.IOException;
import java.io.InputStream;
import java.util.List;
import java.util.UUID;

public class AppMain {
    public static void main(String []args){
        try(
                InputStream inputStream = org.apache.ibatis.io.Resources.getResourceAsStream("mybatis-config.xml")
        ){
            SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
            try(
                    SqlSession sqlSession = sqlSessionFactory.openSession()
            ){
                IDaoUser user = sqlSession.getMapper(IDaoUser.class);
                if(null != user){
                    user.dropTable("user");
                    user.createTable("create table user(id varchar(36) primary key, name varchar(100), sex varchar(4))");


                    user.insertUser(UUID.randomUUID().toString(), "小青","男");
                    user.insertUser(UUID.randomUUID().toString(), "小红","女");
                    user.insertUser(UUID.randomUUID().toString(), "小紫","男");
                    user.insertUser(UUID.randomUUID().toString(), "小兰","女");
                    user.insertUser(UUID.randomUUID().toString(), "小虎","男");
                    user.insertUser(UUID.randomUUID().toString(), "小白","女");


                    List<User> users = user.selectAll("user");
                    for(User var : users){
                        System.out.println(var.getId() + "," + var.getName() + "," + var.getSex());
                    }
                }
            }


        }catch (IOException e){
            e.printStackTrace();
        }
    }
}


{ \color{red} { ---如果对你有帮助 请支持 谢谢--- } }

相关文章

网友评论

      本文标题:Java 数据库之Mybatis(二) Console app使

      本文链接:https://www.haomeiwen.com/subject/owzcsktx.html