MyBatis框架搭建及教程(详解)中

简介: MyBatis框架搭建及教程(详解)

1.6,编写测试类

为了方便测试类管理,我们一般会在项目中创建一个test文件夹,用来存放测试相关的代码。右击项目创建test文件夹,然后右击test文件夹创建test类。如图:


6e8f722e9e01cfdf5a9a0f4cc50a35a7_77d05c3ec3784b03bea011909e68b1ec.png


然后开始在这个测试类中编写代码:


package com.demo.test;
import com.demo.bean.Student;
import com.demo.dao.StudentMapper;
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 java.io.IOException;
import java.io.InputStream;
import java.util.List;
public class test {
    public static void main(String[] args) {
        // 加载mybatis.xml文件
        String resource = "mybatis.xml";
        InputStream inputStream = null;
        SqlSession sqlSession = null;
        StudentMapper studentMapper = null;
        try {
            inputStream = Resources.getResourceAsStream(resource);
            SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
            // 开启事务,自动提交事务(无参--手动提交)
            sqlSession = sqlSessionFactory.openSession();
            studentMapper = sqlSession.getMapper(StudentMapper.class);
            List<Student> students = studentMapper.getlist();
            for (Student student1 : students) {
                System.out.println(student1.getName() + student1.getAge());
            }
        } catch (IOException e) {
            e.printStackTrace();
        } finally {
            // 关闭sqlSession,从当前线程移除
            sqlSession.close();
        }
    }
}


测试代码如下:


3722685a8c758d84be8780393cb30764_241309feb5a349caacf360147f57d381.png


二,实现方式


2.1,SQL映射的xml文件

MyBatis真正的特色在于SQL映射语句,功能强大,使用简单

SQL映射文件的几个顶级元素


  • mapper
  • namespace属性,区别不同的mapper
  • namespace和子元素的id联合保证唯一
  • 绑定DAO接口
  • namespace的命名必须跟某个接口同名
  • 接口中的方法与映射文件中SQL语句id一一对应


<mapper namespace="com.demo.dao.StudentMapper">
    <select id="getlist" .....>
        .......
    </select>
</mapper>


2.2,sleect标签


  • select是MyBatis中最常用的元素之一
  • select元素有很多属性,可以详细配置每一条查询语句
  • id
  • 命名空间中唯一的标识符
  • 接口中的方法与映射文件中的SQL语句id一一对应
  • parameterType
  • 传入SQL语句的参数类型
  • resultType
  • SQL语句返回值类型的完整类名或别名


<mapper namespace="com.demo.dao.StudentMapper">
    <select id="getlist" parameterType="int" resultType="com.demo.bean.Student">
        select * from student
    </select>
</mapper>


2.3,传递多个参数:


  1. 使用Map传递参数
  2. 使用注解传递参数
  3. 使用JavaBean传递参数


2.4,insert标签:

MyBatisinsert 标签用来定义插入语句,执行插入操作。当 MyBatis 执行完一条插入语句后,就会返回其影响数据库的行数。

在StudentMapper.xml映射文件中,增加节点,插入语句,代码如下


<insert id="addStudent" useGeneratedKeys="true" keyProperty="id" keyColumn="id" parameterType="com.xinxi2.bean.Route">
        INSERT INTO route(`name`,`pwd`,`age`)
                values (#{name},#{pwd},#{age})
    </insert>


在 StudentMapper接口中定义一个 addStudent() 方法,代码如下:


int addStudent(Student student );


三,动态SQL:


3.1,概述:

动态 SQL 是 MyBatis 的强大特性之一。如果你使用过 JDBC 或其它类似的框架,你应该能理解根据不同条件拼接 SQL 语句有多痛苦,例如拼接时要确保不能忘记添加必要的空格,还要注意去掉列表最后一个列名的逗号。利用动态 SQL,可以彻底摆脱这种痛苦。


使用动态 SQL 并非一件易事,但借助可用于任何 SQL 映射语句中的强大的动态 SQL 语言,MyBatis 显著地提升了这一特性的易用性。


如果你之前用过 JSTL 或任何基于类 XML 语言的文本处理器,你对动态 SQL 元素可能会感觉似曾相识。在 MyBatis 之前的版本中,需要花时间了解大量的元素。借助功能强大的基于 OGNL 的表达式,MyBatis 3 替换了之前的大部分元素,大大精简了元素种类,现在要学习的元素种类比原来的一半还要少。


  1. if
  2. choose (when, otherwise)
  3. trim (where, set)
  4. foreach


3.2,if:

if 语句使用方法简单,常常与 test 属性联合使用。语法如下:


<if test="判断条件">
  SQL语句
</if>


3.3,choose标签:多重条件分支:

有时候,我们不想使用所有的条件,而只是想从多个条件中选择一个使用。针对这种情况,MyBatis 提供了 choose 元素,它有点像 Java 中的 switch 语句。


MyBatis 中动态语句 、、 类似于 Java 中的 switch-case-default多重分支条件语句。由于 MyBatis 并没有为 if 提供对应的 else 标签,如果想要达到…… 的效果,可以借助 、、 来实现。


动态语句 、、 语法如下:


<choose>
    <when test="判断条件1">
        SQL语句1
    </when >
    <when test="判断条件2">
        SQL语句2
    </when >
    <when test="判断条件3">
        SQL语句3
    </when >
    <otherwise>
        SQL语句4
    </otherwise>
</choose>


标签按顺序判断其内部 标签中的判断条件是否成立,如果有一个成立,则执行相应的 SQL 语句, 执行结束;如果都不成立,则执行 中的 SQL 语句。这类似于 Java 的 switch 语句, 为 switch, 为 case, 则为 default。


相关文章
|
6天前
|
SQL Java 数据库连接
MyBatis 框架入门理论与实践
MyBatis 框架入门理论与实践
24 6
|
SQL Java 数据库连接
MyBatis 优秀的持久层框架(一)
MyBatis 优秀的持久层框架
69 0
|
2月前
|
SQL 关系型数据库 Java
Mybatis-Flex框架初体验
Mybatis-Flex框架初体验
|
3月前
|
SQL Java 数据库连接
|
7天前
|
SQL Java 数据库连接
Java从入门到精通:3.1.2深入学习Java EE技术——Hibernate与MyBatis等ORM框架的掌握
Java从入门到精通:3.1.2深入学习Java EE技术——Hibernate与MyBatis等ORM框架的掌握
|
18天前
|
SQL Java 数据库连接
什么是MyBatis持久层框架?
MyBatis 是一个优秀的持久层框架,它支持定制化 SQL、存储过程以及高级映射。MyBatis 避免了几乎所有的 JDBC 代码和手动设置参数以及获取结果集。MyBatis 可以使用简单的 XML 或注解来配置和映射原生信息,将接口和 Java 的 POJOs (Plain Old Java Objects, 普通的 Java 对象) 映射成数据库中的记录。
33 5
|
19天前
|
开发框架 Java 测试技术
XwFast,我开发了一个基于SpringBoot和MyBatisPlus的敏捷开发框架!
XwFast,我开发了一个基于SpringBoot和MyBatisPlus的敏捷开发框架!
32 1
|
2月前
|
SQL XML Java
这样使用MyBatis框架,被攻击了
这样使用MyBatis框架,被攻击了
14 0
|
2月前
|
Java fastjson Apache
Spring Boot+Gradle+ MyBatisPlus3.x搭建企业级的后台分离框架
Spring Boot+Gradle+ MyBatisPlus3.x搭建企业级的后台分离框架
31 1
|
2月前
|
XML Java 数据库连接
Mybatis-Plus学习小项目及详细教程
Mybatis-Plus学习小项目及详细教程