持久层框架——Mybatis知识点总结

用来做什么?
将数据库中的数据映射到对象中,将对象中的属性映射到数据库字段

特点:可以只写dao接口不写实现类
sql由开发人员编写,可以充分发挥写sql的技巧,提供了很高的灵活性,
需要传入参数,实体对象也可以,变量也可以
mybatis会自动拼接sql和参数,拿到数据库中执行,将执行结果依靠反射机制封装成你需要的实体类或是List返回给你。

sql写在哪里?
1、xml(常用,易于维护,易于拼接参数)
2、注解

如何实现Dao接口?
1、Mapper自动实现Dao接口(常用:节省出精力去关注sql的编写)
2、API编程方式实现Dao接口

mapper(xml)文件均对应一个dao层接口类,使用namespace对应具体的接口类,每个接口方法根据实际的操作类型选择对应的标签编写sql,标签id对应方法名,resultType对应返回值类型(返回实体类名), parameterType对应参数类型,sql中参数使用#{参数名}与sql拼接。

spring整合mybatis

为什么要整合?(mybatis优点,xml提供sql,mapper实现dao接口)
     更少的编码
        mybatis可以在dao层只写接口不写实现,方法返回值类型使得mybatis可以帮我们映射封装结果集,方法名对应实际操作类型使得mybatis知道我们要做什么,参数加sql构成实际行为过程。
    更少的配置
        别名:mybatis自动实现了包扫描,开发人员只需要提供类名,mybatis会根据类名自动扫描到具体的类
        配置扫描:项目中会有很多dao接口,每个接口类对应一个xml配置文件,将这些文件统一放在一个目录下,配置该目录到配置扫描,mybatis就可以扫描该目录下所有配置文件,不需要开发人员一个xml一个xml去配置维护。
        dao实现:mybatis自动实现dao接口,然后自动注入到spring的bean容器,否则需要在spring中一个一个配置dao的实现类到bean容器中.       
    足够的灵活性:sql自己编写,自由传参,结果集自动赋值封装.

整合步骤:
spring配置文件中:(一个context三个bean)
1、引入配置数据库所需相关参数的properties文件
2、配置数据库连接池:设置连接池公共属性(驱动、url、用户、密码)以及连接池私有属性(最大连接数、最小连接数、关闭连接是否提交、获取连接超时时间、获取连接重试次数)
3、配置sqlSessionFactory(注入数据源,即数据库连接池配置的beanId.配置mybatis全局配置文件路径,配置mybatis的实体类包扫描路径,配置dao层的mapper映射文件扫描路径)
4、配置Dao接口包扫描bean(MapperScannerConfigure),并且注入sqlSessionFactory,配置dao包扫描路径

猜你喜欢

转载自blog.csdn.net/ycgslh/article/details/80050025