给大家推荐一篇关于MyBatis比较好,写的比较全面的文章,很不错,由于篇幅问题可以,更多相关内容请查看原文

文章目录

1.从JDBC谈起
1.1.使用IDEA创建maven工程
1.2.引入mysql依赖包
1.3.准备数据
1.4.JDBC基础代码回顾
1.5.JDBC缺点分析
2.MyBatis介绍
3.Mybaits整体架构
4.快速入门(quick start)
4.1.引入依赖(pom.xml)
4.2.全局配置文件(mybatis-config.xml)
4.3.配置Map.xml(MyMapper.xml)
4.4.修改全局配置文件(mybatis-config.xml)
4.5.构建sqlSessionFactory(MybatisTest.java)
4.6.打开sqlSession会话,并执行sql(MybatisTest.java)
4.7.目录结构
5.分析
5.1.引入日志依赖包(pom.xml)
5.2.添加log4j.properties
5.3.MyBatis使用步骤总结
6.完整的CRUD操作
6.1.创建UserDao接口
6.2.创建UserDaoImpl
6.3.编写UserDao对应的UserDaoMapper.xml
6.4.添加UserDao的测试用例
6.5.编写UserDao的测试用例
6.6.目录结构
6.7.解决数据库字段名和实体类属性名不一致的问题
7. 动态代理Mapper实现类
7.1.思考上述CRUD中的问题
7.2.使用动态代理改造CRUD
7.3.完整的例子
7.4.动态代理总结
8.mybatis-config.xml详解
8.1.properties属性读取外部资源
8.2.settings设置
8.3.typeAliases
8.4.typeHandlers(类型处理器)
8.5.plugins(插件)拦截器
8.6.environments(环境)
8.7.mappers
9.Mapper XML文件详解
9.1.CRUD标签
9.1.1.select
9.1.2.insert
9.1.3.update
9.1.4.delete
9.2.#{}和${}
9.3.面试题(#、$区别)
9.4.resultMap
9.5.sql片段
10.动态sql
10.1.if
10.2.choose when otherwise
10.3.where 和set
10.4.foreach
11.缓存
11.1.一级缓存
11.2.二级缓存
12.高级查询
12.1.表关系说明
12.2.一对一查询
12.3.一对多查询
12.4.多对多查询
12.5.resultMap的继承
12.6.高级查询的整理
13.延迟加载
14.如果sql语句中出现’<’的解决方案
1、使用xml中的字符实体
2、使用```<![CDATA[ < ]]>```
15.Spring 集成Mybatis
15.1引入spring和Mybatis相关依赖
15.2配置spring配置文件
15.3 测试
16.SpringBoot 集成Mybatis
17.Mybatis Generator的使用
18.MyBatis整合分页插件 pageHelper
1.从JDBC谈起



1.1.使用IDEA创建maven工程

Mybatis教程-实战看这一篇就够了_javaMybatis教程-实战看这一篇就够了_sql_02

Mybatis教程-实战看这一篇就够了_java_03


1.2.引入mysql依赖包


<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.32</version>
</dependency>

1.3.准备数据


创建数据库:

CREATE DATABASE ssmdemo;

Mybatis教程-实战看这一篇就够了_java_04


创建表:

DROP TABLE IF EXISTS tb_user;
CREATE TABLE tb_user (
id char(32) NOT NULL,
user_name varchar(32) DEFAULT NULL,
password varchar(32) DEFAULT NULL,
name varchar(32) DEFAULT NULL,
age int(10) DEFAULT NULL,
sex int(2) DEFAULT NULL,
birthday date DEFAULT NULL,
created datetime DEFAULT NULL,
updated datetime DEFAULT NULL,
PRIMARY KEY (id)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;



插入数据:

INSERT INTO ssmdemo.tb_user ( userName, password, name, age, sex, birthday, created, updated) VALUES ( ‘zpc’, ‘123456’, ‘鹏程’, ‘22’, ‘1’, ‘1990-09-02’, sysdate(), sysdate());
INSERT INTO ssmdemo.tb_user ( userName, password, name, age, sex, birthday, created, updated) VALUES ( ‘hj’, ‘123456’, ‘静静’, ‘22’, ‘1’, ‘1993-09-05’, sysdate(), sysdate());



1.4.JDBC基础代码回顾


JDBCTest.java
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;




/**
* @author Evan
*/
public class JDBCTest {
public static void main(String[] args) throws Exception {
Connection connection = null;
PreparedStatement prepareStatement = null;
ResultSet rs = null;




try {
// 加载驱动
Class.forName("com.mysql.jdbc.Driver");
// 获取连接
String url = "jdbc:mysql://127.0.0.1:3306/ssmdemo";
String user = "root";
String password = "123456";
connection = DriverManager.getConnection(url, user, password);
// 获取statement,preparedStatement
String sql = "select * from tb_user where id=?";
prepareStatement = connection.prepareStatement(sql);
// 设置参数
prepareStatement.setLong(1, 1l);
// 执行查询
rs = prepareStatement.executeQuery();
// 处理结果集
while (rs.next()) {
System.out.println(rs.getString("userName"));
System.out.println(rs.getString("name"));
System.out.println(rs.getInt("age"));
System.out.println(rs.getDate("birthday"));
}
} finally {
// 关闭连接,释放资源
if (rs != null) {
rs.close();
}
if (prepareStatement != null) {
prepareStatement.close();
}
if (connection != null) {
connection.close();
}
}
}
}



1.5.JDBC缺点分析

Mybatis教程-实战看这一篇就够了_xml_05


推荐一本很不错的关于spring boot的书籍


2.MyBatis介绍


Mybatis教程-实战看这一篇就够了_xml_06

官方文档 http://www.mybatis.org/mybatis-3/getting-started.html

3.Mybaits整体架构

Mybatis教程-实战看这一篇就够了_xml_07

Mybatis教程-实战看这一篇就够了_sql_08

4.快速入门(quick start)

······

······