MyBatis简介
MyBatis 是支持定制化 SQL、存储过程以及高级映射的优秀的持久层框架。MyBatis 避免了几乎所有的 JDBC 代码和手动设置参数以及获取结果集。MyBatis 可以对配置和原生Map使用简单的 XML 或注解,将接口和 Java 的 POJOs(Plain Old Java Objects,普通的 Java对象)映射成数据库中的记录。
MyBatis的优缺点
优点:
- 简单易学:本身就很小且简单。没有任何第三方依赖,最简单安装只要两个jar文件+配置几个sql映射文件易于学习,易于使用,通过文档和源代码,可以比较完全的掌握它的设计思路和实现。
- 灵活:mybatis不会对应用程序或者数据库的现有设计强加任何影响。 sql写在xml里,便于统一管理和优化。通过sql基本上可以实现我们不使用数据访问框架可以实现的所有功能,或许更多。
- 解除sql与程序代码的耦合:通过提供DAL层,将业务逻辑和数据访问逻辑分离,使系统的设计更清晰,更易维护,更易单元测试。sql和代码的分离,提高了可维护性。
- 提供映射标签,支持对象与数据库的orm字段关系映射
- 提供对象关系映射标签,支持对象关系组建维护
- 提供xml标签,支持编写动态sql。
缺点:
- 编写SQL语句时工作量很大,尤其是字段多、关联表多时,更是如此。
- SQL语句依赖于数据库,导致数据库移植性差,不能更换数据库。
- 框架还是比较简陋,功能尚有缺失,虽然简化了数据绑定代码,但是整个底层数据库查询实际还是要自己写的,工作量也比较大,而且不太容易适应快速数据库修改。
- 二级缓存机制不佳
MyBatis如何安装?
如果使用 MyBatis, 只需将 mybatis-x.x.x.jar 文件置于 classpath 中即可。
github下载地址(https://github.com/mybatis/mybatis-3/releases)
如果使用 Maven 来构建项目,则需将下面的 dependency 代码置于 pom.xml 文件中:
<dependency> <groupId>org.mybatis</groupId> <artifactId>mybatis</artifactId> <version>x.x.x</version></dependency>
MyBatis开发流程
1、准备工作
在数据库中建表,并且添加几条数据
将相关jar包导入项目
druid:数据源,替换mybatis自带的数据源(不替换也可以)
log4j:日志
lombok:可以省去写get,set等冗长的方法(详细看关于lombok.jar的使用_橘子恶霸、的博客-CSDN博客)
mybatis:mybaris(必须)
mysql-connector:mysql驱动(必须)
2、创建实体类与dao层
Book.java:
package com.dyit.entity;
import java.io.Serializable;
import java.util.Date;
import org.apache.ibatis.type.Alias;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
@Alias("Book")
@Data
@AllArgsConstructor
@NoArgsConstructor
public class Book implements Serializable{
private Integer id;
private String isbn;//出版编号
private String title;//书籍名称
private String author;//作者
private String cover;//封面
private Double price;//价格
private Date date;//出版日期
}
说明:@Alias(“Book”)为类的别名
IBookMapper.java
package com.dyit.mapper;
import org.apache.ibatis.annotations.Param;
import com.dyit.entity.Book;
public interface IBookMapper {
//添加树
void updateAuthorOrPrice(@Param("id")int id,@Param("price")Double price,@Param