MyBatis别名与util类技能了解

时间:2023-12-21 11:55:56

1.别名

在java中String类型就是String类型,但是在MyBatis中可不会识别java中的类型,在MyBatis中String类型的别名是'string',小写的String,或者也可以写成java.long.String。还有好多类型,基本数据类型在MyBatis中都有别名。

而且在MyBatis中不但有内置的别名,我们还可以自定义别名。

然后在咱们的小配置中的resultType的参数是咱们的实体类的全路径。

MyBatis别名与util类技能了解

这样的话是不是很麻烦,我们可以给他自定义一个别名叫"Book"。 定义别名的第一步找到咱们的大配置文件中。

MyBatis别名与util类技能了解

这样肯定是没有问题的,但是一定要注意一点,那就是在大配置中的configguration内的标签顺序不能变,现在我们可以看一下他底层的顺序, 

 MyBatis别名与util类技能了解

MyBatis别名与util类技能了解

 

 我们现在可以看一下如果顺序写错了,会怎么样。

MyBatis别名与util类技能了解

这样写会是说指定一个类的别名,如果我有好几个呢?这样一个一个写那不是太麻烦了,所以有一个解决办法,那就是在typeAliases中写package标签,就是在这个包下的类可以一个标签实现都有别名,比较方便。

MyBatis别名与util类技能了解

2.util类

在MyBatis中的核心:

SqlSessionFactoryBuilder:他是根据你的配置然后通过他的build方法去构建一个SqlSessionFactory(简单工厂)

SqlSessionFactory:他有一个openSession方法去构建一个SqlSession对象。SqlSessionFactory是一个接口,不能new自己.

SqlSession:SqlSession提供了一些对数据库的操作(增删改查)。

还提供了commit方法用于事务。和close关闭的方法。

 

在什么情况下类不可以实例化:

  1. 他是抽象类或接口
  2. 构造私有化
  3. 没有构造方法

可以把常用的一些成员封装进去,方便使用。在测试类不需要写这些重复的代码,可以直接使用util类.getSeesion方法。我们看一下代码:    这些定义成了static,方便调用,static成员不属于对象,属于类。

然后在测试类中调用util的方法,可以实现增删改查比普通的方便,快捷,效率高。

MyBatis别名与util类技能了解

3.普通实现增删改查

使用我们刚学的MyBatis实现增删改查,

1.写实体类,写接口,写对应接口的小配置,然后使用mappers标签关联大配置。然后写项目的pom.xml文件的build,可以识别到小配置。    如果截图看不懂,可以去看我上一篇博客初始MyBatis,哪里讲这个很细。

 

大配置中:

MyBatis别名与util类技能了解

pom.xml中:

MyBatis别名与util类技能了解

小配置中:

MyBatis别名与util类技能了解

测试类中:

MyBatis别名与util类技能了解

 MyBatis别名与util类技能了解

 session有个getMapper()方法,可以实现代理,比实例化的级别要高。