Mybatis基础

无人久伴 提交于 2019-12-25 20:43:08

Mybatis:

是一个支撑框架,它以映射sql语句orm方式来数据库持久化操作.


关于框架:


框架(Framework)是一个框子——指其约束性,也是一个架子——指其支撑性。
IT语境中的框架,特指为解决一个开放性问题而设计的具有一定约束性的支撑结构。在此结构上可以根据具体问题扩展、安插更多的组成部分,从而更迅速和方便地构建完整的解决问题的方案。

开放性问题:没有解决具体问题.

所谓的框架就是提供的一些基础支撑结构,通过这些结构可以解决现实生活中具体点的问题,而在这个过程中必须遵循一定规范.


数据持久化(数据库持久化:把内存中数据保存到数据库中.)


数据持久化就是将内存中的数据模型转换为存储模型。
常见的数据持久有:磁盘持久化和数据库持久化。
数据库持久化是数据持久化的其中一种,就是把内存中的数据保存到数据库中。

#与$区别:


(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不需要添加引号
Log4j:
#log4j.rootLogger=NONE 不想打印日志信息


日志等级:


OFF level>FATAL>ERROR>WARN>INFO>DEBUG>TARCE>ALL level


Mybatis细节


细节一:主键问题

有时候 保存一条数据之后,需要拿到这条数据的主键,拿到之后可以做后续事情
场景:
角色的保存
useGeneratedKeys=“true” keyColumn=“id” keyProperty=“id”

insert into product(productName,salePrice,costPrice,cutoff)
values(#{productName},#{salePrice},#{costPrice},#{cutoff})

细节二:日志问题

(1)为什么要使用日志有时候,需要打印的sql的信息 比如sql的传参数 返回值 – 必须使用日志好处: 使用日志框架可以帮助我们进行分析与排错

(2)常见排错方式:
断点System.out.println 输出日志

(3)日志框架: a)自己写:通过反射技术 ,可以拿到参数 可以方法 拿到返回值b)log4j – 使用比较多c)日志框架标准以前没有日志框架的, 每个人处理日志 都不一样 …日志标准 – slf4j(抽象标准) -->很多实现 logging,logback,log4j

(4)使用日志框架 log4j(掌握) a)导入jar包 b)写一个配置文件

log4j.rootLogger=ERROR, stdout 日志等级(了解): OFF level > FATAL(致命) > ERROR(错误) > WARN (警告)> # INFO (提示)> DEBUG (调试)> trace > ALL level(所有配置#输出效果 如果你设置日志级别是trace,则大于等于这个级别的日志都会输出 # 关闭日志输出#log4j.rootLogger=NONE 不想打印日志 就配置NONE # WARN为一般警告,比如session丢失、 # INFO为一般要显示的信息,比如登录登出、 # DEBUG为程序的调试信息 # TRACE 堆栈信息 # 扫描包 配置自己包 #注意点 包名/配置等级 配置DEBUG/ALL log4j.logger.cn.itsource=DEBUG/TRACE #ConsoleAppender:输出控制台 log4j.appender.stdout=org.apache.log4j.ConsoleAppender #layout: 格式样式 log4j.appender.stdout.layout=org.apache.log4j.PatternLayout #采用下面的样式输出 [20191224]类log4j.appender.stdout.layout.ConversionPattern=%d %p [%c] - %m%n


面试题 : jdbc和mybatis优缺点?


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

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

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

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

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!