导入依赖

<dependencies>
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis</artifactId>
<version>3.4.5</version>
</dependency>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.12</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.46</version>
</dependency>
<dependency>
<groupId>log4j</groupId>
<artifactId>log4j</artifactId>
<version>1.2.17</version>
</dependency>
</dependencies>

编写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="jdbc.properties"/>
<typeAliases>
<!-- 配置别名,配置之后返回类型就不用写全路径了-->
<package name="com.swun.pojo"/>
</typeAliases>
<environments default="development">
<environment id="development">
<transactionManager type="JDBC"/>
<dataSource type="POOLED">
<property name="driver" value="${jdbc.driver}"/>
<property name="url" value="${jdbc.url}"/>
<property name="password" value="${jdbc.password}"/>
<property name="username" value="${jdbc.username}"/>
<!-- <property name="username" value="root"/>-->
<!-- <property name="password" value="889886hp"/>-->
<!-- <property name="driver" value="com.mysql.jdbc.Driver"/>-->
<!-- <property name="url" value="jdbc:mysql://127.0.0.1:3306/happy?useSSL=false"/>-->

</dataSource>
</environment>
</environments>
<mappers>
<!--加载sql映射文件-->
<!-- <mapper resource="com/swun/mapper/Tb_randMapper.xml.bak"/>-->
<!--Mapper代理方式-->
<package name="com.swun.mapper"/>
</mappers></configuration>

里面的SQL映射文件
<?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.swun.mapper.Tb_brandMapper">
</mapper>

关于设置驼峰规范映射

    <!-- 标准的 日志工厂实现  -->
<settings>
<setting name="logImpl" value="STDOUT_LOGGING"/>
<!-- 是否开启自动驼峰命名规则 (camel case)映射 -->
<!-- <setting name="mapUnderscoreToCamelCase" value="true"/>-->
<!-- 开启全局缓存 -->
<setting name="cacheEnabled" value="true"/>
</settings> <typeAliases>
<package name="com.inspur.pojo"/>
</typeAliases>

配置文件标签推荐顺序

      -----------------------配置文件顶部---------------------------------------------------
<?xml version="1.0" encoding="UTF-8" ?> 这一部分是xml配置文件的相关配置 版本+编码集 【MyBatis的DTD约束:固定写法】
<!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN" "http://mybatis.org/dtd/mybatis-3-config.dtd">
-----------------------配置文件顶部-------------------------------------------------- 核心配置文件中的 引入标签的顺序:
是由约束决定的 通过约束 【ctrl+鼠标左键】 可以进入 约束查看
<!ELEMENT configuration (properties?, settings?, typeAliases?, typeHandlers?, objectFactory?,objectWrapperFactory?, reflectorFactory?, plugins?, environments?, databaseIdProvider?, mappers?)>
按照约束规定的顺序书写就可以 顺序应该是: 1.<properties自闭合标签 resource属性/>
a. 标签作用:引入数据库的配置文件 文件名一般是:JDBC.properties
b. 属性值:配置文件路径(String) 由于配置文件一般放在src文件夹下 所以一般写成配置文件的名称 2.<settings标签>
<setting标签 name属性1 value属性1/>
<setting标签 name属性2 value属性2/>
</settings>
a. settings标签:引入插件的配置文件(相对根标签 内部可以引入多个插件)
b. setting 标签:引入单个插件的配置文件 在settings 标签内部 可以有多个
b1. name 属性:自行百度 很多属性 根据需求查找
b2. value 属性:自行百度 很多属性 根据需求查找 3.<typeAliases标签>
<typeAlias 自闭合标签 type属性 alias属性/>
<package 自闭合标签 name属性/>
</typeAliases>
a.typeAliases 标签 : 这里是对映射配置文件中的 resultType和 parameterType 起别名,为了使用便捷【相对根标签、起别名是对于自定义的javaBean类】
b.typeAlias 标签: 对于单个javaBean类 起别名
b1.type属性:从src包开始的javaBean类的路径
b2.alias属性:起的别名【一般是以类名为别名 首字母小写】
c.package 标签: 因为一般情况 我们会把所有的javaBean类 都放到bean这个包下 ,所以这里提供的这个标签是对一个包下所有的javaBean类起别名
c.name属性:从src包开始的bean包的路径 -----------------------中间间隔-----[暂时还没有配置的标签]-----------------------------
4.typeHandlers
5.objectFactory
6.objectWrapperFactory
7.reflectorFactory ----------------------中间间隔------[暂时还没有配置的标签]-----------------------------
8.<plugins标签>
<plugin标签 interceptor属性></plugin>
</plugins>
a.plugins标签:配置插件的相对根标签 由于可能会配置多个插件 所以需要plugins根标签包裹
b.plugin标签:配置单个插件的标签
b1. interceptor属性:值为需要配置的插件的路径
配置分页功能的属性值为:com.github.pagehelper.PageInterceptor 固定路径【lib直接在src下】
9.<environments标签 default属性>
<environment标签 id属性>
<transactionManager标签 type属性>
<dataSource标签 type属性>
<property标签 name属性 value属性/>
<property标签 name属性 value属性/>
<property标签 name属性 value属性/>
........
</dataSource标签>
</environment标签> <environment标签 id属性>
<transactionManager标签 type属性>
<dataSource标签 type属性>
<property标签 name属性 value属性/>
<property标签 name属性 value属性/>
<property标签 name属性 value属性/>
........
</dataSource>
</environment>
<environments>
a. environments标签:用来引入数据库环境的配置单元根标签【可包含多个】
a1. default 属性:与 environment中的id属性相对应 使用哪个environment中的id属性 就代表使用哪个配置 b. environment 标签:单个数据库环境引入的根标签
b1. id属性:每一个属性的唯一标识 通过id属性的值 来找到使用的是哪个配置 c. transactionManager标签:确定事务管理模式的标签
c1. type属性:确定使用哪个事务管理模式 一共两个值:
JDBC:正常的commit和rollback 方式
MANAGE:百度查具体是什么意思 d. dataSource 标签:规定使用何种数据源的标签(连接池,第三方容器等等)【相对根标签】
d1. type属性:具体确定数据源使用何种模式配置 一共三个值:
UNPOOLED:百度查含义
POOLED:使用连接池
JNDI:其他框架提供的容器 e. property 标签:配置数据源的单个配置标签 【其实就是JDBC所需要的的配置 包含:驱动配置,数据库地址,登录账号,密码等等】
e1.name:与JDBC的配置文件中的key一一对应 每个key对应一条property 标签语句
e2.value:底层获取 JDBC配置文件 对应key的值 格式是: ${变量名} 变量名为了代码的可读性一般和key是一样的 -----------------------中间间隔-----[暂时还没有配置的标签]-----------------------------
10.databaseIdProvider
-----------------------中间间隔-----[暂时还没有配置的标签]----------------------------- 11.<mappers 根标签>【基于配置文件sql语句来实现 使用这个Mappers标签中的格式】
<mapper标签 resource属性>
</mappers>
a. mappers标签 :引入映射文件(sql语句的配置文件)的根标签
b. mapper标签:mapper标签 一次有且只能有一个 使用哪一个Mapper接口 就配置哪个相对应的Mapper
resource:引入单个映射文件的标识:与每一个映射文件自定义文件名相同【需要加后缀】
11.<mappers 根标签> 【基于注解配置sql语句 使用这个Mappers标签中的格式】
<package标签 name属性/>
</mappers>
a.mappers标签:解释同上
package属性:值是 你的数据访问层的哪个接口所在的是哪个包 需要注意的是:这里是包路径而不是文件路径 而且包路径可以不用那么精确
比如 准确包路径是: com.xxx.mapper 写成 com.xxx也可以 写成 com也可以【底层通过遍历找到】

关于mybatis的应用的更多相关文章

  1. 【分享】标准springMVC+mybatis项目maven搭建最精简教程

    文章由来:公司有个实习同学需要做毕业设计,不会搭建环境,我就代劳了,顺便分享给刚入门的小伙伴,我是自学的JAVA,所以我懂的.... (大图直接观看显示很模糊,请在图片上点击右键然后在新窗口打开看) ...

  2. Java MyBatis 插入数据库返回主键

    最近在搞一个电商系统中由于业务需求,需要在插入一条产品信息后返回产品Id,刚开始遇到一些坑,这里做下笔记,以防今后忘记. 类似下面这段代码一样获取插入后的主键 User user = new User ...

  3. [原创]mybatis中整合ehcache缓存框架的使用

    mybatis整合ehcache缓存框架的使用 mybaits的二级缓存是mapper范围级别,除了在SqlMapConfig.xml设置二级缓存的总开关,还要在具体的mapper.xml中开启二级缓 ...

  4. 【SSM框架】Spring + Springmvc + Mybatis 基本框架搭建集成教程

    本文将讲解SSM框架的基本搭建集成,并有一个简单demo案例 说明:1.本文暂未使用maven集成,jar包需要手动导入. 2.本文为基础教程,大神切勿见笑. 3.如果对您学习有帮助,欢迎各种转载,注 ...

  5. mybatis plugins实现项目【全局】读写分离

    在之前的文章中讲述过数据库主从同步和通过注解来为部分方法切换数据源实现读写分离 注解实现读写分离: http://www.cnblogs.com/xiaochangwei/p/4961807.html ...

  6. MyBatis基础入门--知识点总结

    对原生态jdbc程序的问题总结 下面是一个传统的jdbc连接oracle数据库的标准代码: public static void main(String[] args) throws Exceptio ...

  7. Mybatis XML配置

    Mybatis常用带有禁用缓存的XML配置 <?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE ...

  8. MyBatis源码分析(一)开篇

    源码学习的好处不用多说,Mybatis源码量少.逻辑简单,将写个系列文章来学习. SqlSession Mybatis的使用入口位于org.apache.ibatis.session包中的SqlSes ...

  9. (整理)MyBatis入门教程(一)

    本文转载: http://www.cnblogs.com/hellokitty1/p/5216025.html#3591383 本人文笔不行,根据上面博客内容引导,自己整理了一些东西 首先给大家推荐几 ...

  10. MyBatis6:MyBatis集成Spring事物管理(下篇)

    前言 前一篇文章<MyBatis5:MyBatis集成Spring事物管理(上篇)>复习了MyBatis的基本使用以及使用Spring管理MyBatis的事物的做法,本文的目的是在这个的基 ...

随机推荐

  1. pip freeze > requirements.txt` 命令输出文件中出现文件路径而非版本号

    pip freeze > requirements.txt 命令输出文件中出现文件路径而非版本号 解决办法: pip list --format=freeze > requirements ...

  2. java中接口interface和private私有内部类怎样一块配合着用?

    3.接口interface和private内部类协同工作[新手可忽略不影响继续学习]马克-to-win:由于是private内部类,外面无法访问甚至无法看到你编的源代码(如果在不同的包中),非常安全. ...

  3. python if else代码优化

    开发过程遇到一个问题,用户的性别在数据库中存储时并不会用中文表示,数据库使用male.female.other代表男性.女性和其他,可接口传给前段时希望用户的性别是中文,这时就需要转换. 下面这段代码 ...

  4. Sql递归查询,Sqlserver、Oracle、PG、Mysql

    递归分两种:一种由父项向下级递归,另一种是由子项向上级递归.下面就这两种情况做个简单的处理. 假设有一个表treeview,包含字段 id,parentid,text 分别代表id,上级id,描述字段 ...

  5. springboot项目找不到符号问题以及模块聚合项目maven插件使用的相关问题

    问题如图 更换maven,清空缓存重新导入依赖依然无效后 解决方法: 方式一:删除项目中.idea文件夹,重新打开项目,选中jdk版本 ,重新导入依赖即可. 最近又遇到找不到符号问题,本地运行没问题, ...

  6. A. And Matching

    分析题目:这道题的题目是说给定一个2的幂次n,然后要求我们从0~n-1这n个数中不重复的挑选两个进行配对,要求配对后的每一对按位与之和为k: 而且k的话还是从0~n-1都有的: 既然题目都这样说了,那 ...

  7. 基于HiKariCP组件,分析连接池原理

    HiKariCP作为SpringBoot2框架的默认连接池,号称是跑的最快的连接池,数据库连接池与之前两篇提到的线程池和对象池,从设计的原理上都是基于池化思想,只是在实现方式上有各自的特点:

  8. 认识python-个人笔记篇

    认识python 1 .python 的发展历史 一种广泛使用的解释型.高级编程.通用型编程语言,由"龟叔"吉多·范罗苏姆创造,第一版发布于1991年. Python的设计哲学强调 ...

  9. 论文解读(GCC)《Graph Contrastive Clustering》

    论文信息 论文标题:Graph Contrastive Clustering论文作者:Huasong Zhong, Jianlong Wu, Chong Chen, Jianqiang Huang, ...

  10. 硬件开发笔记(一):高速电路设计Cadence Aleego软件介绍和安装过程

    前言   红胖子软硬通吃的前提的使用AD,涉及到高速电路板,要配合高速硬件工程师,使用Aleegro更合适,遂开启了Aleegro设计电路板学习,过程保存为开发笔记,旨在普及和沟通技术,共同进步,学无 ...