mybatis 整合 mybatis-redis

14 篇文章 0 订阅
4 篇文章 0 订阅

 

1.pom文件

<dependencies>
		<dependency>
			<groupId>org.mybatis</groupId>
			<artifactId>mybatis</artifactId>
			<version>3.4.1</version>
		</dependency>

		<!-- https://mvnrepository.com/artifact/mysql/mysql-connector-java -->
		<dependency>
			<groupId>mysql</groupId>
			<artifactId>mysql-connector-java</artifactId>
			<version>6.0.6</version>
		</dependency>
		
		<dependency>
			<groupId>org.mybatis.caches</groupId>
			<artifactId>mybatis-redis</artifactId>
			<version>1.0.0-beta2</version>
		</dependency>

		<!-- https://mvnrepository.com/artifact/log4j/log4j -->
		<dependency>
			<groupId>log4j</groupId>
			<artifactId>log4j</artifactId>
			<version>1.2.17</version>
		</dependency>

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

	</dependencies>

2.模型

package com.testmybatis.model;

import java.io.Serializable;

public class Test implements Serializable{
	/**
	 * 
	 */
	private static final long serialVersionUID = 1L;
	private int id;
	private String name;

	public int getId() {
		return id;
	}

	public void setId(int id) {
		this.id = id;
	}

	public String getName() {
		return name;
	}

	public void setName(String name) {
		this.name = name;
	}
	
	public String toString(){
		return "id:"+id+" name:"+name;
	}

}

3.dao

package com.testmybatis.dao;

import java.util.List;

import com.testmybatis.model.Test;


public interface TestMapper {
	public List<Test> test();
}

4.配置文件

TestMapper.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="com.testmybatis.dao.TestMapper">

	<cache type="org.mybatis.caches.redis.RedisCache" />

	<select id="test" resultType="com.testmybatis.model.Test" useCache="true">
		select * from test
	</select>

</mapper>

 mybatis-config.xml

<?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="development">
		<environment id="development">
			<transactionManager type="JDBC" />
			<dataSource type="POOLED">
				<property name="driver" value="com.mysql.cj.jdbc.Driver" />
				<property name="url"
					value="jdbc:mysql://127.0.0.1:3306/test?serverTimezone=UTC&amp;useUnicode=true&amp;characterEncoding=utf-8&amp;useSSL=true" />
				<property name="username" value="root" />
				<property name="password" value="HlztLhy" />
			</dataSource>
		</environment>
	</environments>
	
	<mappers>
		<mapper resource="com/testmybatis/dao/TestMapper.xml" />
	</mappers>
	
</configuration>

/src/main/resources/redis.properties

redis.host=localhost
redis.port=6379
redis.connectionTimeout=5000
redis.soTimeout=5000
redis.password=
redis.database=0
redis.clientName=

 

5.测试

package com.testmybatis;

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

import org.apache.ibatis.io.Resources;
import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;
import org.apache.ibatis.session.SqlSessionFactoryBuilder;
import org.apache.log4j.Logger;

import com.alibaba.fastjson.JSON;
import com.testmybatis.dao.TestMapper;
import com.testmybatis.model.Test;

public class testlanjie {
	
	private static Logger log=Logger.getLogger(testlanjie.class);
	
	public static void main(String args[]){
		
		try {
			String resource = "com/testmybatis/mybatis-config.xml";
			InputStream inputStream = Resources.getResourceAsStream(resource);
			SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
			SqlSession session = sqlSessionFactory.openSession();
			try {
				TestMapper mapper=session.getMapper(TestMapper.class);
				List<Test> tests=mapper.test();
				session.commit();
				log.info(JSON.toJSONString(tests));
				
			} finally {
				session.close();
			}

		} catch (IOException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		
	}
	
}

第一次结果

2018-09-05 17:15:38 DEBUG [org.apache.ibatis.logging.LogFactory] Logging initialized using 'class org.apache.ibatis.logging.log4j.Log4jImpl' adapter.
2018-09-05 17:15:39 DEBUG [org.apache.ibatis.datasource.pooled.PooledDataSource] PooledDataSource forcefully closed/removed all connections.
2018-09-05 17:15:39 DEBUG [org.apache.ibatis.datasource.pooled.PooledDataSource] PooledDataSource forcefully closed/removed all connections.
2018-09-05 17:15:39 DEBUG [org.apache.ibatis.datasource.pooled.PooledDataSource] PooledDataSource forcefully closed/removed all connections.
2018-09-05 17:15:39 DEBUG [org.apache.ibatis.datasource.pooled.PooledDataSource] PooledDataSource forcefully closed/removed all connections.
2018-09-05 17:15:39 DEBUG [com.testmybatis.dao.TestMapper] Cache Hit Ratio [com.testmybatis.dao.TestMapper]: 0.0
2018-09-05 17:15:39 DEBUG [org.apache.ibatis.transaction.jdbc.JdbcTransaction] Opening JDBC Connection
2018-09-05 17:15:39 DEBUG [org.apache.ibatis.datasource.pooled.PooledDataSource] Created connection 680576081.
2018-09-05 17:15:39 DEBUG [org.apache.ibatis.transaction.jdbc.JdbcTransaction] Setting autocommit to false on JDBC Connection [com.mysql.cj.jdbc.ConnectionImpl@2890c451]
2018-09-05 17:15:39 DEBUG [com.testmybatis.dao.TestMapper.test] ==>  Preparing: select * from test 
2018-09-05 17:15:39 DEBUG [com.testmybatis.dao.TestMapper.test] ==> Parameters: 
2018-09-05 17:15:39 DEBUG [com.testmybatis.dao.TestMapper.test] <==      Total: 4
2018-09-05 17:15:39 INFO [com.testmybatis.testlanjie] [{"id":1,"name":"adb"},{"id":2,"name":"dafdsa"},{"id":3,"name":"dafa"},{"id":4,"name":"fffff"}]
2018-09-05 17:15:39 DEBUG [org.apache.ibatis.transaction.jdbc.JdbcTransaction] Resetting autocommit to true on JDBC Connection [com.mysql.cj.jdbc.ConnectionImpl@2890c451]
2018-09-05 17:15:39 DEBUG [org.apache.ibatis.transaction.jdbc.JdbcTransaction] Closing JDBC Connection [com.mysql.cj.jdbc.ConnectionImpl@2890c451]
2018-09-05 17:15:39 DEBUG [org.apache.ibatis.datasource.pooled.PooledDataSource] Returned connection 680576081 to pool.

第二次

2018-09-05 17:16:08 DEBUG [org.apache.ibatis.logging.LogFactory] Logging initialized using 'class org.apache.ibatis.logging.log4j.Log4jImpl' adapter.
2018-09-05 17:16:08 DEBUG [org.apache.ibatis.datasource.pooled.PooledDataSource] PooledDataSource forcefully closed/removed all connections.
2018-09-05 17:16:08 DEBUG [org.apache.ibatis.datasource.pooled.PooledDataSource] PooledDataSource forcefully closed/removed all connections.
2018-09-05 17:16:08 DEBUG [org.apache.ibatis.datasource.pooled.PooledDataSource] PooledDataSource forcefully closed/removed all connections.
2018-09-05 17:16:08 DEBUG [org.apache.ibatis.datasource.pooled.PooledDataSource] PooledDataSource forcefully closed/removed all connections.
2018-09-05 17:16:08 DEBUG [com.testmybatis.dao.TestMapper] Cache Hit Ratio [com.testmybatis.dao.TestMapper]: 1.0
2018-09-05 17:16:09 INFO [com.testmybatis.testlanjie] [{"id":1,"name":"adb"},{"id":2,"name":"dafdsa"},{"id":3,"name":"dafa"},{"id":4,"name":"fffff"}]

在redis中查看

127.0.0.1:6379> keys *
1) "com.testmybatis.dao.TestMapper"
127.0.0.1:6379> dump com.testmybatis.dao.TestMapper
"\x04\x01@f-1239684800:2518816703:com.testmybatis.dao.TestM47:select * from test:development\xc3@\xb4@\xc6\x1f\xac\xeda.util.ArrayListx\x81\xd2\x1d\x99\x14\xc7a\x9d\x03\x00\x01I0\x00\x04w\x04@\x05 4\x17\x1acom.testmybatis.model.T \x11 !\x02I\x00\x02idL\x00\x04namet\x00\x12L@i\x0c/lang/String;`Uq\x00~\x00\x02 :\t\x02t\x00\x06dafdsa\xe0\x00\x12\x03\x03t\x10\x04\x04t\x00\x05f \x00\x01fx\x06\x00\xea[W\xfal\xcblQ"

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值