搭建mybatis环境

1, 导入需要的jar包
  mybatis-*.*.*.jar
  ojdbc6.jar

2, 配置mybatis的总配置文件: mybatis-config.xml
  配置根标签

<!-- 根标签 -->
<configuration>
<!--
引入属性文件
属性文件通常写数据库连接的信息
username(注意一个问题, 属性文件中不要单独写一个username)
password
url
driverClass
-->
<property resource="属性文件所在src下的位置" /> <!-- 或者直接定义属性值 -->
<properties>
<property name="jdbc.username" value="test" />
<property name="jdbc.password" value="test" />
<property name="jdbc.driverClassName" value="oracle.jdbc.OracleDriver" />
<property name="jdbc.url" value="jdbc:oracle:thin:@localhost:1521:orcl" />
</properties> <!-- 为实体类定义一个别名, 如果不定义别名, 在映射文件中就要写这个实体类的全路径名 -->
<typeAliases>
<!-- 这个写法取的别名是随意的, 可以自己任意定义 -->
<!-- <typeAlias type="类名的全路径名" alias="别名"></typeAlias> -->
<!-- 如果使用下面这个写法, 就是按照mybatis自己定义的规则, 这个包下的所有类的类名就是别名 -->
<package name="com.model"/>
<!-- 使用package标签实际是默认扫描model包下的所有的类, 如果在实体类的定义了注解@Alias(value = "..."), 则优先使用注解 -->
</typeAliases> <!-- 配置mybatis的运行环境们 -->
<environments default="所使用的环境的标签id">
<environment id="default">
<!--
配置事务管理器的类型
JDBC
MANAGED--(托管, 商业服务器上才有的功能, Tomcat没有)
-->
<transactionManager type="JDBC" />
<!--
POOLED(基于连接池的数据源)
UNPOOLED(使用普通的数据库连接)
JNDI(使用应用服务器上的JNDI连接配置数据源, 很少使用)
-->
<dataSource type="POOLED">
<property name="username" value="${属性文件中配置的信息}"></property>
<property name="password" value="${属性文件中配置的信息}"></property>
<property name="url" value="${属性文件中配置的信息}"></property>
<property name="driver" value="${属性文件中配置的信息}"></property>
</dataSource>
</envirment>
</environments>
<mappers>
<!-- 挨个写明每个映射文件所在的位置 -->
<mapper resource="src下mapper映射文件的全路径名">
<!-- 写明每个映射文件所对应的接口的限定名, package引入的文件一定是接口,
所以如果使用这种方式, 必须是使用接口对应映射文件的方式 -->
<package name="接口所在的包" />
</mappers>
</configuration>

3, 新建每个实体类的映射文件...Mapper.xml

<!-- 定义每个实体类的映射文件 -->
  <mapper namespace="唯一的id / 接口的全路径名">
    <select id="被调用的id(唯一) / 需要执行的方法名"></select>
  <insert></insert>
  <update></update>
  <delete></delete>
  </mapper>

  resultType: 类的全路径名 / 定义好的别名
  resultMap: 指定返回结果的集合
  parameterType: 指的是, 进行查询的时候所需要的参数类型

4, 写测试类运行mybatis

MybatisUtil
两步:
1, 构建SqlSessionFactory
InputStream in = Resources.getResourceAsStream("总配置文件所在的src下的路径");
SqlSessionFactory ssf = new SqlSessionFactoryBuilder().build(in);
2, 构建SqlSession(注意SqlSession不能以一个class成员变量的身份被返回)
SqlSession ss = ssf.openSession();
3, 直接运行
a: 直接运行映射文件中的sql语句
ss.select...
ss.insert...
ss.update...
ss.delete...
b: 使用接口映射配置文件
ss.getMapper(接口类名.class);
调用接口的方法 一对一, 一对多查询
1, 一对一
映射文件中写明resultMap, 这时sql语句一定用关联查询多个表的内容
<resultMap type="类名" id="...">
<id property="实体类中成员变量的名字" column="查询结果中的列名" />
<result property="成员变量的名字" column="查询结果中的列名" />
...
<!-- 对象级联 -->
<result property="major.majorid" column="查询结果中的列名" />
<result property="major.mname" column="查询结果中的列名" />
</resultMap>
<resultMap type="类名" id="...">
<id property="实体类中成员变量的名字" column="查询结果中的列名" />
<result property="成员变量的名字" column="查询结果中的列名" />
...
<!-- 对象级联 -->
<association property="major" resultMap="定义好的另一个resultMap" />
</resultMap>
<resultMap type="类名" id="...">
<association property="属性名" select="其他映射文件中的查询语句" />
</resultMap>
2, 一对多
<resultMap type="类名" id="...">
<collection property="students" select="其他映射文件中的查询语句" />
</resultMap>

动态sql语句

1, <if>条件
<if test="key!=null">
拼接sql语句
</if>
2, <choose><when><otherwise>
<choose>
<when test="key=='value'">
拼接sql语句
</when>
<when test="key=='value'">
拼接sql语句
</when>
<otherwise>
拼接sql语句
</otherwise>
</choose>
3, <where>
自动添加where关键字
如果where子句第一句中有 or 或者 and 则删除第一个
4, <trim>
功能与<where>类似, 并且提供了前缀, 后缀的添加, 更加灵活
5, <foreach>
用来遍历传入的集合参数
item(定义集合中每个对象的名字),
collection(集合的对象的名字),
open(定义开始的字符),
close(定义结束的字符),
separator(定义分割的字符)
6, <set>
主要用于update
自动加上set关键字
自动剔除最后一个 ","
7, <sql>
经常用于一些常用或者固定的语句, 在外面定义一个语句, 在各种标签中引入
使用include, 相当于直接写在上面
8, <selectKey>
用于不支持自增长主键的数据库, 尽量避免写这个东西 < < 小于号
> > 大于号
& & 和
' ’ 单引号
" " 双引号 <![CDATA[]]>

  

 

Mybatis基本用法的更多相关文章

  1. Mybatis基本用法--下

    Mybatis基本用法--下 第七部分 mybatis-spring-boot-starter 官网:http://www.mybatis.org/spring-boot-starter/mybati ...

  2. Mybatis基本用法--中

    Mybatis基本用法--中 第四部分 动态 SQL 动态 SQL 元素和使用 JSTL 或其他类似基于 XML 的文本处理器相似.MyBatis 采用功能强大的基于 OGNL 的表达式来消除其他元素 ...

  3. Mybatis基本用法--上

    Mybatis基本用法--上 本文只是为自己查漏补缺.全面的请看官方文档,支持中英文 原理参考:http://blog.csdn.net/luanlouis/article/details/40422 ...

  4. SpringBoot示例教程(一)MySQL与Mybatis基础用法

    示例需求 在Springboot2框架中,使用Mysql和Mybatis功能:1. Mysql+Datasource集成2. Mybatis+XML用法详解 数据库准备 采用了Oracle中的scot ...

  5. mybatis简单用法

    1.resultType 和 resultMap 引言: MyBatis中在查询进行select映射的时候,返回类型可以用resultType,也可以用resultMap,resultType是直接表 ...

  6. mybatis generator 用法

    <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE generatorConfiguration ...

  7. mybatis like用法

    针对不同的数据库,like的用法是不一样的,现在具体来说一下 1,SQL SERVER SELECT * FROM user WHERE name like '%'+#{name}+'%' 2,Ora ...

  8. MyBatis基础用法(一)

    <select id="getErrorTimes" resultType="Integer"> SELECT ErrorTimes FROM `e ...

  9. Example [mybatis] 的用法

    example.or() .andField1EqualTo() .andField2IsNull(); example.or() .andField3NotEqualTo() .andField4I ...

随机推荐

  1. Selenium入门19 捕获异常

    脚本出现异常时会中断执行,想要继续执行就要做异常处理: 1 try ... except .... else   遇到异常显示异常信息: 没有异常继续执行else后面的脚本 2 try ... exc ...

  2. Treap 实现名次树

    在主流STL版本中,set,map,都是BST实现的,具体来说是一种称为红黑树的动态平衡BST: 但是在竞赛中并不常用,因为红黑树过于复杂,他的插入 5 种,删除 6 中,代码量极大(如果你要改板子的 ...

  3. 广搜最短路径变形,(POJ3414)

    题目链接:http://poj.org/problem?id=3414 解题报告: 1.每个节点都是一个独立的状态 2.这里的状态转移就是有几种出路,4种:1.倒掉a中的水,2.把a中的水倒到b中去, ...

  4. NYOJ(42)欧拉图

    题目链接:http://acm.nyist.net/JudgeOnline/problem.php?pid=42 我是参考了红黑联盟的结题报告了的.但是有一个位置,应该是红黑联盟写错了吧,就是那个连通 ...

  5. SSM框架整合:转自:http://blog.csdn.net/zhshulin

    使用SSM(Spring.SpringMVC和Mybatis)已经有三个多月了,项目在技术上已经没有什么难点了,基于现有的技术就可以实现想要的功能,当然肯定有很多可以改进的地方.之前没有记录SSM整合 ...

  6. java的四个元注解 @Retention @Target @Document @Inherited

    1.  @Retention  :注解的保留位置 @Retention(RetentionPolicy.SOURCE)  //注解仅存在于源码中,在class字节码文件中不包含 @Retention( ...

  7. react(一):组件的生命周期

    最近兄弟团队让我去帮忙优化两个页面,前端用的react全家桶,后端用的python,上一次写react代码都过去一年了,顺着以前的的学习思路,再捋顺一下react的要点 组件的生命周期就是Reac的工 ...

  8. Navicat-12.0.26的激活

    1.卸载掉早期版本,卸载干净,然后安装最新版Navicat(使用群文件中Iobit uninstaller8卸载) 2.安装完成后将破解补丁复制到安装目录下,运行破解补丁. 4.先patch,然后选择 ...

  9. xml解析之stax

    博文引自:http://zangweiren.iteye.com/blog/647334 Java 6.0对XML支持的新特性有许多方面.比如StAX.针对XML-Web服务的Java架构(JAX-W ...

  10. 虚拟机桥接模式下多台Ubuntu16.04系统互相连接

    1.首先新建一个虚拟机并在该虚拟机上安装Ubuntu16.04系统.为这台虚拟机起名为Ubuntu3. 2.对Ubuntu3进行克隆,为新克隆生成的虚拟机起名为Ubuntu2.(这时我们会发现Ubun ...