关于mybatis的应用
导入依赖
<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的应用的更多相关文章
- 【分享】标准springMVC+mybatis项目maven搭建最精简教程
文章由来:公司有个实习同学需要做毕业设计,不会搭建环境,我就代劳了,顺便分享给刚入门的小伙伴,我是自学的JAVA,所以我懂的.... (大图直接观看显示很模糊,请在图片上点击右键然后在新窗口打开看) ...
- Java MyBatis 插入数据库返回主键
最近在搞一个电商系统中由于业务需求,需要在插入一条产品信息后返回产品Id,刚开始遇到一些坑,这里做下笔记,以防今后忘记. 类似下面这段代码一样获取插入后的主键 User user = new User ...
- [原创]mybatis中整合ehcache缓存框架的使用
mybatis整合ehcache缓存框架的使用 mybaits的二级缓存是mapper范围级别,除了在SqlMapConfig.xml设置二级缓存的总开关,还要在具体的mapper.xml中开启二级缓 ...
- 【SSM框架】Spring + Springmvc + Mybatis 基本框架搭建集成教程
本文将讲解SSM框架的基本搭建集成,并有一个简单demo案例 说明:1.本文暂未使用maven集成,jar包需要手动导入. 2.本文为基础教程,大神切勿见笑. 3.如果对您学习有帮助,欢迎各种转载,注 ...
- mybatis plugins实现项目【全局】读写分离
在之前的文章中讲述过数据库主从同步和通过注解来为部分方法切换数据源实现读写分离 注解实现读写分离: http://www.cnblogs.com/xiaochangwei/p/4961807.html ...
- MyBatis基础入门--知识点总结
对原生态jdbc程序的问题总结 下面是一个传统的jdbc连接oracle数据库的标准代码: public static void main(String[] args) throws Exceptio ...
- Mybatis XML配置
Mybatis常用带有禁用缓存的XML配置 <?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE ...
- MyBatis源码分析(一)开篇
源码学习的好处不用多说,Mybatis源码量少.逻辑简单,将写个系列文章来学习. SqlSession Mybatis的使用入口位于org.apache.ibatis.session包中的SqlSes ...
- (整理)MyBatis入门教程(一)
本文转载: http://www.cnblogs.com/hellokitty1/p/5216025.html#3591383 本人文笔不行,根据上面博客内容引导,自己整理了一些东西 首先给大家推荐几 ...
- MyBatis6:MyBatis集成Spring事物管理(下篇)
前言 前一篇文章<MyBatis5:MyBatis集成Spring事物管理(上篇)>复习了MyBatis的基本使用以及使用Spring管理MyBatis的事物的做法,本文的目的是在这个的基 ...
随机推荐
- java中时间的规范是按美国,SimpleDateFormat怎么处理
题目3.2: 如果时间的规范是按美国,怎么处理? import java.text.ParseException;import java.text.SimpleDateFormat;import ja ...
- python---十进制转换成n进制
""" 十进制转换成n进制 例子: 100转换成8进制-----144 256除8 商32 余0 32除8 商4 余0 4除8 商0 余4 每次结果的余数进栈, 最后出栈 ...
- JavaWeb知识梳理(可收藏)
**JavaWeb相关知识 ** 1.Servlet 1.1 Status Code(Http状态码) 1.1xx 请求信息 Http状态码 Http Status Code Http状态码含义中文说 ...
- 我们如何上传docker到habor上呢
Docker 打包上传habor认证 首先在 Maven 的配置文件 setting.xml 中增加相关 server 配置,主要配置 Docker registry(远程仓库)用户认证信息. < ...
- js模块系统 - amd|cmd|commonjs|esm|umd
写过前端代码大概率听说过amd cmd umd commonjs esm这些名词, 想当初我第一次看到这些的时候, 人都麻了, 都是些啥啊. 后来我知道了, 这些都是js的模块规范. amd - 浏览 ...
- asp.net core + jenkins 实现自动化发布
由于部署个人博客系统的服务器只有2G内存,每次利用jenkins编译,发布的时候jenkins老是挂,因此新买了一台轻量应用服务器,专门用于个人博客系统的持续发布任务,下面讲解如何利用jenkins实 ...
- mysql的半同步复制
1. binlog dump线程何时向从库发送binlog mysql在server层进行了组提交之后,为了提高并行度,将提交阶段分为了 flush sync commit三个阶段,根据sync_bi ...
- python基础练习题(题目 判断101-200之间有多少个素数,并输出所有素数。)
day7 --------------------------------------------------------------- 实例012:100到200的素数 题目 判断101-200之间 ...
- 比 Navicat 还要好用、功能更强大的工具!
DBeaver 是一个基于 Java 开发,免费开源的通用数据库管理和开发工具,使用非常友好的 ASL 协议.可以通过官方网站或者 Github 进行下载. 由于 DBeaver 基于 Java 开发 ...
- Halo 开源项目学习(一):项目启动
项目简介 Halo 是一个优秀的开源博客发布应用,在 GitHub 上广受好评,正好最近在练习写博客,借此记录一下学习 Halo 的过程. 项目下载 从 GitHub 上拉取项目源码,Halo 从 1 ...