文档章节

MyBatis笔记

o
 osc_x4h57ch8
发布于 2018/04/24 13:16
字数 734
阅读 0
收藏 0

钉钉、微博极速扩容黑科技,点击观看阿里云弹性计算年度发布会!>>>

内容整理在GitHub,点击查看

1、关于JDBC

项目中使用了8.0.9版本的JDBC,在配置JDBC相关的数据库连接时,与老版本的有一些不同

  • 包名改变了,添加了一个cj
(Class.forName("com.mysql.cj.jdbc.Driver");)
  • 创建数据库连接时需要添加一些信息,SSL、时区等
Connection conn = DriverManager.getConnection(
"jdbc:mysql://127.0.0.1:3306/message?serverTimezone=GMT&autoReconnect=true&useSSL=true",
"root",
"root");

2、MyBatis的配置信息

配置信息一般可以在下载源码中包括,路径为:

mybatis-3-mybatis-3.4.6\src\test\java\org\apache\ibatis\submitted\complex_property

  • Configuration.xml MyBatis链接相关配置信息
  • User.xml 实体类的配置信息

3、log4j配置文件

# 日志输出的级别及位置 
# debug,info,warn,error(级别低到高)
log4j.rootLogger=DEBUG,Console
log4j.appender.Console=org.apache.log4j.ConsoleAppender
log4j.appender.Console.layout=org.apache.log4j.PatternLayout
# %d日志时间
# %t日志所处线程的线程名称
# %p输出日志的级别(debug,info,warn,error) 5p输出的字符占5位 -5p不足5位的在右侧补空位
# %c输出日志时所处类的全名,包括包名
# %m输出日志时自己添加的附件信息
# %n换行
log4j.appender.Console.layout.ConversionPattern=%d [%t] %-5p [%c] - %m%n
# org.apache包名,为当前包设置特殊的日志输出属性
log4j.logger.org.apache=INFO

4、MyBatis的XML配置文件中配置信息使用OGNL语言,部分类似EL语言

  • OGNL中特殊字符进行转义:例如:& => "

5、<where>标签

  • 当标签内的内容满足条件时,拼接where条件语句
  • 后面多个条件时,自动删除最开始的and或or关键字,保证sql语句正确

6、<sql>标签

  • 类似与Java中的常量定义
  • 作用:类似与字段名这种常用的,可以设置到一个sql中,用的时候直接应用该常量,不需要每个地方都写一遍所有的字段名

7、<set>标签

  • 代替SQL中的set关键字
  • 满足条件时,拼接set关键字
  • 多个字段时,自动删掉最后一个字段的“,”(逗号)

8、<trim>标签

  • 具有组合功能
  • 可以代替<where>标签或<set>标签
  • <where>标签的等效表示<trim prefix="where" prefixOverrides="and/or">
  • <set>标签的等效表示<trim prefix="set" suffixOverrides=",">

9、<choose>标签

  • 作用类似java中的 if else结构或者是switch case结构
<choose>
    <when test=""></when>
    <when test=""></when>
    <when test=""></when>
    <when test=""></when>
    <otherwise></otherwise>
</choose>

10、主从表

  • 主表中,存储子表的一个集合,使用<collention>标签
  • 子表中,有一个字段,关联到主表,使用<association>标签

11、SQL中的增删改查对应的标签

  • insert
  • delete
  • update
  • select

12、<resultMap>标签

  • 配置java对象属性与查询结果集中列表对应关系

13、控制动态SQL拼接

  • 循环 <foreach>标签
  • 条件 <if>标签
  • 多条件判断 <choose>标签

14、格式化输出

  • <where>
  • <set>
  • <trim>

15、配置关联关系(一对多及多对一等)

  • <collection>
  • <association>

16、<sql>标签

  • 定义常量

17、<include>标签

  • 引用<sql>标签定义的常量
o
粉丝 0
博文 500
码字总数 0
作品 0
私信 提问
加载中
请先登录后再评论。

暂无文章

OSChina 周三乱弹 —— 公主是大王的,命是自己的。小怪也要养家糊口啊!

Osc乱弹歌单(2020)请戳(这里) 【今日歌曲】 @巴拉迪维 :郭燕的单曲《下半生》 最近听一些轻快的歌 #今日歌曲推荐# 《下半生》 - 郭燕 手机党少年们想听歌,请使劲儿戳(这里) @锦年 :...

小小编辑
13分钟前
5
0
Git不断提示我输入密码 - Git keeps prompting me for a password

问题: I've been using Git for a while now, but the constant requests for a password are starting to drive me up the wall. 我已经使用Git一段时间了,但是不断要求输入密码的人开始把......

fyin1314
22分钟前
4
0
未捕获ReferenceError:未定义$? - Uncaught ReferenceError: $ is not defined?

问题: How come this code throws an 此代码如何引发 Uncaught ReferenceError: $ is not defined 未捕获的ReferenceError:未定义$ when it was OK before? 以前什么时候可以? $(document......

javail
52分钟前
12
0
263. Ugly Number

题目: 263. Ugly Number 题目地址:https://leetcode.com/problems/ugly-number/ Write a program to check whether a given number is an ugly number. Ugly numbers are positive numbers......

JiaMing
今天
60
0
HCIA_ARP01

ARP(地址解析协议) eNSP 常用路由器:AR2220 常用交换机:S5700、S3700 常用终端:PC、MCS(主播服务器) 设备连线:Copper(以太网用到的双绞线)、Serial(串口线,2SA接口)、Auto(自动连...

创业789
今天
25
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部