一、Mybatis入门介绍及简单案例

一、Mybatis入门介绍及案例

1、Mybaits简介

1.1、什么是Mybatis

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

  • 它内部封装了 jdbc,使开发者只需要关注 sql 语句本身,而不需要花费精力去处理加载驱动、创建连接、创建 statement 等繁杂的过程。

  • mybatis 通过 xml 或注解的方式将要执行的各种 statement 配置起来,并通过 java 对象和 statement 中sql 的动态参数进行映射生成最终执行的 sql 语句,最后由 mybatis 框架执行 sql 并将结果映射为 java 对象并返回。

  • 采用 ORM 思想解决了实体和数据库映射的问题,对 jdbc 进行了封装,屏蔽了 jdbc api 底层访问细节,使我们不用与 jdbc api 打交道,就可以完成对数据库的持久化操作。

1.2、什么是持久化?

​ 字面理解就是将非持久化的数据也就是短暂的数据变为固定的数据,该数据不会因断电等物理状态而缺失。主要就是将内存中的对象保存到存储设备(硬盘)之中。

1.3、什么是持久层?

​ 为持久化服务,即为完成持久化而存在的“层”。—即 Data Access Object DAO 数据访问对象。

​ 一般存在于企业应用中,将一些企业数据持久化至数据库中。

1.4、什么是ORM?

​ Object Relational Mapping(对象关系映射),其主要作用是在编程中,把面向对象的概念跟数据库中表的概念对应起来。举例来说就是,我定义一个对象,那就对应着一张表,这个对象的实例,就对应着表中的一条记录。

1.5、Mybatis的优点

  • 是一个半自动的ORM框架,不会对应用程序或者数据库现有设计强加影响,且sql写在xml中,更加便于管理
  • 将sql语句与程序解耦,通过DAO层,将业务逻辑与数据访问分离。让系统更清晰,便于维护。

2、mybaits的入门案例

​ 学习Mybatis入门代码之前,我建议大家先去看一下官网的中文文档,有着非常详细的入门介绍。网址如下:https://mybatis.org/mybatis-3/zh/getting-started.html。

​ 当然在此之前,你要配置好java、maven的环境

​ 此外,我也写了详细的注释和代码,如下

  1. 写好测试sql表

    SET NAMES utf8mb4;
    SET FOREIGN_KEY_CHECKS = 0;
    
    -- ----------------------------
    -- Table structure for user
    -- ----------------------------
    DROP TABLE IF EXISTS `user`;
    CREATE TABLE `user`  (
      `user_name` varchar(40) CHARACTER SET latin1 COLLATE latin1_swedish_ci NULL DEFAULT NULL,
      `password` varchar(40) CHARACTER SET latin1 COLLATE latin1_swedish_ci NULL DEFAULT NULL,
      `id` int(10) NOT NULL AUTO_INCREMENT,
      PRIMARY KEY (`id`) USING BTREE
    ) ENGINE = InnoDB AUTO_INCREMENT = 4 CHARACTER SET = latin1 COLLATE = latin1_swedish_ci ROW_FORMAT = Compact;
    
    -- ----------------------------
    -- Records of user
    -- ----------------------------
    INSERT INTO `user` VALUES ('admin', 'admin123', 1);
    INSERT INTO `user` VALUES ('admin2', 'admin1234', 2);
    INSERT INTO `user` VALUES ('admin3', 'admin12345', 3);
    
    SET FOREIGN_KEY_CHECKS = 1;
    
  2. 创建maven项目,在 pom.xml 文件中添加 Mybatis、mysql、junit,如下:

    <dependencies>
        <!--mybatis依赖-->
        <dependency>
            <groupId>org.mybatis</groupId>
            <artifactId>mybatis</artifactId>
            <version>3.5.2</version>
        </dependency>
        <!--mysql依赖-->
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <version>5.1.47</version>
        </dependency>
        <!--测试依赖-->
        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <version>3.8.1</version>
        </dependency>
    </dependencies>
    
  3. 编写Mybatis核心配置文件 mybatis-config

    直接将官网的复制下来即可配置文件复制下来

    <?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">
    <configuration>
        <!--此处为配置环境部分,你可以在下方配置多个环境,然后default选择你需要的环境-->
        <environments default="development">
            <environment id="development">
                <transactionManager type="JDBC"/>
                <dataSource type="POOLED">
                    <!--此处需要输入你的数据库信息,后期一般用配置文件加载-->
                    <property name="driver" value="${driver}"/>
                    <property name="url" value="${url}"/>
                    <property name="username" value="${username}"/>
                    <property name="password" value="${password}"/>
                </dataSource>
            </environment>
        </environments>
        
        <mappers>
            <!--mappers映射,该处指定mapper文件位置,不写将会报错-->
            <mapper resource="org/mybatis/example/BlogMapper.xml"/>
        </mappers>
    </configuration>
    
  4. 编写mybatis工具类 MybatisUtils

    package com.chen.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;
    
    public class MybatisUtils {
        private static SqlSessionFactory sqlSessionFactory;
        static {
            try {String resource = "mybatis-config.xml";
                InputStream inputStream = Resources.getResourceAsStream(resource);
                /*创建sql工厂*/
                sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
            } catch (IOException e) {
                e.printStackTrace(); }
        }
        //获取SqlSession连接
        public static SqlSession getSession(){ return sqlSessionFactory.openSession(); }
    }
    
  5. 创建实体类 User

    package com.chen.domain;
    
    public class User {
        private int id;
        private String name;
        private String password;
    
        public User(int id, String name, String password) {
            this.id = id;
            this.name = name;
            this.password = password;
        }
    
        public User(){};
    
        @Override
        public String toString() {
            return "User{" +
                    "id=" + id +
                    ", name='" + name + '\'' +
                    ", password='" + password + '\'' +
                    '}';
        }
    
        public int getId() {
            return id;
        }
    
        public void setId(int id) {
            this.id = id;
        }
    
        public String getName() {
            return name;
        }
    
        public void setName(String name) {
            this.name = name;
        }
    
        public String getPassword() {
            return password;
        }
    
        public void setPassword(String password) {
            this.password = password;
        }
    }
    
  6. 编写Mapper接口 UserMapper

    import java.util.List;
    
    public interface UserMapper {
        /*此处的方法名要与UserMapper中的id对应*/
        public List<User> findAll();
    }
    
  7. 编写Mapper配置文件 Mapper.xml

    <?xml version="1.0" encoding="UTF-8" ?>
    <!DOCTYPE mapper
            PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
            "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
        <!--此处的命名空间为接口UserMapper.java文件-->
    <mapper namespace="com.chen.mapper.UserMapper">
        <select id="findAll" resultType="com.chen.domain.User">
            select * from user
        </select>
    </mapper>
    
  8. 编写测试类

public class UserTest {
    @Test
    public void Test(){
        SqlSession session = MybatisUtils.getSession();
        UserMapper mapper = session.getMapper(UserMapper.class);

        List<User> users = mapper.findAll();
        for (User user: users){
            System.out.println(user);
        }

        session.close();
    }
}
  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值