MyBatis精简使用与配置

使用MyBatis首先需要熟悉JDBC的相关知识:

 对jdbc问题总结 

数据库连接

在用的时候打开数据库连接,在不用的时候关闭,频繁的开关和关闭,是一种资源的浪费

解决办法:利用连接池的方式连接数据库

Sql语句写在代码中:

sql写死在java代码中,不利于维护。一旦sql变更,需要重新编译java代码。 

解决办法:将sql写在配置文件中,让程序读取配置文件

结果集遍历

将列名写死在代码中,而且,需要人工的去封装称实体层对象,开发很繁琐。

解决办法: 通过某中机制,将从数据库查询出来的结果,自动的封装到实体类的对象中去

 

 Mybatis

 原理:

                                            MyBatis精简使用与配置

                                                                     MyBatis精简使用与配置

                                             MyBatis精简使用与配置

                                                                      MyBatis精简使用与配置 

                                             MyBatis精简使用与配置        

                                                                     MyBatis精简使用与配置

                                              MyBatis精简使用与配置                     

                                                                     MyBatis精简使用与配置    

                                     MyBatis精简使用与配置          MyBatis精简使用与配置MyBatis精简使用与配置

                                                                                MyBatis精简使用与配置

 MyBatis精简使用与配置                    MyBatis精简使用与配置            MyBatis精简使用与配置    

 

 

 

1.1.1           

环境搭建:

创建项目,加入jar包:    

                                             MyBatis精简使用与配置

 

Mybatis-config.xml:

                MyBatis精简使用与配置

XXXMapper.xml:

                MyBatis精简使用与配置

 

实体层的属性要和表中的列名一一对应

                 MyBatis精简使用与配置


                MyBatis精简使用与配置 

 

测试类:

                MyBatis精简使用与配置

                 MyBatis精简使用与配置

 

                 MyBatis精简使用与配置


                MyBatis精简使用与配置

                MyBatis精简使用与配置 

 

1.1 Mybatis开发dao两种方式 

1.1.1 原生dao开发方法(接口、实现类)

程序员需要自己去定义接口和接口实现类,在创建接口对象的时候,用的是自定义的接口实现类

 

UserDao  userDao = new UserDaoImpl()

1.1.2 Mybatismapper接口(代理开发方法) 

程序员只需要自己去定义接口,但是接口定义要尊徐一些规则,在创建接口对象的时候,mybatis框架会自动去实现接口,并把接口的对象创建出来

 

 

定义接口要遵循的规则:

1. XXXMapper.xml namespace  要设置成接口全路径

 MyBatis精简使用与配置

 MyBatis精简使用与配置

 

2.XXXMapper.xml中标签id 要和接口的方法名保持一致

3.XXXMapper.xml中标签 parameterType  就是接口方法的参数类型

4.XXXMapper.xml中标签 resultType   就是接口 方法返回值

 MyBatis精简使用与配置


MyBatis精简使用与配置

测试:

MyBatis精简使用与配置

添加测试类的方法:

在类上右击----new----other----输入junit----选择 junit test case ---next—next(选择要用junit测试的方法)---finish

MyBatis精简使用与配置

MyBatis精简使用与配置 

 MyBatis精简使用与配置

 

 

1.1 Mybatis的配置文件mybatis-config.xml

Properties  属性

 MyBatis精简使用与配置

MyBatis精简使用与配置

MyBatis精简使用与配置

Settings 全局配置参数

用的的时候就去设置,不用就不用设置。一般情况都是使用默认配置

typeAliases 类型别名

给单独的一个类其别名

MyBatis精简使用与配置

给某一个包下所有类起别名,别名就是类名

MyBatis精简使用与配置

typeHandlers 类型处理器 :把java中的数据类型转换成jdbc的数据类型,也可以把jdbc数据类型转换为java的数据类型

 

mappers 映射器

通过resource 属性加载XXXmapper.xml文件

MyBatis精简使用与配置

通过接口名加载XXXmapper.xml文件。规则要记住

MyBatis精简使用与配置

同时加载多个mapper.xml文件

MyBatis精简使用与配置

1.1 Mybatis核心 

1.1.1 输入映射 

通过parameterType进行映射的,他的类型可以是基本数据类型,自定义的类,包装类

 

自定义的包装类:

MyBatis精简使用与配置

Mapper的配置

MyBatis精简使用与配置

接口方法定义

MyBatis精简使用与配置

测试


MyBatis精简使用与配置

MyBatis精简使用与配置

1.1.1 输出映射 

resultType : sql语句中的列名和实体类中的属性名一致的时候,查询结果可以自动封装到实体类的对象中,一旦给列起别名或者只查询某几列,实体类的属性就有为null的时候。

 

resultMap : 当查询sql语句和实体类的属性名不一样的时候。

 

Mapper:

MyBatis精简使用与配置

接口

MyBatis精简使用与配置

测试

MyBatis精简使用与配置

1.1 Mybatic动态sql

If判断

MyBatis精简使用与配置

Sql片段

MyBatis精简使用与配置

foreach

MyBatis精简使用与配置

接口定义

MyBatis精简使用与配置

测试

MyBatis精简使用与配置

MyBatis精简使用与配置

MyBatis精简使用与配置