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. 关于javascript的事件执行机制理解

    理解javascript事件执行机制 众所周知,js是一个单线程的语言,这意味着同一时间只能做一件事,但是我们又说js是异步的.首先,单线程并不是没有优点.作为浏览器脚本语言,JavaScript 的 ...

  2. day8 socket

    代码: 例子1:socket tcp 通讯 server端 import socketserver = socket.socket()ip_port = ("127.0.0.1", ...

  3. Vue异步请求最佳实践

    一.当前存在的问题 目前项目前端请求后台数据的方式是这样的: 页面中method中dispatch到action action调用mutation,请求axios 请求到数据后存储到state中 页面 ...

  4. CDH6.1.0新增主机资源

    在CDH 6.1.0 上增加主机 一 客户端配置 1.1 JAVA 配置 1.2 关闭selinux以及防火墙 1.3 将服务端的agent包打包然后拷贝到客户端 然后解压 启动(也可以rpm安装) ...

  5. Hadoop 上Hive 的操作

    数据dept表的准备: --创建dept表 CREATE TABLE dept( deptno int, dname string, loc string) ROW FORMAT DELIMITED ...

  6. 小白进阶之Scrapy第六篇Scrapy-Redis详解(转)

    Scrapy-Redis 详解 通常我们在一个站站点进行采集的时候,如果是小站的话 我们使用scrapy本身就可以满足. 但是如果在面对一些比较大型的站点的时候,单个scrapy就显得力不从心了. 要 ...

  7. Mount Windows (CIFS) shares on Linux with credentials in a secure way

      Posted on 09/09/2014 In almost all cases, when mounting a CIFS-share on a Linux host, you will nee ...

  8. 第一章·ELKstack介绍及Elasticsearch部署

    一.ELKstack课程大纲  二.ELKstack简介 什么是ELK? 通俗来讲,ELK是由Elasticsearch.Logstash.Kibana 三个开源软件的组成的一个组合体,这三个软件当 ...

  9. TextView跑马灯

    TextView跑马灯 textView跑马灯实现:1.定义textView标签的4个属性:android:singleLine="true"//使其只能单行android:ell ...

  10. Beta冲刺——星期四

    这个作业属于哪个课程 <课程的链接> 这个作业要求在哪里 <作业要求的链接> 团队名称 飞猪们 这个作业的目标 剩余任务预估,分配任务(开发,测试等).按要求提交当天冲刺报告. ...