ORM持久化框架MyBatis

一MyBatis的介绍

MyBatis 是一个支持普通SQL查询,存储过程和高级映射的优秀持久层框架。
MyBatis 消除了几乎所有的JDBC代码和手工设置参数以及结果集的检索。
MyBatis 使用简单的 XML或注解用于配置和原始映射,将接口和 Java 的POJOs(Plain Old Java Objects,普通的 Java对象)映射成数据库中的记录。
MyBatis不能自动创建表,如果能够自动建表,必须自己先准备好建表的sql语句。。

MyBatis与Hibernate、JDBC的区别

1 MyBatis与Hibernate的区别:MyBatis自己写sql语句,性能更好控制,Hibernate不用自己写sql语句,开发速度更快
2 MyBatis与JDBC的区别:MyBatis只需要关注SQL,其它完成了封装,这样开发速度更快

Mybatis的基本配置

导包(核心,依赖包,数据库驱动包)
注:驱动包就是各大数据库厂商根据JDBC规范实现的jar包

有表,有domain
数据库中准备好一个表 然后在domain中字段一一对应

核心配置文件 mybatis-config.xml
这个配置文件可以去官方文档去找,注意引入连接池的配置文件
在这里插入图片描述
在这里插入图片描述
创建映射文件 XxxMapper.xml
在这里插入图片描述

MyBatisCRUD

MyBatisUtil工具类

在这里插入图片描述

CRUD的关键代码

我这里加了别名 所以返回类型为类名product
在这里插入图片描述

别名

注意顺序
在这里插入图片描述
在这里插入图片描述

注意点与细节

添加时需要id

MyBatis添加时与JDBC一样,不会回填id,Hibernate自带回填,所以性能回差点,有时候我们需要这个id,那么可以添加这几句代码,很方便

在这里插入图片描述
useGeneratedKeys:是否要返回id
keyColumn:数据库中的主键对应的列
keyProperty:domain中对应的主键属性
id返回到传过来的对象中

日志管理

Log4j简介

Log4j有三个主要的组件:Loggers(记录器),Appenders (输出源)和Layouts(布局)。
可简单理解为日志类别,日志要输出的地方和日志以何种形式输出。综合使用这三个组件可以轻松地记录信息的类型和级别,并可以在运行时控制日志输出的样式和位置。

日志等级

等级从低到高
TRACE:详细
Debug:调试,类似于System.out.print
Info:信息,类似于JPA打印sql等级
Warn:警告,程序可以正常运行,出现提示
Error:错误,出现异常

log4j.properties

要在项目中打开日志,大家在资源文件根目录下创建一个log4j.properties的文件,并把下面的代码写入到里面。

log4j.rootLogger=ERROR, stdout

#log4j.rootLogger=NONE
# trace<debug<info<warn<error
# ERROR:错误级别  WARN:警告级别  info:信息级别 debug:调试级别 trace:打印级别

log4j.logger.cn.itsource=TRACE   把左边包名改成你自己的包名

#  输出到控制台
log4j.appender.stdout=org.apache.log4j.ConsoleAppender

# 输入的数据布局(格式)
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout

# %d:时间   %p:信息级别 %c:对应的类  %m:信息  %n:换行
log4j.appender.stdout.layout.ConversionPattern=%d %p [%c] - %m%n

列名与属性名不一致

在这里插入图片描述
添加与修改在相应位置修改名称即可
查询需要创建一个resultMap
使用的时候返回结果必需是resultMap

常见问题

1.没有导入数据库的驱动包
2.在XML中很多都是字符串,细心,不要写错
3.在映射文件中全限定类名可能会写错
4.找不到相应的Statement(sql语句)
5.找SQL的Statement写错了
6.在核心XML中没有找相应的映射文件
7.在我们调用Statement(sql语句的时候),经常会忘记传参
8.执行成功后,数据库却没有反映,很有可能是没有提交事务
9.可能我们忘了写执行的代码了
10.错误一定要打印出来(执行的时候没效果,但是又不报错)
11.Mapper中就算一个语句没有使用,它的错也可能会影响到其它正确的语句
12.框架的错往往从后向前找
13.很多同学没有取别名,但是他一直去用
14.Mysql乱码,添加字符编码:useUnicode=true&characterEncoding=UTF-8

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值