1、Mysql database

CREATE TABLE mockrecord
(id INT(10) unsigned PRIMARY KEY NOT NULL COMMENT 'mock记录编号' AUTO_INCREMENT,
requestparams TEXT COMMENT '请求参数列表',
responsejspn TEXT COMMENT '返回Mock响应Json'
)ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8;

2、maven project

3、pom文件

<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.11</version>
<scope>test</scope>
</dependency>
<!-- https://mvnrepository.com/artifact/org.mybatis/mybatis -->
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis</artifactId>
<version>3.5.2</version>
</dependency>
<!-- https://mvnrepository.com/artifact/mysql/mysql-connector-java -->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.48</version>
</dependency>
<!-- https://mvnrepository.com/artifact/com.alibaba/druid -->
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>druid</artifactId>
<version>1.1.20</version>
</dependency>

4、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>
<properties resource="mydbconfig.properties" /> <typeAliases>
<typeAlias type="com.test.mybatis.druid.DruidDataSourceFactory" alias="DRUID" />
</typeAliases> <environments default="development">
<environment id="development">
<transactionManager type="JDBC" />
<!--//POOLED指的是org.apache.ibatis.datasource.pooled.PooledDataSource, 一个数据源的实现类-->
<!--<dataSource type="POOLED">-->
<dataSource type="DRUID"> <property name="driver" value="${db.driver}" />
<property name="url" value="${db.url}" />
<property name="username" value="${db.username}" />
<property name="password" value="${db.password}" />
</dataSource>
</environment>
</environments> <mappers>
<mapper resource="MockRecordMapper.xml" />
</mappers>
</configuration>

5、mydbconfig.properties

db.driver=com.mysql.jdbc.Driver
db.url=jdbc:mysql://192.168.8.101:3306/mybatis
db.username=root
db.password=root

6、Bean

package com.test.mybatis.bean;

public class MockRecord {
public Integer id;
public String requestparams;
public String responsejson; public MockRecord() {
} public MockRecord(Integer id, String requestparams, String responsejson) {
this.id = id;
this.requestparams = requestparams;
this.responsejson = responsejson;
} public Integer getId() {
return id;
} public void setId(Integer id) {
this.id = id;
} public String getRequestparams() {
return requestparams;
} public void setRequestparams(String requestparams) {
this.requestparams = requestparams;
} public String getResponsejson() {
return responsejson;
} public void setResponsejson(String responsejson) {
this.responsejson = responsejson;
} @Override
public String toString() {
return "MockRecord{" +
"id=" + id +
", requestparams='" + requestparams + '\'' +
", responsejson='" + responsejson + '\'' +
'}';
}
}

7、DruidDataSourceFactory

package com.test.mybatis.druid;

import com.alibaba.druid.pool.DruidDataSource;
import org.apache.ibatis.datasource.DataSourceFactory; import javax.sql.DataSource;
import java.sql.SQLException;
import java.util.Properties; public class DruidDataSourceFactory implements DataSourceFactory {
private Properties props;
@Override
public DataSource getDataSource() {
DruidDataSource dds = new DruidDataSource();
dds.setDriverClassName(this.props.getProperty("driver"));
dds.setUrl(this.props.getProperty("url"));
dds.setUsername(this.props.getProperty("username"));
dds.setPassword(this.props.getProperty("password"));
// 其他配置可以根据MyBatis主配置文件进行配置
try {
dds.init();
} catch (SQLException e) {
e.printStackTrace();
}
return dds;
}
@Override
public void setProperties(Properties props) {
this.props = props;
}
}

8、MockRecordMapper.class,MockRecordMapper.xml

package com.test.mybatis.mapper;

import com.test.mybatis.bean.MockRecord;

public interface MockRecordMapper {
public MockRecord selectMockRecord(String requestparams);
} <?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.test.mybatis.mapper.MockRecordMapper">
<select id="selectMockRecord" resultType="com.test.mybatis.bean.MockRecord">
select id,requestparams,responsejson from mockrecord where requestparams = #{requestparams}
</select>
</mapper>

9、AppTest集成测试

package com.test.mybatis;

import static org.junit.Assert.assertTrue;

import com.test.mybatis.bean.MockRecord;
import com.test.mybatis.mapper.MockRecordMapper;
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.junit.Test; import java.io.IOException;
import java.io.InputStream; /**
* Unit test for simple App.
*/
public class AppTest
{
public SqlSessionFactory getSqlSessionFactory() throws IOException {
String resource = "mybatis-config.xml";
InputStream inputStream = Resources.getResourceAsStream(resource);
return new SqlSessionFactoryBuilder().build(inputStream);
} @Test
public void test1() throws IOException
{
// 1、获取sqlSessionFactory对象
SqlSessionFactory sqlSessionFactory = getSqlSessionFactory();
// 2、获取sqlSession对象
SqlSession openSession = sqlSessionFactory.openSession();
try {
// 3、获取接口的实现类对象
//会为接口自动的创建一个代理对象,代理对象去执行增删改查方法
MockRecordMapper mapper = openSession.getMapper(MockRecordMapper.class);
MockRecord mockRecord = mapper.selectMockRecord("a");
System.out.println(mapper.getClass());
System.out.println(mockRecord);
} finally {
openSession.close();
}
} }

Mybatis不使用Spring框架(Druid)的更多相关文章

  1. 【MyBatis-Spring】Mybatis和并入Spring框架

    1.参考书籍:<深入浅出MyBatis技术原理与实战> 2.知识基础:Spring.Mybatis.Spring MVC. 配置数据源 配置SqlSessionFactory SqlSes ...

  2. Spring + SpringMVC + Druid + MyBatis 给你一个灵活的后端解决方案

    生命不息,折腾不止. 折腾能遇到很多坑,填坑我理解为成长. 两个月前自己倒腾了一套用开源框架构建的 JavaWeb 后端解决方案. Spring + SpringMVC + Druid + JPA(H ...

  3. 《经久不衰的Spring框架:Spring+SpringMVC+MyBatis 整合》

    前言 主角即Spring.SpringMVC.MyBatis,即所谓的SSM框架,大家应该也都有所了解,概念性的东西就不写了,有万能的百度.之前没有记录SSM整合的过程,这次刚刚好基于自己的一个小项目 ...

  4. spring+websocket综合(springMVC+spring+MyBatis这是SSM框架和websocket集成技术)

    java-websocket该建筑是easy.儿童无用的框架可以在这里下载主线和个人教学好java-websocket计划: Apach Tomcat 8.0.3+MyEclipse+maven+JD ...

  5. mybatis中两种取值方式?谈谈Spring框架理解?

    1.mybatis中两种取值方式? 回答:Mybatis中取值方式有几种?各自区别是什么? Mybatis取值方式就是说在Mapper文件中获取service传过来的值的方法,总共有两种方式,通过 $ ...

  6. MyBatis在非Spring环境下第三方DataSource设置-Druid篇

    首先在ITEye上面看到一个同标题文章,在此说明,此文并非转载自 http://iintothewind.iteye.com/blog/2069522 ,因为这篇文章根本就是错误的,照着上面做,工程可 ...

  7. 整合Spring框架和MyBatis框架

    ------------------------siwuxie095                                 整合 Spring 框架和 MyBatis 框架         ...

  8. 【Java】MyBatis与Spring框架整合(一)

    本文将利用 Spring 对 MyBatis 进行整合,在对组件实现解耦的同时,还能使 MyBatis 框架的使用变得更加方便和简单. 整合思路 作为 Bean 容器,Spring 框架提供了 IoC ...

  9. spring 框架整合mybatis的源码分析

    问题:spring 在整合mybatis的时候,我们是看不见sqlSessionFactory,和sqlsession(sqlsessionTemplate 就是sqlsession的具体实现)的,这 ...

随机推荐

  1. Js的原型和原型链讲解

    原型:每个对象都会在其内部初始化一个属性,就是prototype 原型链:当我们访问一个对象的属性时,如果这个对象内部不存在这个属性,那么他就会去prototype中去找,这个prototype中会有 ...

  2. ES6基础之——get 与 set

    class Chef{ constructor(food){ this.food = food; thid.dish = []; } //getter get menu(){ return this. ...

  3. Delphi 动态链接库编程

    樊伟胜

  4. mysql数据库:mysql初识

      1.什么是数据库 *****    存放数据的仓库    已学习的文件操作的缺陷        1.IO操作 效率问题        2.多用户竞争数据        3.网络访问        ...

  5. 3.LVS的三种工作模式_TUN模式

    1.TUN模式(Virtual Server via IP Tunneling) 采用NAT模式时,由于请求和响应的报文必须通过调度器地址重写,当客户请求越来越多时,调度器处理能力将成为瓶颈.为了解决 ...

  6. Jmeter (三) 集合点 、检查点 (断言)

    不同的 测试工具有不同的命名 断言 :即检查点,在请求中 加入测试人员的判断,返回 结果 TRUE  or FALSE ,得到 测试人员的判断是否正确 集合点 1.打开  synchronizing ...

  7. MyBatis笔记-03-CRUD

    3.CRUD 1.namespace namespace中的包名要和Dao/mapper接口的包名保持一致 2.select 选择查询语句: id:就是对应的namespace中的方法名: resul ...

  8. .net core 读取appsettings 的配置

    { "Logging": { "IncludeScopes": false, "LogLevel": { "Default&quo ...

  9. Kafka、RabbitMQ、RocketMQ等消息中间件的介绍和对比(转)

    前言在分布式系统中,我们广泛运用消息中间件进行系统间的数据交换,便于异步解耦.现在开源的消息中间件有很多,前段时间产品 RocketMQ (MetaQ的内核) 也顺利开源,得到大家的关注. 概念MQ简 ...

  10. HDU 6033 - Add More Zero | 2017 Multi-University Training Contest 1

    /* HDU 6033 - Add More Zero [ 简单公式 ] | 2017 Multi-University Training Contest 1 题意: 问 2^n-1 有几位 分析: ...