1. <?xml version="1.0" encoding="UTF-8" ?>
  2. <!DOCTYPE configuration
  3. PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
  4. "http://mybatis.org/dtd/mybatis-3-config.dtd">
  5.  
  6. <configuration>
  7.  
  8. <!-- <properties>
  9. <property name="jdbc.driver" value="com.mysql.jdbc.Driver"/>
  10. </properties> -->
  11.  
  12. <!--
  13. <properties>:设置或引入资源文件
  14. resource:在类路径下访问资源文件
  15. url:在网络路径或磁盘路径下访问资源文件
  16. -->
  17. <properties resource="jdbc.properties"></properties>
  18.  
  19. <settings>
  20. <setting name="mapUnderscoreToCamelCase" value="true"/>
  21. </settings>
  22.  
  23. <typeAliases>
  24. <!--
  25. 为类型设置类型别名
  26. type:Java 类型,若只设置type,默认的别名就是类型,且不区分大小写
  27. -->
  28. <!-- <typeAlias type="com.atguigu.bean.User" alias="u"/> 不建议-->
  29. <!-- 这种写法在XxxMapper.xml的resultType只需要写个Xxx就可以 -->
  30. <package name="com.atguigu.bean"/>
  31. </typeAliases>
  32.  
  33. <!--
  34. <environments>:设置连接数据库的环境
  35. default:设置默认使用的数据库环境
  36. -->
  37. <environments default="mysql">
  38. <!--
  39. <environment>:设置某个具体的数据库的环境
  40. id:数据库环境的唯一标示
  41. -->
  42. <environment id="mysql">
  43. <!-- type="JDBC|MANAGED" -->
  44. <transactionManager type="JDBC" />
  45. <!-- type="POOLED|UNPOOLED|JNDI" -->
  46. <dataSource type="POOLED">
  47. <property name="driver" value="${jdbc.driver}" />
  48. <property name="url" value="${jdbc.url}" />
  49. <property name="username" value="${jdbc.username}" />
  50. <property name="password" value="${jdbc.password}" />
  51. </dataSource>
  52. </environment>
  53.  
  54. <environment id="oracle">
  55. <transactionManager type="JDBC" />
  56. <dataSource type="POOLED">
  57. <property name="driver" value="com.mysql.jdbc.Driver" />
  58. <property name="url" value="jdbc:mysql://localhost:3306/ssm" />
  59. <property name="username" value="root" />
  60. <property name="password" value="123456" />
  61. </dataSource>
  62. </environment>
  63. </environments>
  64. <!-- 引入映射文件 -->
  65. <mappers>
  66. <!-- 引入具体的映射文件 -->
  67. <mapper resource="UserMapper.xml" />
  68. </mappers>
  69. </configuration>
  1. <?xml version="1.0" encoding="UTF-8" ?>
  2. <!DOCTYPE mapper
  3. PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
  4. "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
  5.  
  6. <!-- 这个用来指定对应的dao接口 -->
  7. <mapper namespace="com.atguigu.mapper.UserMapper">
  8.  
  9. <!--
  10. <select>:定义查询语句
  11. id:设置SQL语句的唯一标示
  12. resultType:结果类型,即实体类的全限定名
  13. resultType如果在sqlMapConfig.xml中配置过typeAlisas,则按起的别名来,不建议
  14. -->
  15. <select id="getUserByUid" resultType="com.atguigu.bean.User">
  16. select uid,username,password,age,sex from user where uid = ${value}
  17. </select>
  18.  
  19. </mapper>
  1. package com.atguigu.mapper;
  2.  
  3. import com.atguigu.bean.User;
  4.  
  5. public interface UserMapper {
  6. //和UserMapper.xml中的sql的id对应的
  7. /**
  8. * <!--
  9. <select>:定义查询语句
  10. id:设置SQL语句的唯一标示
  11. resultType:结果类型,即实体类的全限定名
  12. -->
  13. <select id="getUserByUid" resultType="com.atguigu.bean.User">
  14. select uid,username,password,age,sex from user where uid = ${value} 或者#{id}
  15. </select>
  16.  
  17. * @param uid
  18. * @return
  19. */
  20. User getUserByUid(String uid);
  21.  
  22. }
  1. package com.atguigu.mapper;
  2.  
  3. import static org.junit.Assert.*;
  4.  
  5. import java.io.IOException;
  6. import java.io.InputStream;
  7. import java.util.Properties;
  8.  
  9. import org.apache.ibatis.io.Resources;
  10. import org.apache.ibatis.session.SqlSession;
  11. import org.apache.ibatis.session.SqlSessionFactory;
  12. import org.apache.ibatis.session.SqlSessionFactoryBuilder;
  13. import org.junit.Test;
  14.  
  15. import com.atguigu.bean.User;
  16.  
  17. public class TestMybatis {
  18.  
  19. @Test
  20. public void test() throws IOException {
  21.  
  22. InputStream is = Resources.getResourceAsStream("mybatis-config.xml");//org.apache.ibatis.io.Resources
  23. //InputStream is = TestMybatis.class.getClassLoader().getResourceAsStream("mybatis-config.xml");
  24. SqlSessionFactory sqlSessionFactory =
  25. new SqlSessionFactoryBuilder().build(is);
  26. SqlSession sqlSession = sqlSessionFactory.openSession();
  27. //getMapper():会通过动态代理动态生成UserMapper的代理实现类
  28. UserMapper mapper = sqlSession.getMapper(UserMapper.class);
  29. System.out.println(mapper.getClass().getName());//com.sun.proxy.$Proxy4这个为生成的代理对象
  30. User user = mapper.getUserByUid("1");
  31. System.out.println(user);
  32. //user_name ---> userName
  33. }
  34.  
  35. }

mybatis整体流程的更多相关文章

  1. Mybatis技术原理理——整体流程理解

    前言:2018年,是最杂乱的一年!所以你看我的博客,是不是很空! 网上有很多关于Mybatis原理介绍的博文,这里介绍两篇我个人很推荐的博文 Mybatis3.4.x技术内幕和 MyBaits源码分析 ...

  2. MyBatis整体架构

    Mybatis整体架构 基础支持层 反射模块 Java中的反射很强大,但是还是需要封装的.MyBatis专门提供了反射模块,对元素的反射进行了封装,提供了简洁的API,对反射进行了优化,例如缓存了类的 ...

  3. 使用git整体流程

    一.git提交代码走meger请求的整体流程 工作中使用git推代码时,如果走merge请求,那么也就是说拉代码时拉公共代码库的代码,但是提交时需要先提交到自己的代码库,然后在gitlab上提交mer ...

  4. iOS开发从申请开发账号到APP上架的整体流程详解

    应公司要求,写一份文档从申请账号一直到APP上架的整体流程,下面进入正文. https://blog.csdn.net/qq_35612929/article/details/78754470 首先第 ...

  5. enzyme design 整体流程及感想

    想起什么来写什么吧. 整体流程(以Ceas2, TPP, G3P为例): 准备蛋白即配体参数文件: 设置CST文件: 准备protocol和flag文件: 运行enzyme_design: 结果处理. ...

  6. 【驱动】input子系统整体流程全面分析(触摸屏驱动为例)【转】

    转自:http://www.cnblogs.com/lcw/p/3294356.html input输入子系统整体流程 input子系统在内核中的实现,包括输入子系统(Input Core),事件处理 ...

  7. vue框架整体流程

    1.整体流程 (1)模板解析成render函数 (2)响应式监听 (3)首次渲染,显示页面,绑定依赖 (4)data属性变化,触发rerender 2.模板解析为render函数 参考上一篇博客. 模 ...

  8. springmvc 运行原理 Spring ioc的实现原理 Mybatis工作流程 spring AOP实现原理

    SpringMVC的工作原理图: SpringMVC流程 . 用户发送请求至前端控制器DispatcherServlet. . DispatcherServlet收到请求调用HandlerMappin ...

  9. MyBatis 工作流程及插件开发

    1. MyBatis 框架分层架构 2. MyBatis 工作流程 获取 SqlSessionFactory 对象: 解析配置文件(全局映射,Sql映射文件)的每一个信息,并保存在Configurat ...

随机推荐

  1. 【面试】Redis

    1.如果在setnx之后执行expire之前进程意外crash或者要重启维护了,那会怎么样? set指令有非常复杂的参数,这个应该是可以同时setnx和expire合成一条指令来用的! 2.使用过Re ...

  2. orale数据库的SQL查询

      创建学生表,成绩表,教师表,课程表,分别添加数据信息 create table student( sno ) primary key, sname ), sage ), ssex ) ); cre ...

  3. <context:component-scan>标签报错解决方案

  4. 石川es6课程---17、ES7 预览

    石川es6课程---17.ES7 预览 一.总结 一句话总结: 人的价值恒定规律:无论得意还是迷茫之时,你的价值都不靠外界的评判或者你内心的悲喜而决定.而是当时的恒定的.能够提升他只能靠你提升自己的能 ...

  5. Java-内存模型(JSR-133)

    Java 内存模型(Java Memory Model,JMM)看上去和 Java 内存结构(JVM 运行时内存结构)差不多,但这两者并不是一回事.JMM 并不像 JVM 内存结构一样是真实存在的,它 ...

  6. mysql 添加用户 - 设置远程登录/本地登陆的权限

    默认只允许root帐户在本地登录,如果要在其它机器上连接mysql,必须修改root允许远程连接,或者添加一个允许远程连接的帐户,为了安全起见,我添加一个新的帐户: mysql> GRANT A ...

  7. leetcode324 摆动排序II

      1. 首先考虑排序后交替插入 首尾交替插入,这种方法对于有重复数字的数组不可行: class Solution { public: void wiggleSort(vector<int> ...

  8. [django]update_or_create使用场景

    update_or_create 作用是为了添加数据时防止重复. 先去查询, 如果没有在创建, 如果有则更新. update_or_create用法与密码存储实例 create方法 如果id是None ...

  9. LC 894. All Possible Full Binary Trees

    A full binary tree is a binary tree where each node has exactly 0 or 2 children. Return a list of al ...

  10. Postman系列之测试用例管理(二)

    实验简介 本文主要讲解Postman对多个测试用例的管理,让测试进行更有序,易于管理. 实验目的 Postman 测试集(Collections)管理的相关内容,它用来保存我们的 Request ,可 ...