MyBatis学习笔记--基础知识

什么是MyBatis:

①MyBatis框架是一个持久层/ORM框架,可以完成对数据库的增删改查操作。

支线ORM:(Object/Relation Mapping): 对象/关系映射

它的作用是在关系型数据库和业务实体对象之间作一个映射,这样,我们在具体的操作业务对象的时候,就不需要再去和复杂的SQL语句打交道,只需简单的操作对象的属性和方法。

ORM的优势和缺点:

优点:

1--隐藏了数据访问的细节,“封闭”的通用数据库交互,ORM的核心。它使得我们的通用数据库交互变得简单易行并且完全不用考虑sql语句。快速开发。

2--ORM使我们构造固化数据结构变得简单易行

缺点:

1--牺牲了性能

②对原有JDBC的操作进行了封装,MyBatis消除了几乎所有的JDBC代码,解决了JDBC操作数据库时存在的冗余问题。

搭建MyBatis开发环境

需求:需要获取SqlSession对象

SqlSessionFactory 中获取 SqlSession

SqlSession session = sqlSessionFactory.openSession();

什么是sqlsession对象?

相当于以前JDBC的Connection对象,既获取一个数据库连接,这个SqlSession对象可以帮助我们完成整个数据库操作任务,SqlSession 是java程序和数据库之间连接会话,HttpSession 是浏览器和服务器之间的会话

@param 注解的形参传递多个参数,如果是只有一个参数,在mybatis里的#{ }里可以写任意字母接受,如果超过一个需要用@param在形参类型前边加注释,在mybatis里用注释起的名字接收

MyBatis配置文件里的Association和collection标签

association(多对一) : 对于多对一查询的结果映射的时候使用,association 处理实体类对象类型

collection(一对多):对于一对多查询的结果映射的时候使用,用collection 处理集合类型

小技巧:

1) mybatis里的sql语句里,可以用标签来进行模糊查询;

2) 使用oracle数据库必须用三层嵌套来实现分页查询,因为“<”在mapper.xml配置文件里<是一个类似关键字,所以通常会用 <来代替,或者把sql语句写到里或者单独把<号写到里边。

#{ }和${ }的区别:

#方式能够很大程度防止sql注入。

#格式的sql能够预编译,能在内存中保存sql语法,不用重新组装sql语法

$方式无法防止Sql注入。

$方式一般用于传入数据库对象,例如传入数据库表名

注意:

MyBatis排序时使用order by 动态参数时需要注意,使用${}而不用#{};


你可能感兴趣的:(MyBatis)