# Mybatis-learning
**Repository Path**: taowd/Mybatis-learning
## Basic Information
- **Project Name**: Mybatis-learning
- **Description**: Mybatis学习系列代码
- **Primary Language**: Java
- **License**: Not specified
- **Default Branch**: master
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 0
- **Forks**: 0
- **Created**: 2018-03-29
- **Last Updated**: 2022-06-20
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
# Mybatis-learning
Mybatis学习系列代码
# 摘要
软件项目最重要的是和数据库打交道,刚开始接触软件开发的时候,觉得最难的就是与数据库连接,操作数据库这块了;后来慢慢学习,学会了使用JDBC连接数据库,对数据库进行操作;但是JDBC每次操作数据库都要写相同代码的比较麻烦,于是就慢慢学习封装JDBC,也使用过dbUtils开源框架,Spring的JdbcTesplate等,但是这些换是需要将Sql写死在代码里面,后期优化Sql时比较麻烦,于是后来接触到了Hibernate,这种完全不用编写任何Sql语句,可以使用面相对象的过程去编写Sql,但是它有一个不好的地方就是不利于Sql优化,复杂的Sql语句就无能为力了,这样就出现了MyBatis。本文就记录了学习Maybatis的一系列过程。
# Mybatis介绍
[官网介绍](http://www.mybatis.org/mybatis-3/zh/index.html):
MyBatis 是一款优秀的持久层框架,它支持定制化 SQL、存储过程以及高级映射。MyBatis 避免了几乎所有的 JDBC 代码和手动设置参数以及获取结果集。MyBatis 可以使用简单的 XML 或注解来配置和映射原生信息,将接口和 Java 的 POJOs(Plain Old Java Objects,普通的 Java对象)映射成数据库中的记录。
JDBC->dbutils(自动封装)->MyBatis->Hibernate
# 入门
## 安装
要使用 MyBatis, 只需将 [mybatis-x.x.x.jar](http://mvnrepository.com/artifact/org.mybatis/mybatis) 文件置于 classpath 中即可。
如果使用 Maven 来构建项目,则需将下面的 dependency 代码置于 pom.xml 文件中:
```
org.mybatis
mybatis
3.4.4
```
# MyBatis的第一个程序
## 添加jar包
【mybatis】 mybatis-3.1.1.jar
【MYSQL驱动包】mysql-connector-java-5.1.7-bin.jar
## 建库+表(测试数据库)
```sql
create database mybatis;
use mybatis;
CREATE TABLE users(id INT PRIMARY KEY AUTO_INCREMENT, NAME VARCHAR(20), age INT);
INSERT INTO users(NAME, age) VALUES('Tom', 12);
INSERT INTO users(NAME, age) VALUES('Jack', 11);
```
## 添加Mybatis的配置文件conf.xml
```
```
## 定义表所对应的实体类
```
public class User {
private int id;
private String name;
private int age;
//get,set方法
}
```
## 定义操作users表的sql映射文件userMapper.xml
```xml
```
## 在conf.xml文件中注册userMapper.xml文件
```xml
```
## 编写测试代码:执行定义的select语句
```java
public class Test {
public static void main(String[] args) throws IOException {
String resource = "conf.xml";
//加载mybatis的配置文件(它也加载关联的映射文件)
Reader reader = Resources.getResourceAsReader(resource);
//构建sqlSession的工厂
SqlSessionFactory sessionFactory = new SqlSessionFactoryBuilder().build(reader);
//创建能执行映射文件中sql的sqlSession
SqlSession session = sessionFactory.openSession();
//映射sql的标识字符串
String statement = "com.atguigu.mybatis.bean.userMapper"+".selectUser";
//执行查询返回一个唯一user对象的sql
User user = session.selectOne(statement, 1);
System.out.println(user);
}
}
```
## 项目结构
[项目代码下载](https://github.com/TaciturnK/Mybatis-learning)