Java二级缓存

第一步

所需导入架包

log4j-api-2.10.0.jar

log4j-core-2.10.0.jar

mybatis-3.4.1.jar

mysql-connector-java-5.1.38.jar

第二步

开始配置数据库的连接

<?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">
<!-- 整个配置文档会在和spring整合后废弃 -->

<configuration>
    <settings>
        <setting name="logImpl" value="LOG4J2" />
        <setting name="cacheEnabled" value="true"/>  
    </settings>
    <!-- 配置数据库连接属性 environments:环境 -->
    <environments default="development">
        <!-- 配置数据库连接环境 -->
        <environment id="development">
            <!-- 此数据库连接使用的事务管理类型 JDBC:使用JDK提供的事务管理,对应实现类是:JdbcTransactionFactory MANAGED:不做任何事务功能,它就是一个托管标识;对应实现类是:ManagedTransactionFactory
                内部实现:typeAliasRegistry.registerAlias("JDBC", JdbcTransactionFactory.class); -->
            <transactionManager type="JDBC" />
            <!-- 此数据库连接使用的连接池 POOLED:使用连接池的方式,开发或测试环境经常使用 UNPOOLED:每次连接都需要打开和关闭,一般不使用。
                JNDI:使用配置好的JNDI数据库连接方式,一般生产环境使用较多 -->
            <dataSource type="POOLED">
                <property name="driver" value="com.mysql.jdbc.Driver" />
                <property name="url" value="jdbc:mysql://localhost:3306/base" />
                <property name="username" value="root" />
                <property name="password" value="admin" />
            </dataSource>
        </environment>
    </environments>
    <mappers>
        <mapper resource="com/aaa/mapper/faculty.xml"></mapper>
        <mapper resource="com/aaa/mapper/StudentDao.xml"></mapper>
    </mappers>

</configuration>

第三步(文件放在src根目录问件下)

日志配置

<?xml version="1.0" encoding="UTF-8"?>
<Configuration status="INFO" monitorInterval="1800">
    <appenders>
        <Console name="consolePrint" target="SYSTEM_OUT">
            <PatternLayout pattern="%d{HH:mm:ss} [%t] %-5level %logger{36} - %msg%n" />
        </Console>
    </appenders>

    <loggers>
        <!-- 将业务dao接口填写进去,并用控制台输出即可 -->
        <logger name="com.aaa.dao" level="DEBUG" additivity="false">
            <appender-ref ref="consolePrint"/>
        </logger>

        <root level="info" >
            <appender-ref ref="consolePrint" />
        </root>
    </loggers>

</Configuration>

第四步:开始测试

/**
         * 读取配置文件
         *     IO
         */
        Reader reader = Resources.getResourceAsReader("mybatisConfig.xml");
        SqlSessionFactory factory = new SqlSessionFactoryBuilder().build(reader);//加载并创建连接工厂
        
        SqlSession  session1 = factory.openSession();//从连接池取出一个连接。
        
        StudentDao dao1 = session1.getMapper(StudentDao.class);
        
        Student stu1 = dao1.selectOne(21);
        stu1.setStuName("张小三");
        dao1.update(stu1);
        
        session1.commit();
        session1.close();//把连接归还给连接池
        System.out.println(stu1.getStuName());
        
        System.out.println("---上一个sql数据被缓存,数据缓存到session里----");
        
        SqlSession session2 = factory.openSession();//从连接池取出一个连接。
        StudentDao dao2 = session2.getMapper(StudentDao.class);
        Student stu2 = dao2.selectOne(21);
        
        session2.commit();
        session2.close();//把连接归还给连接池
        System.out.println(stu2.getStuName());
        
        System.out.println("---上一个sql数据被缓存,数据缓存到session里----");
        
        SqlSession session3 = factory.openSession();//从连接池取出一个连接。
        StudentDao dao3 = session3.getMapper(StudentDao.class);
        Student stu3 = dao3.selectOne(21);
        
        session3.commit();
        session3.close();//把连接归还给连接池
        System.out.println(stu3.getStuName());




猜你喜欢

转载自blog.csdn.net/qq_40476356/article/details/79581864