Mybatis(解决属性名和字段名不一致的问题)

349 阅读2分钟

我们从数据库中取到的数据都会交给实体类,然后从实体类中拿到数据并操作数据,所以如果我们数据库中的字段要是和实体类中的属性不一致的话,我们就从实体类中无法得到我们想要的一些数据

解决方法:

就是在Mapper.xml文件中将字段全部写出来,并给想到的字段起别名

我们只需要在Mapper.xml文件中加入resultMap,设置column和property使得数据传输一致

Mybatis配置解析(核心配置文件)

我们只需要学重点的几个,其余作为了解

Mybatis可以配置成适应多种环境

不过要记住:尽管可以配置多个环境,但每个SqlSessionFactory实例只能选择一种环境

学会使用配置多套运行环境!

Mybatis默认的事务管理器就是JDBC,连接池:POOLED

通过properties我们可以引入外部配置文件,实例如下:

编写db.properties

第一种:

通过其别名,我们的返回值类型和参数类型就不需要写那么长了

第二种:

也可以指定一个包名,Mybatis会在包名下搜索需要的javabean,比如:

扫描实体类的包,他的默认为这个类的类名(首字母小写)

所以直接指定一个包,包下的所有类就都有了自己的别名,更加快捷

在指定包的情况下(就是使用第二种方式),若我们不想使用小写作为他的别名,那么我们可以通过注解继续给类起别名,例如:

所以有两种起别名的方式

如果实体类非常少,使用第一种方式

如果实体类非常多,建议使用第二种方式

这是mybatis中极为重要的调整设置,他们会改变mybatis的运行时行为

类型处理器(typeHandlers)

对象工厂(objectFactory)

插件(plugins)

MapperRegistry:注册登记我们的Mapper文件

​ 注意点:

​ 接口和他的Mapper配置文件必须同名

​ 接口和他的Mapper配置文件必须在同一个包下

​ 注意点:

​ 接口和他的Mapper配置文件必须同名

​ 接口和他的Mapper配置文件必须在同一个包下

生命周期和作用域是至关重要的,因为错误的使用会导致非常严重的并发问题

SqlSessionFactoryBuilder:

SqlSessionFactory:

SqlSession

这里面的每一个Mapper就代表一个具体的业务。