万能的Map
在实体类参数过多时,或者传入参数有多个时都可以使用map
模糊查询
第二种写死可以防止sql注入
resultMap
但我们一般不会这样去做,很low
应当使用resultMap来解决
可以理解为使用resultType时也隐含的一个resultMap,只不过字段名何属性名一一对应,所以不用显示表示罢了。
使用resultMap时其实只需要把字段名何属性名不同的显示声明即可
话虽如此,但最好还是显示声明,否则可能会出现查出来的id与数据库中不一致的情况
日志
掌握STDOUT_LOGGING和LOG4J即可
STDOUT_LOGGING为自带的标准日志
LOG4J推荐使用,需要在maven导入jar包
STDOUT_LOGGING
以getUserById为例,日志结果如下
LOG4J
2.在resources下建立log4j.properties
#将等级为DEBUG的日志信息输出到console和file这两个目的地,console和file的定义在下面的代码
log4j.rootLogger=DEBUG,console,file
#控制台输出的相关设置
log4j.appender.console = org.apache.log4j.ConsoleAppender
log4j.appender.console.Target = System.out
log4j.appender.console.Threshold=DEBUG
log4j.appender.console.layout = org.apache.log4j.PatternLayout
log4j.appender.console.layout.ConversionPattern=[%c]-%m%n
#文件输出的相关设置
log4j.appender.file = org.apache.log4j.RollingFileAppender
log4j.appender.file.File=./log/govd.log #日志文件的保存位置
log4j.appender.file.MaxFileSize=10mb
log4j.appender.file.Threshold=DEBUG
log4j.appender.file.layout=org.apache.log4j.PatternLayout
log4j.appender.file.layout.ConversionPattern=[%p][%d{yy-MM-dd}][%c]%m%n
#日志输出级别
log4j.logger.org.mybatis=DEBUG
log4j.logger.java.sql=DEBUG
log4j.logger.java.sql.Statement=DEBUG
log4j.logger.java.sql.ResultSet=DEBUG
log4j.logger.java.sql.PreparedStatement=DEBUG
3.配置日志设置
还是以getUserById为例,日志结果如下
同时日志文件中也会保存下相关日志
除了保存sql日志,log4j也可用于人为保存日志
分页
方式一,sql层面实现分页
方式二,java层面实现分页,RowBounds分页了解即可现在基本已经不再使用
方式三,分页插件
lombok
说白了就是进一步偷懒的插件,不再需要去写get/set方法,构造方法,toString方法等,只需要几个注解即可实现,pojo中就只有和数据库字段对应的属性,简单明了
注:第一步:idea->setting->plugins->查询lombok->安装
注解开发
注解进行CRUD
#{}中取的是@param()中设定的属性名