- 本文参考文档:《Mybatis第一天讲义.pdf》
- 本文代码项目:mybatis_day01、mybatis_day01_annotation、mybatis_day01_dao、mybatis_day01_design(路径:G:\idea_java_project\)
- 说明:为了节省时间,大部分内容可以参考文档,本笔记只对一些重要的内容进行记录说明。
1、Mybatis的学习流程
如下图:
2、三层架构与SSM框架
SSM框架:Spring、SpringMVC、Mybatis3个架构;三层架构:表现层(web)、业务逻辑层(service)、数据访问层(dao)。
2个补充
1、什么是框架?
它是我们软件开发中的一套解决方案,不同的框架解决的是不同的问题。
使用框架的好处:
框架封装了很多的细节,使开发者可以使用极简的方式实现功能。大大提高开发效率。
2、三层架构
表现层:是用于展示数据的
业务层:是处理业务需求
持久层:是和数据库交互的
3、持久层技术解决方案
JDBC技术:
Connection,PreparedStatement,ResultSet
Spring
Jdbc Template:Spring中对jdbc的简单封装
Apache
DBUtils:它和Spring的JdbcTemplate很像,也是对Jdbc的简单封装
以上这些都不是框架
JDBC是规范,Spring的Jdbc Template和Apache的DBUti1s都只是工具类。
4、mybatis的概述
mybatis是一个持久层框架,用java编写的。它封装了jdbc操作的很多细节,使开发者只需要关注sql语句本身,而无需关注注册驱动,创建连接等繁杂过程,它使用了ORM思想实现了结果集的封装。
ORM:Object Relational Mappging 对象关系映射
简单的说,就是把数据库表和实体类及实体类的属性对应起来,让我们可以操作实体类就实现操作数据库表。比如数据库中的user表,对应java中的User类。暂时我们需要做到,实体类中的属性和数据库表的字段名称保持一致。
5、mybatis环境搭建
- 注意,这是mybatis的开发流程
part1:数据库,Maven坐标(视频5)
在数据库中创建一个 lkj_mybatis 数据库,并添加user表,同时插入数据。
CREATE DATABASE lkj_mybatis; -- 创建数据库
USE lkj_mybatis; -- 使用数据库
DROP TABLE IF EXISTS `user`;
CREATE TABLE `user` (
`id` INT(11) NOT NULL AUTO_INCREMENT,
`username` VARCHAR(32) NOT NULL COMMENT '用户名称',
`birthday` DATETIME DEFAULT NULL COMMENT '生日',
`sex` CHAR(1) DEFAULT NULL COMMENT '性别',
`address` VARCHAR(256) DEFAULT NULL COMMENT '地址',
PRIMARY KEY (`id`)
) ENGINE=INNODB DEFAULT CHARSET=utf8;
创建一个Maven的普通的java工程(可以不使用Maven的java骨架),在pom.xml中添加打包方式为jar。随后,导入mybatis的坐标**(注意,在Maven项目中使用mybatis是需要添加mybatis的jar包在仓库中的坐标的)**。 同时,还需要导入mysql、log4j(日志)、junit模块的坐标。
- 注意,添加坐标的时候IDEA的右下角有提示到导入,选择允许自动导入
part2:domain实体类与持久层接口dao(视频5)
domain包下添加一个User实体类,目前,User类的属性名要与数据库user的属性名相同。dao包下创建一个UserDao,用户的持久层接口。
//UserDao
package com.lkj.dao;
import com.lkj.domain.User;
import java.util.List;
/**
* 用户的持久层接口
*/
public interface UserDao
{
/**
* 查询所有用户并放入List<User>集合
* @return
*/
List<User> findAll();
}
part3:mybatis的主配置文件:SqlMapConfig.xml文件、映射配置文件,既每个dao独立的配置文件(视频6)
在resource下创建一个xml配置文件,一般叫SqlMapConfig.xml,随后对该文件进行配置,这个文件是mybatis的主配置文件。
在resource下创建一个dao的独立的xml配置文件(也叫映射配置文件),需要注意的是,dao(持久层)的独立配置文件,必须和dao持久层接口在相同的包中。
代码