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: 每页显示的条数。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值