zoukankan      html  css  js  c++  java
  • Mybatis入门之MyBatis基础

    一、MyBatis概述

    1、ORM模型简介

    ORM:对象关系映射(Object Relation Mapping)

    1)传统JDBC程序的设计缺陷(实际项目不使用)

    a.大量配置信息硬编码

    b.大量的无关业务处理的编码

    c.扩展优化极为不便

    2、MyBatis概述

    是支持定制化SQL、存储过程以及高级映射的优秀的持久层框架

    • 避免传统JDBC硬编码
    • XML配置或者注解
    • POJO对象和数据库记录直接映射
    • 完善的文档支持

    MyBatis的使用优势

    • 简单易学,快速上手,学习成本低
    • 数据库交互信息配置化
    • 动态SQL处理

    3、MyBatis使用优势及应用场景

    • 更加关注SQL优化的项目
    • 需求频繁更新改动的项目

    二、开发环境搭建

    • MyBatis的下载
    • 项目中引入MyBatis支持
    • 入门程序
    • 了解MyBatis的工作原理

     1)获取MyBatis

     2)传统项目中使用MyBatis

    • 下载地址

    https://github.com/mybatis/mybatis-3/releases

    •  项目中引入

    - 作为classpath依赖路径引入
    - 作为依赖项目引入

    3)maven方式引入

    •  查询配置

    step1:http://mvnrepository.com查询maven依赖配置
    step2: maven项目的pom.xml中添加配置
    step3:查看项目依赖
    step4: 了解maven本地仓库

    三、入门程序

    • 开发环境

    windows + jdk1.8.0u*** + IntelliJ idea + MySQL

    • 需求:完成一个数据的查询流程
    • 目的:了解mybatis核心api的操作流程
    • 扩展:了解mybatis的工作流程

    1)创建MVN项目

    2)配置pom.xml依赖

    step1:查询依赖http://mvnrepository.com,找到版本,复制配置信息

    配置mybatis依赖

    配置mysql依赖

    <?xml version="1.0" encoding="UTF-8"?>
    <project xmlns="http://maven.apache.org/POM/4.0.0"
             xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
             xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
        <modelVersion>4.0.0</modelVersion>
    
        <groupId>com.imooc.mybatis</groupId>
        <artifactId>mybatisDemo01</artifactId>
        <version>1.0-SNAPSHOT</version>
    
    
        <dependencies>
            <!-- mybatis依赖 -->
            <dependency>
                <groupId>org.mybatis</groupId>
                <artifactId>mybatis</artifactId>
                <version>3.5.1</version>
            </dependency>
            <!-- 数据库依赖 注意mysql版本 -->
            <dependency>
                <groupId>mysql</groupId>
                <artifactId>mysql-connector-java</artifactId>
                <version>6.0.18</version>
            </dependency>
        </dependencies>
    
    </project>

    3)配置mybatis主配置文件

    step1:在目录main/resource/中新建mybatis.xml文件

    step2:从mybatis官方文档复制配置信息,下载解压mybatis包,里面的pdf文档-getting started

    <?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>
        <environments default="development">
            <environment id="development">
                <transactionManager type="JDBC"/>
                <!--使用数据库连接池-->
                <dataSource type="POOLED">
                    <property name="driver" value="com.mysql.jdbc.Driver"/>
                    <property name="url" value="jdbc:mysql://localhost:3306/mytest"/>
                    <property name="username" value="root"/>
                    <property name="password" value="root"/>
                </dataSource>
            </environment>
        </environments>
        <!-- 映射配置文件的路径 -->
        <mappers>
    <!--        <mapper resource="org/mybatis/example/BlogMapper.xml"/>-->
        </mappers>
    </configuration>

    4)创建数据库

    CREATE DATABASE mytest;
    USE mytest;
    
    CREATE TABLE users(
        id INT AUTO_INCREMENT PRIMARY KEY COMMENT '用户编号',
        username VARCHAR(50) COMMENT '登录账号',
        userpass VARCHAR(50) COMMENT '登录密码',
        nickname VARCHAR(20) COMMENT '用户昵称'
        
    );
    
    INSERT INTO users VALUES(1,'admin','admin','管理员');
    INSERT INTO users VALUES(2,'manager','manager','管理员');
    INSERT INTO users VALUES(3,'administator','administator','管理员');

    5)在mvn项目中创建实体类

    在main/java中新建包com.imooc.entity,新建类Users

    package com.imooc.entity;
    
    public class Users {
        private Integer id;
        private String username;
        private String userpass;
        private String nickname;
    
        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 String getUserpass() {
            return userpass;
        }
    
        public void setUserpass(String userpass) {
            this.userpass = userpass;
        }
    
        public String getNickname() {
            return nickname;
        }
    
        public void setNickname(String nickname) {
            this.nickname = nickname;
        }
    }

    6)在resource中新建mapper文件夹,存放映射配置文件

    新建配置文件usersMapper.xml,复制官方文档Exploring Mapped SQL Statements中的信息

    <?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">
    <!--namespace命名空间
        通常情况,命名空间的值,就是当前操作实体类的全名称
        -->
    <mapper namespace="com.imooc.entity.Users">
        <!-- id是查询的id,resultType是返回值类型-->
        <select id="userList" resultType="com.imooc.entity.Users">
            select * from users
        </select>
    </mapper>

    7)在test/java中新增测试类TestDemo,使用junit进行测试

    使用junit需要在pom.xml中增加依赖

            <dependency>
                <groupId>junit</groupId>
                <artifactId>junit</artifactId>
                <version>4.12</version>
            </dependency>
    package com.imooc.test;
    
    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 org.junit.Test;
    import com.imooc.entity.Users;
    
    import java.io.IOException;
    import java.io.InputStream;
    import java.util.List;
    
    public class TestDemo {
        /*
        通过junit进行测试
         */
        @Test
        public void testDemo1() throws IOException {
            //初始化mybaits配置环境
            String resource = "mybatis.xml";
            InputStream is=Resources.getResourceAsStream(resource);
            SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(is);
            //打开和数据库之间的会话
            SqlSession session = sqlSessionFactory.openSession();
            try {
                List<Users> ulist = session.selectList("userList");
                for(Users user:ulist){
                    System.out.println(user);
                }
            } finally {
                session.close();
            }
    
        }
    }
  • 相关阅读:
    c# 抽象类(abstract)
    c# 虚方法(virtual)与 多态(Polymorphism)
    02.JavaScript基础上
    第 12 章 Ajax
    第 11 章 动画效果
    第 10 章 高级事件
    第 9 章 事件对象
    第 8 章 基础事件
    第 7 章 表单选择器
    第6章 DOM节点操作
  • 原文地址:https://www.cnblogs.com/loveapple/p/11181165.html
Copyright © 2011-2022 走看看