IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> Java知识库 -> mybatis基础篇 -> 正文阅读

[Java知识库]mybatis基础篇


一:什么是mybatis。

MyBatis 是支持普通 SQL 查询,存储过程和高级映射的优秀ORM框架。MyB

目录

一:什么是mybatis。

二:如何使用mybatis。

三:特殊字符

四:mybatis的优化

五:字段名和属性名不一致。建议使用第二种字段映射方法.

六:动态Sql语句查询:Sql语句根据查询条件的改变而改变

七:分页查询


atis 消除了几乎所有的 JDBC 代码和参数的手工设置以及对结果集的检索封装。MyBatis 可以使用简单的 XML 或注解用于配置 和原始映射,将接口和 Java 的 POJO(Plain Old Java Objects,普通的 Java 对象)映射成数据库中的记 录. 半自动化框架。必须写sql语句。

二:如何使用mybatis。

(1)创建一个maven的java工程

?(2)引入mybatis的依赖和mysql的驱动jar包

(3)创建相应的实体类?

右图为引入的lombok依赖,简化实体类中的set和get方法以及tostring方法和构造方法

(4)配置mybatis的配置文件.xml。mybatis会自动读取配置文件并连接数据库。

(5)编写映射文件,映射文件为实体类与数据库表的映射。并把映射文件引入到mybatis配置中使用。

映射文件中的sql语句select语句中要有返回类型,其值要与namespace的值相同

(6)编辑实体类的Dao接口,并写入需要的方法。

(7)引入junit依赖,写测试方法测试

二:传递多个参数。

如果方法传递的是多个参数时,有一下两种处理方式:

1.需要把占位符里面的名字改为param1、param2........

2可以在方法中每个参数前添加@Param(""),Sql语句中的占位符需要与("")中的命名一样。

?

三:特殊字符

在映射文件中有些字符不能使用,处理方法有: 建议使用第二种方法。

1.使用转义字符,如下

2:使用<![CDATA[含有特殊字符的Sql语句]]>

四:mybatis的优化

1.数据库连接的优化

(1)定义一个数据库属性文件? ?.properties,在该文件下写入,切记不能添加双引号。

2.引入日志文件,便于更好的显示Sql语句和查找错误。

(1)引入log4j依赖

(2)引入日志的配置文件,输出地址可以自己设定

### 设置###
log4j.rootLogger = debug,stdout,D,E

### 输出信息到控制抬 ###
log4j.appender.stdout = org.apache.log4j.ConsoleAppender
log4j.appender.stdout.Target = System.out
log4j.appender.stdout.layout = org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern = [%-5p] %d{yyyy-MM-dd HH:mm:ss,SSS} method:%l%n%m%n

### 输出DEBUG 级别以上的日志到=E://logs/error.log ###
log4j.appender.D = org.apache.log4j.DailyRollingFileAppender
log4j.appender.D.File = D://logs/log.log
log4j.appender.D.Append = true
log4j.appender.D.Threshold = DEBUG?
log4j.appender.D.layout = org.apache.log4j.PatternLayout
log4j.appender.D.layout.ConversionPattern = %-d{yyyy-MM-dd HH:mm:ss} ?[ %t:%r ] - [ %p ] ?%m%n

### 输出ERROR 级别以上的日志到=E://logs/error.log ###
log4j.appender.E = org.apache.log4j.DailyRollingFileAppender
log4j.appender.E.File =D://logs/error.log?
log4j.appender.E.Append = true
log4j.appender.E.Threshold = ERROR?
log4j.appender.E.layout = org.apache.log4j.PatternLayout
log4j.appender.E.layout.ConversionPattern = %-d{yyyy-MM-dd HH:mm:ss} ?[ %t:%r ] - [ %p ] ?%m%n

五:字段名和属性名不一致。建议使用第二种字段映射方法.

解决方法:

1.给查询的列起别名,别名与属性名一致。如下

?

2.字段映射。

查询时不能使用resultType属性,? 必须使用resultMap属性。resultType属性:返回值类型为基本数据类型。?resultMap属性:返回值的类型不是基本数据类型的时候使用,比如返回值是一个对象时。

六:动态Sql语句查询:Sql语句根据查询条件的改变而改变

理解上图元素的含义,使用时要熟练掌握Sql的增删改查语句

?注意:查询时尽量不要使用 * 把需要查询的字段写在一个Sql标签中,??

七:分页查询

(1)引入分页查询依赖

(2)加入拦截?

注意加入拦截的位置,位置错误会报错

(3)Sql分页查询语句

select * from 表名 ?limit 0,5;

注意:limit后面有两个参数,参数必须是一个整数常量。

第一个参数指定第一个返回记录行的偏移量,第二个参数指定返回记录行的最大数目。初始记录行的偏移量是 0(而不是 1)。

select * from 表名 ?limit (page-1)*pageSize,pageSize;
? page:当前要显示的页码。
? pageSize: 每页显示的条数。

  Java知识库 最新文章
计算距离春节还有多长时间
系统开发系列 之WebService(spring框架+ma
springBoot+Cache(自定义有效时间配置)
SpringBoot整合mybatis实现增删改查、分页查
spring教程
SpringBoot+Vue实现美食交流网站的设计与实
虚拟机内存结构以及虚拟机中销毁和新建对象
SpringMVC---原理
小李同学: Java如何按多个字段分组
打印票据--java
上一篇文章      下一篇文章      查看所有文章
加:2021-12-06 15:07:02  更:2021-12-06 15:07:37 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/24 4:51:51-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码