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

JavaWeb自我学习——MyBatis

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

JavaWeb自我学习——MyBatis

目录

 

什么是MyBatis?

JDBC缺点

MyBatis简化

MyBatis简单实现


什么是MyBatis?


MyBatis 是一款优秀的持久层框架,它支持自定义 SQL、存储过程以及高级映射。MyBatis 免除了几乎所有的 JDBC 代码以及设置参数和获取结果集的工作。MyBatis 可以通过简单的 XML 或注解来配置和映射原始类型、接口和 Java POJO(Plain Old Java Objects,普通老式 Java 对象)为数据库中的记录。


MyBatis 本是 Apache的一个开源项目iBatis, 2010年这个项目由apache software foundation迁移到了google code,并且改名为MyBatis 。2013年11月迁移到Github官网: 

MyBatis官网https://mybatis.org/mybatis-3/zh/index.html

持久层:负责将数据到保存到数据库的那一层代码。
JavaEE三层架构:表现层、业务层、持久层 

框架:一个半成品软件,是一套可重用的、通用的、软件基础代码模型。在框架的基础之上构建软件编写更加高效、规范、通用、可扩展。


JDBC缺点

1.硬编码
        ①注册驱动
        ②获取连接SQL语句
2.操作繁琐
        ①手动设置参数
        ②手动封装结果集

MyBatis简化

硬编码 ——> 配置文件

繁琐操作 ——> 一行代码自动搞定


MyBatis简单实现

首先构建好要用的文件

 

查询student表中所有数据
1.创建student表,添加数据


2.创建模块,导入坐标(pom.xml)


        
        
            org.mybatis
            mybatis
            3.5.9
        
        
        
            junit
            junit
            4.13.2
            test
        
        
        
            mysql
            mysql-connector-java
            8.0.28
        

(可选)配置日志文件

        
        
            org.slf4j
            slf4j-api
            1.7.20
        
        
        
            ch.qos.logback
            logback-classic
            1.2.3
        
        
        
            ch.qos.logback
            logback-core
            1.2.3
        

logback.xml



    
    
        
            
            %d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n
        
    
    
    
        
    


3.编写MyBatis核心配置文件(mybatis-config.xml)-->替换连接信息,解决硬编码问题




    
        
            
            
                
                
                
                
                
            
        
    
    
        
        
    


4.编写SQL映射文件(StudentMapper.xml)-->统一管理sql语句,解决硬编码问题





    
           select * from student;
    


5.编码

①定义Student类

package Study;

public class Student {
    private String name;
    private Integer id;
    private Integer age;

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public Integer getId() {
        return id;
    }

    public void setId(Integer id) {
        this.id = id;
    }

    public Integer getAge() {
        return age;
    }

    public void setAge(Integer age) {
        this.age = age;
    }

    @Override
    public String toString() {
        return "Student{" +
                "name='" + name + ''' +
                ", id=" + id +
                ", age=" + age +
                '}';
    }
}


②加载核心配置文件,获取SqlSessionFactory对象
③获取SqlSession对象,执行SQL语句
④释放资源

package Study;

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.InputStream;
import java.util.List;

public class MyBatisDemo {
    public static void main(String[] args) throws Exception{
        //1.加载mybatis的核心配置文件,获取SqlSessionFactory
        String resource = "mybatis-config.xml";
        InputStream inputStream = Resources.getResourceAsStream(resource);
        SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);

        //2.获取SqlSession对象
        SqlSession sqlSession= sqlSessionFactory.openSession();

        //3.执行sql
        List students = sqlSession.selectList("test.selectAll");
        System.out.println(students);

        //4.释放资源
        sqlSession.close();
    }
}

6.运行结果:

 成功撒花*★,°*:.☆( ̄▽ ̄)/$:*.°★* 。

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/781657.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号