JavaWeb学习——MyBatis基础学习(3)

MyBatis基础学习

  • 简介
      • 持久层
      • JDBC的缺点
            • 1,硬编码
            • 2,操作繁琐
      • MyBatis简化思路
  • 实现
      • MyBatis快速入门
            • 1,创建user表,添加数据
            • 2,创建模块,导入坐标
            • 3,编写mybatis核心配置文件(映射)即解决硬编码问题
            • 4,编写sql映射文件
            • 5,编码

简介

MyBatis是一款优秀的持久层框架,用于简化JDBC开发

持久层

负责将数据保存到数据库的那一层代码
JavaEE三层架构:表现层(页面展示),业务层(逻辑处理),持久层(数据持久化)

JDBC的缺点

1,硬编码

指的是某些代码以固定的样子在不同的机器上运行,可能会导致部分代码无法自适应,需要重新编译打包运行
例如:mysql的驱动用户名和密码,每台电脑上都不一样,需要改动,代码维护性很差;SQL语句需要随时改动等

2,操作繁琐

手动设置参数,手动封装结果集,需要遍历结果,封装对象等一大堆代码

MyBatis简化思路

1,硬编码->直接写入配置文件,在配置里面小改即可
2,操作繁琐->自动生成

JavaWeb学习——MyBatis基础学习(3)_第1张图片
1,注册驱动,获取链接
2,SQL语句抽取到配置文件中

3,操作繁琐的自动生成方式
JavaWeb学习——MyBatis基础学习(3)_第2张图片

实现

MyBatis快速入门

任务如下所示,查询user表中所有数据
JavaWeb学习——MyBatis基础学习(3)_第3张图片

1,创建user表,添加数据

JavaWeb学习——MyBatis基础学习(3)_第4张图片

2,创建模块,导入坐标

JavaWeb学习——MyBatis基础学习(3)_第5张图片结果像这样,一些基础的配置文件已经好了
JavaWeb学习——MyBatis基础学习(3)_第6张图片


<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.0modelVersion>

    <groupId>org.examplegroupId>
    <artifactId>mybatis-demo1artifactId>
    <version>1.0-SNAPSHOTversion>

    <dependencies>
        
        <dependency>
            <groupId>org.mybatisgroupId>
            <artifactId>mybatisartifactId>
            <version>3.5.5version>
        dependency>
        
        <dependency>
            <groupId>mysqlgroupId>
            <artifactId>mysql-connector-javaartifactId>
            <version>5.1.46version>
        dependency>
        
        <dependency>
            <groupId>junitgroupId>
            <artifactId>junitartifactId>
            <version>4.13version>
            <scope>testscope>
        dependency>
        
        <dependency>
            <groupId>org.slf4jgroupId>
            <artifactId>slf4j-apiartifactId>
            <version>1.7.20version>
        dependency>
        
        <dependency>
            <groupId>ch.qos.logbackgroupId>
            <artifactId>logback-classicartifactId>
            <version>1.2.3version>
        dependency>
        
        <dependency>
            <groupId>ch.qos.logbackgroupId>
            <artifactId>logback-coreartifactId>
            <version>1.2.3version>
        dependency>
    dependencies>

project>
3,编写mybatis核心配置文件(映射)即解决硬编码问题

DOCTYPE mapper
        PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
        "http://mybatis.org/dtd/mybatis-3-mapper.dtd">

<mapper namespace="test">

    <select id="selectAll" resultType="com.itheima.pojo.User">
        select * from tb_user;
    select>
mapper>

JavaWeb学习——MyBatis基础学习(3)_第7张图片

4,编写sql映射文件

JavaWeb学习——MyBatis基础学习(3)_第8张图片

5,编码

定义pojo类(数据表里面有哪些属性我就写哪些属性)

package com.itheima.pojo;

public class User {
    private Integer id;
    private String primary;
    private String username;
    private String password;
    private String gender;
    private String addr;
}

1,现在写setter和getter语言
alt+ins选择setter和getter来选中所有类,结果如图
JavaWeb学习——MyBatis基础学习(3)_第9张图片2,重写toString
也是alt+ins选中toString选择所有来建立
JavaWeb学习——MyBatis基础学习(3)_第10张图片3,加载核心配置文件,获得sql工厂对象

package com.itheima;

//MyBatis快速入门代码

import com.itheima.pojo.User;
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;
import java.util.List;

public class MyBatisDemo {
    public static void main(String[] args) throws IOException {
        //1,加载mybatis的核心配置文件,获取SqlSessionFactory对象
        String resource = "mybatis-config.xml";
        InputStream inputStream = Resources.getResourceAsStream(resource);
        SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
        //2,获取对应的SqlSession对象,用来执行sql语句
        SqlSession sqlSession = sqlSessionFactory.openSession();
        //3,执行sql
        List<User> users = sqlSession.selectList("test1.selectAll");
        System.out.println(users);
        //4,释放资源
        sqlSession.close();
    }
}

结果如图所示,成功查询

JavaWeb学习——MyBatis基础学习(3)_第11张图片

你可能感兴趣的:(JavaWeb,java-ee,java)