Mybatis 概述及 环境搭建
1。1、什么是框架?
framework 译为 框架 骨架 结构;在软件行业是整个系统或部分系统的可重用设计,表现为一组抽象构件和构件实例之间交互的方法;框架的另一种说法:框架是可被应用开发者定制的应用骨架,前者是从应用方面后者是从目的导向方面给出的定义;框架是软件行业的解决方案,不同的框架可以解决不同的问题;使用框架的好处:框架封装了很多功能细节,可以很方便的实现需求功能,从而节省成本;通俗的讲:框架其实是某种应用的半成品,就是一组组件,可以在其基础上做自定义开发;和盖房子一样,90年代的房子是一砖一瓦盖起来的,现在的房子是从开发商手里买来的,我们不关心房子是哪个工人如何盖起来的,可以直接进行装修并入住;
1.2、软件开发分层的意义
框架的重要性在于它实现了部分功能,并且能够很好的将底层应用平台和高层业务逻辑进行了缓和,为了实现软件工程中的“高内聚。低耦合”,把问题分析开来并各个解决、易于控制、易于实现、易于分配资源,我们常见的 MVC 设计思想是一种很好的设计思想;,
- 表现层:展示数据
- 业务层:处理业务需求
- 持久层:数据持久化
1.3、持久层技术解决方案
JDBC技术
Connection
Preparestatement
ResultSet
Spring JdbcTemplate
Spring 对 Jdbc 的简单封装
Apache DBUtiles
Apache 对 jdbc 的简单封装
以上还不能称之为框架,jdbc 是以一种规范,Spring 的 JdbcTemplate 和 Apache DBUtiles 只是一组工具类,是JDBC 实现的简单封装;
1.4、Mybatis 框架简介
Mybatis 是一款基于 Java 的优秀的持久层框架,其内部封装了 jdbc ,使用者只需关注 sql 本身即可,而无需关注 驱动,链接 等繁杂的操作过程;mybatis 通过 xml 或注解将要执行的 statement 进行封装,并通过 Java 对象和statement 的参数进行映射成最终要执行的 sql 语句,最后由 mybatis 执行 sql 语句并将执行结果映射为 Java 对象并返回,采用 ORM 思想解决了实体和数据表映射的问题,对 jdbc 进行了封装,屏闭了 jdbc.api 的访问细节,开发者无需和 jdbc.api 打交道就可以轻松对 数据进行 CRUD;
1.5、MyBatis 入门
1、Mybatis 环境搭建
第一步、创建 Maven 项目,并导入相关 jar 包:
<!-- 配置 打包方式--> <packaging>jar</packaging> <dependencies> <dependency> <groupId>org.mybatis</groupId> <artifactId>mybatis</artifactId> <version>3.4.5</version> </dependency> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <version>5.1.8</version> </dependency> <dependency> <groupId>log4j</groupId> <artifactId>log4j</artifactId> <version>1.2.12</version> </dependency> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>4.10</version> </dependency> </dependencies>
第二步、创建 实体类和 DAO 接口
User.class
public class User implements Serializable { private Integer id; private String username; private Date birthdat; private String sex; private String address; public Integer getId() { return id; } public void setId(Integer id) { this.id = id; } public String getUsername() { return username; } public void setUsername(String username) { this.username = username; } public Date getBirthdat() { return birthdat; } public void setBirthdat(Date birthdat) { this.birthdat = birthdat; } public String getSex() { return sex; } public void setSex(String sex) { this.sex = sex; } public String getAddress() { return address; } public void setAddress(String address) { this.address = address; } @Override public String toString() { return "User{" + "id=" + id + ", username='" + username + '\'' + ", birthdat=" + birthdat + ", sex='" + sex + '\'' + ", address='" + address + '\'' + '}'; }
IUserDao,class
public interface IUserDao { //查询所有用户 List<User> getAll(); }
第三步、创建 Mybaits 主配置文件
SQLMapCOnfig.xml
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN" "http://mybatis.org/dtd/mybatis-3-config.dtd"> <!-- mybatis 主配置文件 --> <configuration> <!-- 配置环境 --> <environments default="mysql"> <!-- 配置 mysql 黄静 --> <environment id="mysql"> <!-- 配置使用事务类型 --> <transactionManager type="JDBC"></transactionManager> <!-- 配置数据源 --> <!-- 配置数据库基本信息 --> <dataSource type="POOLEDs"> <property name="driver" value="com.mysql.jdbc.Driver"/> <property name="url" value="jdbc:mysql://192.168.31.129:3306/test"/> <property name="username " value="root"/> <property name="password" value="521hui"/> </dataSource> </environment> </environments> <!-- 指定配置文件位置, --> <mappers> <mapper resource="org/wdh01/dao/IUserDao.xml"></mapper> </mappers> </configuration>
第四步、创建 IUserDao.xml mapper 文件
IUserDao.xml
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> <mapper namespace="org.wdh01.dao.IUserDao"> <!-- 配置查询所有 --> <select id="getAll" > SELECT * FROM USER </select> </mapper>
2、Mybatis 环境搭建注意事项
- 创建 IUserDao.xml 和 IUserDao.java 名称需要保持一致,在Mybatis 中 把 接口和 映射文件统称为 Mapper,所以 IUserDao 和 IUserMapper 一样;
- IDEA 创建目录和包不一样,org.wdh01.domain 创建包是三级包名,org.wdh01.domain 创建包是三级目录
- Mybatis 接口和Mapper 文件目录结构必须保持一致;
- Mapper 文件的 namespace 属性必须是对应 DAO 接口的全类名;
- Mapper 文件对应的 select 标签 ID 必须是 DAO 查询方法的方法名;
现在环已经好了,一起开始学习吧