请选择 进入手机版 | 继续访问电脑版

Mybatis浅谈

[复制链接]
滚雪球少年 发表于 2020-12-31 18:59:37 | 显示全部楼层 |阅读模式 打印 上一主题 下一主题
Mybatis



1.JDBC编程的流程和弊端?

  1.         流程:        1.加载数据库驱动。        2.得到毗连,如果事DML操纵的话需要开启事务。        3.通过statement执行sql得resultSet。        4.效果集和实体做一个映射对应起来,提交事务。        5.关闭毗连资源,异常处置处罚等。        弊端:        代码量大且容易堕落。
复制代码
2.ORM是什么?

  1.         指的是对象关系映射,也就是说实体类和数据库表的映射。
复制代码
3.Mybatis是什么?优点和缺点?

  1.         是一个ORM框架,办理了JDBC代码量大易堕落的问题。        优点:        省去了JDBC加载驱动、创建毗连、效果集映射等操纵,直接写SQL就可以了,实体和数据库表的对应可以直接通过逆向工程生成xml。        缺点:        数据库的可移植性差。
复制代码
4.映射器

4.1在mppaer中如何通报多个参数?

  1.         1.如果是小于5个参数一般接纳@Param注解。        2.大于5个参数可以用实体类大概map。
复制代码
4.2表中的字段名和实体属性对应不上?

  1.         1.用手动映射resultType=实体,map都行,然后给字段起别名。        2.用自动映射resultMap。
复制代码
4.3如何获取主键?

  1.         如果是Oracle数据库的话用标签获取。
复制代码
4.4${}和#{}的区别?

  1.         #{}是预编译的,能防止sql注入,最开始通过?占位,执行时候加上引号当字符串处置处罚。        ${}不能防止sql注入,一般在动态的输入表名、字段名时候使用。
复制代码
4.5暗昧查询的like怎么写?

  1.         concat('%',#{},'%')。
复制代码
4.6Mybatis如何做批量操纵?

  1.         1.用动态sql的foreach循环value()。        2.将SqlSession中的Excetor执行器设置成batch批量。
复制代码
4.7什么是Mybatis的接口绑定?

  1.         1.接纳mapper+xml的方式。        2.直接在mapper接口上写sql。
复制代码
4.8mapper接口调用需要注意些什么?

  1.         namespace和mapper接口名一致,id和方法名一致、参数范例一致。
复制代码
4.9Mybatis的关联查询的方式有哪些?

  1.         1.嵌套效果        2.嵌套查询
复制代码
4.10缓存?spring团结mybatis默认开启缓存吗?

  1.         1.一级缓存存在于一次会话中,作用域等同于SqlSession,如果sql相同的话会直接从缓存中取数据,不会再次执行sql。默认        是开启的,但是和spring结适时候失效。        2.二级缓存存在于整个应用中,作用域等同于SqlSessionFactory,一般用的少。
复制代码
5.SqlSession的四大对象?

  1.         执行器Executor,StatementHandler、ParameterHandler、ResultHandler
复制代码
6.Mybatis的运行原理?

  1.         1.创建SqlSessionFactory对象        通过SqlSessionFactoryBuilder对象通过制作者模式创建。首先通过XMLConfigBuilder对象读取数据库毗连等设置和映射器信息        (主要是MappedStatement)存入Configuration。然后通过Confiuration创建SqlSessionFactory。SqlSessionFactory存在于整个应        用中,并且是单例的。        2.创建SqlSession        通过SqlSessionFactory创建SqlSession。存在于一个会话中,相当于JDBC中Connection对象,是多实例的。        3.SqlSession的运行        当调用Mapper中的接口时,会根据JDK的动态署理调用MapperProxy中的invoke方法,然后调用MapperMethod中的execute方法,        接着SqlSession中的执行器Executor会协调StatementHandler、ParameterHandler、ResultHandler来对Sql进行预编译、参数设置、        执行、效果集的映射等,执行的过程中会从MappedStatement中获取id、sql、入参范例、出参范例、映射等信息。
复制代码
来源:https://blog.csdn.net/shiquan202101/article/details/111830566
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

发布主题

专注素材教程免费分享
全国免费热线电话

18768367769

周一至周日9:00-23:00

反馈建议

27428564@qq.com 在线QQ咨询

扫描二维码关注我们

Powered by Discuz! X3.4© 2001-2013 Comsenz Inc.( 蜀ICP备2021001884号-1 )