mybatis整体流程
- <?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>
- <property name="jdbc.driver" value="com.mysql.jdbc.Driver"/>
- </properties> -->
- <!--
- <properties>:设置或引入资源文件
- resource:在类路径下访问资源文件
- url:在网络路径或磁盘路径下访问资源文件
- -->
- <properties resource="jdbc.properties"></properties>
- <settings>
- <setting name="mapUnderscoreToCamelCase" value="true"/>
- </settings>
- <typeAliases>
- <!--
- 为类型设置类型别名
- type:Java 类型,若只设置type,默认的别名就是类型,且不区分大小写
- -->
- <!-- <typeAlias type="com.atguigu.bean.User" alias="u"/> 不建议-->
- <!-- 这种写法在XxxMapper.xml的resultType只需要写个Xxx就可以 -->
- <package name="com.atguigu.bean"/>
- </typeAliases>
- <!--
- <environments>:设置连接数据库的环境
- default:设置默认使用的数据库环境
- -->
- <environments default="mysql">
- <!--
- <environment>:设置某个具体的数据库的环境
- id:数据库环境的唯一标示
- -->
- <environment id="mysql">
- <!-- type="JDBC|MANAGED" -->
- <transactionManager type="JDBC" />
- <!-- type="POOLED|UNPOOLED|JNDI" -->
- <dataSource type="POOLED">
- <property name="driver" value="${jdbc.driver}" />
- <property name="url" value="${jdbc.url}" />
- <property name="username" value="${jdbc.username}" />
- <property name="password" value="${jdbc.password}" />
- </dataSource>
- </environment>
- <environment id="oracle">
- <transactionManager type="JDBC" />
- <dataSource type="POOLED">
- <property name="driver" value="com.mysql.jdbc.Driver" />
- <property name="url" value="jdbc:mysql://localhost:3306/ssm" />
- <property name="username" value="root" />
- <property name="password" value="123456" />
- </dataSource>
- </environment>
- </environments>
- <!-- 引入映射文件 -->
- <mappers>
- <!-- 引入具体的映射文件 -->
- <mapper resource="UserMapper.xml" />
- </mappers>
- </configuration>
- <?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">
- <!-- 这个用来指定对应的dao接口 -->
- <mapper namespace="com.atguigu.mapper.UserMapper">
- <!--
- <select>:定义查询语句
- id:设置SQL语句的唯一标示
- resultType:结果类型,即实体类的全限定名
- resultType如果在sqlMapConfig.xml中配置过typeAlisas,则按起的别名来,不建议
- -->
- <select id="getUserByUid" resultType="com.atguigu.bean.User">
- select uid,username,password,age,sex from user where uid = ${value}
- </select>
- </mapper>
- package com.atguigu.mapper;
- import com.atguigu.bean.User;
- public interface UserMapper {
- //和UserMapper.xml中的sql的id对应的
- /**
- * <!--
- <select>:定义查询语句
- id:设置SQL语句的唯一标示
- resultType:结果类型,即实体类的全限定名
- -->
- <select id="getUserByUid" resultType="com.atguigu.bean.User">
- select uid,username,password,age,sex from user where uid = ${value} 或者#{id}
- </select>
- * @param uid
- * @return
- */
- User getUserByUid(String uid);
- }
- package com.atguigu.mapper;
- import static org.junit.Assert.*;
- import java.io.IOException;
- import java.io.InputStream;
- import java.util.Properties;
- 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 com.atguigu.bean.User;
- public class TestMybatis {
- @Test
- public void test() throws IOException {
- InputStream is = Resources.getResourceAsStream("mybatis-config.xml");//org.apache.ibatis.io.Resources
- //InputStream is = TestMybatis.class.getClassLoader().getResourceAsStream("mybatis-config.xml");
- SqlSessionFactory sqlSessionFactory =
- new SqlSessionFactoryBuilder().build(is);
- SqlSession sqlSession = sqlSessionFactory.openSession();
- //getMapper():会通过动态代理动态生成UserMapper的代理实现类
- UserMapper mapper = sqlSession.getMapper(UserMapper.class);
- System.out.println(mapper.getClass().getName());//com.sun.proxy.$Proxy4这个为生成的代理对象
- User user = mapper.getUserByUid("1");
- System.out.println(user);
- //user_name ---> userName
- }
- }
mybatis整体流程的更多相关文章
- Mybatis技术原理理——整体流程理解
前言:2018年,是最杂乱的一年!所以你看我的博客,是不是很空! 网上有很多关于Mybatis原理介绍的博文,这里介绍两篇我个人很推荐的博文 Mybatis3.4.x技术内幕和 MyBaits源码分析 ...
- MyBatis整体架构
Mybatis整体架构 基础支持层 反射模块 Java中的反射很强大,但是还是需要封装的.MyBatis专门提供了反射模块,对元素的反射进行了封装,提供了简洁的API,对反射进行了优化,例如缓存了类的 ...
- 使用git整体流程
一.git提交代码走meger请求的整体流程 工作中使用git推代码时,如果走merge请求,那么也就是说拉代码时拉公共代码库的代码,但是提交时需要先提交到自己的代码库,然后在gitlab上提交mer ...
- iOS开发从申请开发账号到APP上架的整体流程详解
应公司要求,写一份文档从申请账号一直到APP上架的整体流程,下面进入正文. https://blog.csdn.net/qq_35612929/article/details/78754470 首先第 ...
- enzyme design 整体流程及感想
想起什么来写什么吧. 整体流程(以Ceas2, TPP, G3P为例): 准备蛋白即配体参数文件: 设置CST文件: 准备protocol和flag文件: 运行enzyme_design: 结果处理. ...
- 【驱动】input子系统整体流程全面分析(触摸屏驱动为例)【转】
转自:http://www.cnblogs.com/lcw/p/3294356.html input输入子系统整体流程 input子系统在内核中的实现,包括输入子系统(Input Core),事件处理 ...
- vue框架整体流程
1.整体流程 (1)模板解析成render函数 (2)响应式监听 (3)首次渲染,显示页面,绑定依赖 (4)data属性变化,触发rerender 2.模板解析为render函数 参考上一篇博客. 模 ...
- springmvc 运行原理 Spring ioc的实现原理 Mybatis工作流程 spring AOP实现原理
SpringMVC的工作原理图: SpringMVC流程 . 用户发送请求至前端控制器DispatcherServlet. . DispatcherServlet收到请求调用HandlerMappin ...
- MyBatis 工作流程及插件开发
1. MyBatis 框架分层架构 2. MyBatis 工作流程 获取 SqlSessionFactory 对象: 解析配置文件(全局映射,Sql映射文件)的每一个信息,并保存在Configurat ...
随机推荐
- 【面试】Redis
1.如果在setnx之后执行expire之前进程意外crash或者要重启维护了,那会怎么样? set指令有非常复杂的参数,这个应该是可以同时setnx和expire合成一条指令来用的! 2.使用过Re ...
- orale数据库的SQL查询
创建学生表,成绩表,教师表,课程表,分别添加数据信息 create table student( sno ) primary key, sname ), sage ), ssex ) ); cre ...
- <context:component-scan>标签报错解决方案
- 石川es6课程---17、ES7 预览
石川es6课程---17.ES7 预览 一.总结 一句话总结: 人的价值恒定规律:无论得意还是迷茫之时,你的价值都不靠外界的评判或者你内心的悲喜而决定.而是当时的恒定的.能够提升他只能靠你提升自己的能 ...
- Java-内存模型(JSR-133)
Java 内存模型(Java Memory Model,JMM)看上去和 Java 内存结构(JVM 运行时内存结构)差不多,但这两者并不是一回事.JMM 并不像 JVM 内存结构一样是真实存在的,它 ...
- mysql 添加用户 - 设置远程登录/本地登陆的权限
默认只允许root帐户在本地登录,如果要在其它机器上连接mysql,必须修改root允许远程连接,或者添加一个允许远程连接的帐户,为了安全起见,我添加一个新的帐户: mysql> GRANT A ...
- leetcode324 摆动排序II
1. 首先考虑排序后交替插入 首尾交替插入,这种方法对于有重复数字的数组不可行: class Solution { public: void wiggleSort(vector<int> ...
- [django]update_or_create使用场景
update_or_create 作用是为了添加数据时防止重复. 先去查询, 如果没有在创建, 如果有则更新. update_or_create用法与密码存储实例 create方法 如果id是None ...
- 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 ...
- Postman系列之测试用例管理(二)
实验简介 本文主要讲解Postman对多个测试用例的管理,让测试进行更有序,易于管理. 实验目的 Postman 测试集(Collections)管理的相关内容,它用来保存我们的 Request ,可 ...