美文网首页java学习
NO.79 MyBatis(持久层框架)

NO.79 MyBatis(持久层框架)

作者: smallnumber | 来源:发表于2017-09-29 22:19 被阅读0次

    (1)MyBatis是什么?

    开源的持久层框架。

    jdbc  易掌握,性能好,代码繁琐,易出错。

    hibernate 难掌握,性能不好,代码非常简洁,虽然不用写sql,但经常需要优化sql。

    mybatis  比较容易掌握,性能一般,代码简洁,需要写sql。

    (2)编程步骤

    step1. 导包。

    mybatis,ojdbc,junit。

    step2.添加配置文件 (SqlMapConfig.xml)

    step3.实体类。注:属性名要与表的字段名一样(大小写可以忽略)。

    step4.添加映射文件。注:告诉mybatis,如何进行对象关系映射,里面主要是一些sql语句。

    step5.修改配置文件,添加映射文件的位置。

    step6.调用mybatis提供的api访问数据库。注: 主要是调用SqlSession类提供的方法。

    (3)工作原理

    (4)返回Map类型的结果

    mybatis会将查询到的记录先存放到map对象里面(以字段名作为key,以字段值作为value,一条记录对应一个map),再将map中存放的数据添加到实体对象(默认以key作为属性名来赋值)。

    注:返回Map类型的结果,可以不用写实体类,但是取字段值时,需要调用get方法,需要考虑字段名的差异(比如oracle数据库会将字段名大写)。建议还是返回实体对象取值方便。

    (5)解决实体类的属性名与表的字段名不一致的情况。

    方式一 使用别名

    SELECT name as ename...

    方式二 使用resultMap元素

    (6)Mapper映射器

    1)Mapper映射器是什么?

    是一个符合映射文件要求的接口。

    注:mybatis会生成一个符合该接口的实现类。

    2)如何使用Mapper映射器?

    step1.定义接口

    a. 方法名必须与sqlId一样。

    b. 参数类型必须与parameterType一样。

    c. 返回类型必须与resultType一样。

    step2.映射文件中的namespace必须等于接口名(全限定名)。

    step3.调用SqlSession提供的getMapper方法。

    相关文章

      网友评论

        本文标题:NO.79 MyBatis(持久层框架)

        本文链接:https://www.haomeiwen.com/subject/dvevextx.html