Mybatis的入门基础与入门查询内容讲解
树图思维导图提供 Mybatis入门思维脑图 在线思维导图免费制作,点击“编辑”按钮,可对 Mybatis入门思维脑图 进行在线思维导图编辑,本思维导图属于思维导图模板主题,文件编号是:ef6deb9c3c8db15da21b74f60f030754
Mybatis-01思维导图模板大纲
mybatis是一个优秀的基于libatis的Java持久层框架,它内部封装了JDBC 使开发者只需 要关注sql语句本身,而不需要花费精力去处理加载驱动、创建连接、创建statement等繁杂 的过程。
mybatis通过xml或注解的方式将要执行的各种statement(sql语句)配置起来 并通 过java对象和statement中sql的动态参数进行映射生成最终执行的sql语句
最后mybatis框架执行sql并将结果映射为java对象并返回。采用ORM思想解决了实体和数 据库映射的问题,对jdbc 进行了封装,屏蔽了jdbc api 底层访问细节,使我们不用与jdbc api 打交道,就可以完成对数据库的持久化操作
Object relation Mapping(对象关系映射)
让JavaBean实体类对象 和 数据库表之间产生映射关系,是我们可以通过操作实体类对象,操作数据库表中的数据,称之为ORM思想
1:映射文件中编写添加sql语句
Mapper接口中编写对应的方法
单元测试编写对应的代码
6.1. SqlSessionFactory
一个SqlSessionFactory表示一个连接会话工厂
一个SqlSessionFactory只能链接一个数据库实例,如果需要链接多个数据库,则需要构建多个SqlSessionFactory对象
在构建SqlSessionFactory时可以指定environment的id,表示使用指定的数据据来构建factory对象
SqlSessionFactory是线程安全
6.2. SqlSession
一个SqlSession对象代表一次到数据库的会话 ,该对象有以下功能:
1:获取Mapper实现类 2:处理事务操作
注意: SqlSession对象是非线程安全的,在多线程环境下,建议不要作为类的全局属性来 用。
6.3. Mapper
Mapper接口类(dao接口类)
定义了增删查改的方法,注意必须是Interface类型,而且方法只需要定义就可以了
Mapper配置文件(映射配置文件)
Mapper配置文件中就是负责实现接口中的方法,它定义了具体要执行什么SQL语句,如何映射结果集
配置文件中select、delete、update、insert标签的id必须是对应接口中的方法名。
mapper文件的namespace属性需要对应Mapper接口的全限定名。
核心配置文件的作用
核心配置文件时Mybatis的入口,他里面可以配置mybatis的具体参数,数据源,类型别名,关联映射文件等
MyBatis 的配置文件包含了会深深影响 MyBatis 行为的设置和属性信息。 配置文档的顶层结构 如下:
configuration(配置)
properties(属性)
settings(设置)
typeAliases(类型别名)
typeHandlers(类型处理器)
objectFactory(对象工厂)
plugins(插件)
environments(环境配置)
environment(环境变量)
transactionManager(事务管理器)
dataSource(数据源)
databaseIdProvider(数据库厂商标识)
mappers(映射器)
注意:上面的顺序就是实际配置顺序,顺序不对会报错的
7.2. Properties属性配置
属性配置可以直接在properties内部配置,也可以引入外部配置文件,如果两个都使用了,外 部配置文件会覆盖properties内部的配置。
7.3. Settings设置参数
Mybatis支持的设置参数非常多, 其中绝大多数我们都无需关注。 比较有用的参数
TypeAliases类型别名
类型别名可为 Java 类设置一个缩写名字。 它仅用于 XML 配置,意在降低冗余的全限定类名 书写 。 配置了别名的类型在映射文件中就可以使用类的别名,而不用写全名称了。 使用示例:
1:创建项目,在项目中创建新模块,在新模块的 pom.xml文件中引入依赖
2.创建数据库表
3.在新模块,src/main/java/com/lanou/bean 中创建实体类
public class User { private Integer id; private String userName; private String password; public User() { } public User(Integer id, String userName, String password) { this.id = id; this.userName = userName; this.password = password; } public User(String userName, String password) { this.userName = userName; this.password = password; } public Integer getId() { return id; } public void setId(Integer id) { this.id = id; } public String getUserName() { return userName; } public void setUserName(String userName) { this.userName = userName; } public String getPassword() { return password; } public void setPassword(String password) { this.password = password; } @Override public String toString() { return "User{" + "id=" + id + ", userName='" + userName + '\'' + ", password='" + password + '\'' + '}'; }
4.编写Mybatis核心配置文件
核心配置文件主要用来配置Mybatis的配置, 比如:数据源配置,别名配置,映射文件引入,分页,外部文件引入,等等
在src/main/resources/jdbc.properties创建jdbc.properties配置重要参数 #配置自定义的数据库驱动,链接,用户名和密码
在 src/main/resources/Mybatis-Config.xml 中创建Mybatis-Config.xml文件
5.编写Mybatis映射配置文件
src/main/resources/mapper/ 在以上文件夹中建立映射文件UserMapper.xml
6:编写Mapper(dao)接口
注意:Mapper接口是没有实现类的,Mybatis可以通过代理的方式自动设置Mapper接口的实现类,通过自动映射的方式找到映射文件总的sql语句 为了映射成功,映射文件编写需要遵守以下规则:
1:namespace必须为接口全类名 2:statement id标识必须和接口中的方法名名一致; 3:resultType返回值类型必须和接口方法的返回值类型一致 4:parameterType参数类型必须和接口方法的参数类型一致 如若不遵守,则会报错!!!
7:编写单元测试代码
思维导图模板大纲
树图思维导图提供 1107文家市玉萍思维导图 在线思维导图免费制作,点击“编辑”按钮,可对 1107文家市玉萍思维导图 进行在线思维导图编辑,本思维导图属于思维导图模板主题,文件编号是:ed943ef641f6dc874860eb6095857ed6
树图思维导图提供 种子思维脑图 在线思维导图免费制作,点击“编辑”按钮,可对 种子思维脑图 进行在线思维导图编辑,本思维导图属于思维导图模板主题,文件编号是:86f8307a40ea24607c6c79354e09377f