2019-12-25 Mybatis day01总结

1.Mybatis是什么?

    (1)mybatis是一个基于Java的持久层框架

     (2)持久化概念:把内存中的数据保存到数据库的过程就叫做持久化

     (3)mybatis既是一个持久层框架,同时也是一个ORM框架(对象关系映射  jpa/springDataJpa)


 2.Mybatis特点

        (1)MyBatis 是一个支持普通 SQL查询,存储过程(数据库mysql/oracle)和高级映射的优秀持久层框架

        (2)MyBatis 使用简单的 *XML*或 注解 用于配置和原始映射,将接口和 Java 的*POJOs*(Plain Old Java Objects,普通的 Java对象 Employee/User/Entity/Domain)映射成数据库中的记录。 SQL映射方式


面试题:

            1.JPA一级缓存和二级缓存是什么?

                        答:一级缓存: 属于entityManager级别缓存,jpa自带的,不用做任何配置, 命中条件

                                同一个entityManageFactory ,同一个EntityManager 同一个OID

                                二级缓存: 属于entityManagerFactory级别缓存,不是自带 ,需要做相应配置才行

                                命中条件:

                                同一个entityManageFactory ,不同一个EntityManager 同一个OID

    

                    2.jdbc和mybatis优缺点?

                        (1)jdbc操作步骤比较繁琐,比较执行贾琏欲执事 而mybatis不用 消除这个代码

                        (2)jdbc需要自己手动设置 参数 以及处理返回结果集 --而mybatis 不需要

                        (3)mybatis 可以采用 xml 和 注解 来写sql ...jdbc 把sql 写到代码里面, 可以提高维护性

                        (4)jdbc 它是操作数据库最底层的代码,mybatis也是从jdbc上面封装出来框架 mybatis支持缓存

                        

3.使用Mybatis

            

1.导入jar包

2.建表

3.配置Mybatis-config.xml


4.UserMapper.xml(红线是误报,能正常运行)


5.跑一下测试,是个好习惯


6.工具类的抽取


4.Mybatis细节掌握

        1.获取主键(有时候业务需要)


    2.日志的使用

        a.导包

        b.

3.常见排错

   断点

  System.out.println

  输出日志


面试题

#与$区别:

(1) $ 取得对象里面的某个属性 比如 ${id} Long getId

            ${id}

                # 都可以

            (2)重点 #  select * from product where productName = ? 预编译的对象

                $  select * from product where productName = 罗技G500 拼接字符串方式

                # 推荐使用 $ sql注入问题

            (3)后面使用$的 orderby+limit 后面就order by age/id不需要添加引号



5.动态sql


6.批量操作


©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容