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

Mybatis快速入门

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

Mybatis快速入门

一、Jdbc的缺点
    数据库连接创建、释放频繁造成系统资源浪费从而影响系统性能sql语句在代码中硬编码,造成代码不易维护,实际应用sql变化的可能较大,sql变动需要java代码查询操作时,需要手动将结果集中的数据手动封装到实体中,插入操作时,需要手动将实体的数据设置到sql语句的占位符位置

应对上述问题给出的解决方案:

    使用数据库连接池初始化连接资源将sql语句抽取到xml配置文件使用反射、内省等底层技术,自动将实体与表面进行属性与字段的自动映射
二、MyBatis是什么?
    mybatis是一个优秀的基于java的持久层框架,它内部封装了jdbc,使开发者只需要关注sql语句本身,而不需要花费精力去处理加载驱动,创建连接、创建statement等繁杂的过程。mybatis通过xml或注解的方式将要执行的各种statement配置起来,并通过java对象和statement中sql的动态参数进行映射生成最终执行的sql语句。最后mybatis框架执行sql并将结果映射为java对象并返回。采用了ORM思想解决1了实体和数据库实体问题,对jdbc进行了封装,屏蔽了jdbc api底层访问细节,使我们不用与jdbc api打交道,就可以完成对数据库的持久化操作。
三、Mybatis快速入门
    添加MyBatis坐标
    
        
            mysql
            mysql-connector-java
            8.0.28
        
        
            org.mybatis
            mybatis
            3.4.6
        
        
            junit
            junit
            4.12
        
        
            log4j
            log4j
            1.2.17
        
    

    创建user数据表

    编写User实体类
    在domain层创建一个User实体类,参数与数据库对应。

package com.itheima.domain;

public class User {
    private int id;
    private String username;
    private String password;

    public int getId() {
        return id;
    }

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

    public String getUsername() {
        return username;
    }

    public void setUsername(String username) {
        this.username = username;
    }

    public String getPassword() {
        return password;
    }

    public void setPassword(String password) {
        this.password = password;
    }


    @Override
    public String toString() {
        return "User{" +
                "id=" + id +
                ", username='" + username + ''' +
                ", password='" + password + ''' +
                '}';
    }
}

    编写映射文件UserMapper.xml
    创建File文件取名为UserMapper.xml,首先在文件中加入约束头



    
    
        select * from user
    


resultType的使用让sql语句产生的结果对应到封装的对象。

    编写核心文件SqlMapConfig.xml

首先编写核心文件约束头




配置数据源



    
        
            
            
                
                
                
                
            
        
    


    
        
    
    编写测试类
    在test中创建MyBatisTest测试类
package com.itheima.test;

import com.itheima.domain.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 org.junit.Test;

import java.io.IOException;
import java.io.InputStream;
import java.util.List;

public class MyBatisTest {
    @Test
    public void test1() throws IOException {
        //获得核心配置文件
        InputStream resourceAsStream = Resources.getResourceAsStream("sqlMapConfig.xml");
        //获得session工厂对象
        SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(resourceAsStream);
        //获得session会话对象
        SqlSession sqlSession = sqlSessionFactory.openSession();
        //执行操作 参数
        List userList = sqlSession.selectList("userMapper.findAll");
        //打印数据
        System.out.println(userList);
        //释放资源
        sqlSession.close();

    }
}


测试结果

成功打印出数据库中的数据

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

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

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