目录
3.2 添加相关依赖 junit 4.12 javax.servlet-api 4.0.0 mybatis 3.5.7 mysql-connector-java 5.1.44
3.4添加数据库配置文件&Mybatis核心配置文件(resources目录) 编辑
本案例使用log4j2 3.5.1. 添加log4j2相关依赖,版本:2.9.1 log4j-core、log4j-api; web工程需要包含log4j-web,非web工程不需要
3.5.2. 将log4j2.xml复制到resources目录下
3.5.3. 修改mybatis.cfg.xml文件的日志配置
3.5.4. web项目还需要修改web.xml文件添加日志开关
4. 使用MyBatis-generator自动生成MyBatis代码 逆向工程
5.1 MAVEN中使用 mybatis-generator-maven-plugin 插件(版本 1.3.7)
5.3 在Intellij IDEA添加一个“Run运行”选项,使用maven运行mybatis-generator-maven-plugin插件
7. junit4单元测试 SqlSession.getMapper(BookMapper.class); sqlSession.commit();//mybatis默认也是手动事务
8.开启驼峰命名自动映射(mybatis.cfg.xml文件)
1.系统环境
JDK版本:1.8
IDE:InterliJ IDEA 2019.3.3或以上
Maven版本:3.6
MyBatis版本:3.X
数据库:MySQL 5.7+
2. mybatis
1.1介绍:
mybatis本是apache的一个开源项目iBatis。
是一个 基于Java的持久层框架(半自动)。持久层框架就是操作数据库的框架,对之前的JDBC进行了封装。
ORM:Object Relational Mapping,简称ORM)模式是一种为了解决面向对象与关系数据库存在的互补匹配的现象的技术(将Java中的对象和数据库的表关联起来)理解为:Java对象与数据库表的映射管理框架。。
mybatis相当于将mapper中的入参和出餐结果集封装到Java的POJoQ类中,实际上Mybatis是半ORM,它鼓励开发者自己写sql,也正是因sql语句要自己写,所以mybatis将Java对象和sql语句关联起来,并没有将Java对象与数据库关联起来。
1.2mybatis与jdbc
MyBatis是支持普通的sql查询,存储过程和高级映射的秀秀持久层框架。
mybatis消除了几乎所有的JDBC的代码和参数的手工设置以及结果集的检索。
mybits使用简单的XML或者注解用于配置和原始映射。将接口和Java的POJOs(Plan Old Java Objects,普通的Java对象)映射成数据库中记录
可以把mybatis看做成高级的JDBC,用于解决JDBC 的缺点:
1.自动注册驱动 |
2.自动创建jdbc中使用的Connection,Statement,ResultSet |
3.制动执行失去了语句,得到ResultSet |
4.自动处理ResultSet,把记录集中的数据转为Java 对象,同时还能Java对象放入List集合 |
5.自动关闭资源 |
6.自动实现s起来语句和Javadiamagnetic的解耦合 |
1.3数据持久化
数据持久化即使将程序的数据在持久状态的顺势状态转化的过程;
内存存储数据特点:断电即失
持久化方式:通过数据库(jdbc)或io文件持久数据
1.4SqlSessionFactory
每个mybatis引用的程序主要是都是使用SqlSessionFactory实例,一个SqlSessionFactory实列可以通过SqlSessionBuilder获得,SqlSessionBuilder可以从一个xml配置文件或者一个预定义的配置类的实力获得
mybatis | 半ORM框架,持久层框架 |
mybatis.xml | 定义了没有mybatis的基本配置和连接数据库 的配置信息 |
SqlSessionFactoryBuilder | 完成了mybati.xml配置文件的架子啊操作 |
SqlsessionFactoryBuilder | SqlSessionFactroy实例 |
SqlSessionFactory | SqlSession‘ |
SqlSession | 数据库层面的增删改查操作 |
3. 如何在项目中添加mybatis支持
3.1 使用maven创建项目,并添加web支持
3.2 添加相关依赖
junit 4.12
javax.servlet-api 4.0.0
mybatis 3.5.7
mysql-connector-java 5.1.44
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<maven.compiler.source>1.8</maven.compiler.source>
<maven.compiler.target>1.8</maven.compiler.target>
<junit-version>4.11</junit-version>
<mysql-version>5.1.44</mysql-version>
<javax-servlet-api-version>4.0.0</javax-servlet-api-version>
<lombok-version>1.16.10</lombok-version>
<mybatis-version>3.5.7</mybatis-version>
<log4j-version>2.9.1</log4j-version>
</properties>
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactI