接下来,谈一谈再学习mybatis中遇到的几个问题,主要集中再.xml配置
文件中。
(一、)我们首先来了解一下OGNL(object graphic navigation language),,它是一种功能强大的表达式语言,通过它简单一致的表达式语法,可以存取对象的任意属性,调用对象的方法,遍历整个对象的结构图,实现字段类型转化等功能。它使用相同的表达式去存取对象的属性。
而mybatis就是用它来解析对象字段的值,#{}或者¥{}中的)值为pojo(实体类)属性名称。
而又因为再parametertype中已经提供了属性所属的类,所以我们可以直接写出如下形式:
(二、)其次,我们再来讨论一下困扰很久且容易事务的问题----实体类属性和数据库列名不一致
针对上述问题,有两种解决思路:
-
1.配置《resultmap》,并将其用到查询语句的配置内容中:(开发效率高)
type配置的是实体类,property配置的是实体类中属性名,column则是数据库的列名。resultmap是配置使用该内容。 -
2.再数据库查询语句中使用别名的方式,使其查询出的结果和实体类的名称一致。(执行效率高)
(三、)当配置jdbc配置时,可以选择再mybatiscongfig.xml中直接及配置,如下图:
也可以在另写一个配置文件jdbcconfig.properties:
然后再mybatisconfig.xml中配置一下,引入该文件:
(四、)在持久层dao.xml文件中,配置sql语句时,要写很多全限定类名,很繁琐,mybatis为我们提供了别名的方式来简化配置,而且在运用时不区分大小写,主要有两种方式: -
1.TypeAliases,但它只能配置实体类。
-
2.PackKage,
此外,package还能再mappers中配置dao接口所在的包:
好的,我目前遇到的问题就是以上几个,希望能够帮到大家,还望多多交流,不正的地方请指正。