栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

SSM——MyBatis概述

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

SSM——MyBatis概述

文章目录

一. MyBatis简介

1. 什么是mybatis2. 什么是持久化 二. MyBatis开发步骤

1. 创建数据库2. IDEA中导入MyBatis所需jar包3. pojo层下编写实体类4. resources下编写MyBatis核心配置文件5. utils包下编写MyBatis工具类6. 在dao层下编写实体类的Mapper接口类7. 编写实体类对应的Mapper.xml配置文件

7.1 Mybatis的Dao(Mapper)层实现 8. 通过测试类进行测试9. 注意事项 三. MyBatis相应的API

1. SqlSessionFactoryBuilder(SqlSession工厂构建器)2. SqlSessionFactory(SqlSession工厂对象)3. SqlSession(会话对象)

一. MyBatis简介 1. 什么是mybatis

MyBatis 是一款优秀的持久层框架

MyBatis 避免了几乎所有的 JDBC 代码和手动设置参数以及获取结果集的过程

MyBatis 可以使用简单的 XML 或注解来配置和映射原生信息,将接口和 Java 的 实体类映射成数据库中的记录。

MyBatis 本是apache的一个开源项目ibatis, 2010年这个项目由apache 迁移到了google code,并且改名为MyBatis 。

Mybatis官方文档 : http://www.mybatis.org/mybatis-3/zh/index.html

2. 什么是持久化

持久化是将程序数据在持久状态和瞬时状态间转换的机制。

即把数据(如内存中的对象)保存到可永久保存的存储设备中(如磁盘)。持久化的主要应用是将内存中的对象存储在数据库中,或者存储在磁盘文件中、XML数据文件中等等。

JDBC就是一种持久化机制。文件IO也是一种持久化机制。

持久层:

完成持久化工作的代码块 . ----> dao层 【DAO (Data Access Object) 数据访问对象】

说白了就是用来操作数据库存在的!

二. MyBatis开发步骤 1. 创建数据库
CREATE DATAbase `mybatis`;

USE `mybatis`;

DROp TABLE IF EXISTS `user`;

CREATE TABLE `user` (
`id` int(20) NOT NULL,
`name` varchar(30) DEFAULT NULL,
`pwd` varchar(30) DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

insert  into `user`(`id`,`name`,`pwd`) values (1,'狂神','123456'),(2,'张三','abcdef'),(3,'李四','987654');
2. IDEA中导入MyBatis所需jar包

   org.mybatis
   mybatis
   3.5.2


   mysql
   mysql-connector-java
   5.1.47

3. pojo层下编写实体类

public class User {
   
   private int id;  //id
   private String name;   //姓名
   private String pwd;   //密码
   
   //构造,有参,无参
   //set/get
   //toString()
   
}
4. resources下编写MyBatis核心配置文件






    
    

    
        
            
            
                
                
                
                
            
        
    

    
        
    

MyBatis核心配置文件层级关系



driver=com.mysql.jdbc.Driver
url=jdbc:mysql://localhost:3306/mybatis?useSSL=true&useUnicode=true&characterEncoding=utf8
username=root
password=root

typeAliases给实体类起别名

5. utils包下编写MyBatis工具类

在工具类中获得resources包下的mybatis核心配置文件,进而获取SqlSession连接

package com.pudding.utils;

import org.apache.ibatis.io.Resources;
import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;
import org.apache.ibatis.session.SqlSessionFactoryBuilder;

import java.io.IOException;
import java.io.InputStream;

//SqlSessionFactory --> SqlSession
public class MybatisUtils {

    private static SqlSessionFactory sqlSessionFactory;
    static {
        try {
            //使用mybatis第一步:获取SqlSessionFactory对象
            String resource = "mybatis-config.xml";
            InputStream inputStream = Resources.getResourceAsStream(resource);
            sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
        } catch (IOException e) {
            e.printStackTrace();
        }
    }

    //获取SqlSession连接
    //既然有了 SqlSessionFactory,顾名思义,我们可以从中获得 SqlSession 的实例
    //SqlSession 提供了在数据库执行 SQL 命令所需的所有方法
    public static SqlSession getSession(){
        return sqlSessionFactory.openSession();
    }
}

6. 在dao层下编写实体类的Mapper接口类

package com.pudding.dao;

import com.pudding.pojo.User;

import java.util.List;
import java.util.Map;

public interface UserMapper {

    //查询所有用户
    List getUserList();

    //根据ID查询用户
    User getUserById(int id);

    User getUserById(Map map);

    //insert一个用户
    int addUser(User user);

    //万能的Map
    int addUser2(Map map);

    //修改用户
    int updateUser(User user);

    //根据id删除用户
    int deleteUser(int id);
}

7. 编写实体类对应的Mapper.xml配置文件



        


    
        select * from user where id = #{id}