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

Mybatis学习总结

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

Mybatis学习总结

1. 什么是Mybatis

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


2.  编写Mybatis的步骤

首先我们要写一个Mybatis的核心配置文件,我们一般叫Mybatis-config.xml,这个名字其实是可以随便起的,但是我们有一句话叫约定大于配置.

Mybatis.config.xml文件代码




    
    

    
    
        
    

    
        
            
            
                
                
                
                
            
        
    
    
    
        
    

dp.properties里面写数据库的信息

第二步  我们需要写一个Mybatis工具类

Utils.java

package 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 Util {
    public static SqlSessionFactory sqlSessionFactory;
    static {
        try {
            //获取sqlSessionFactory对象
            String resource = "mybatis-config.xml";
            InputStream inputStream = Resources.getResourceAsStream(resource);
            sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
    //获取sqlSession对象,它完全包含了面向数据库执行SQL语句所需的所有方法
    public static SqlSession getSqlSession() {
        if(sqlSessionFactory==null){
            System.out.println("这个是空的");
        }
        //自动提交
        return sqlSessionFactory.openSession(true);
    }
}

这里要特别注意sqlsessionFactory的作用域,我第一次就在这里遇到空指针异常

第三步  创建实体类

这一步就很简单了,跟数据库中的字段对应上就可以了,具体的代码就不写了,我们一般叫这种模型起名叫POJO

第四步 写一个Mapper接口

写一个方法

package Mapper;

import Models.aaa;

import java.util.List;

public interface DemoMapper {
    List getInsert();
}

查询表里面的所有信息

第五步  编写Mapper配置文件

DemoMapper.xml





    
    
        select * from aaa
    

第六步  执行方法

package Test01;

import Mapper.DemoMapper;
import Models.aaa;
import Utils.Util;
import org.apache.ibatis.session.SqlSession;

import java.util.List;

public class Test {
    public static void main(String[] args) {
        SqlSession sqlSession = Util.getSqlSession();
        DemoMapper mapper = sqlSession.getMapper(DemoMapper.class);
        List insert = mapper.getInsert();
        for (aaa aaa : insert) {
            System.out.println(aaa);
        }
        sqlSession.close();
    }
}

增删改都是一样的,写一个方法,然后在Mapper.xml文件里面配置

删除:

Mapper.xml文件代码

 
    
        delete from aaa where id=#{id}
    

执行代码

  SqlSession sqlSession = Util.getSqlSession();
            DemoMapper mapper = sqlSession.getMapper(DemoMapper.class);
            int delete = mapper.getDelete(1014);
            System.out.println("成功删除id为1014的学生信息");
            sqlSession.close();

增加:

    
        insert into aaa (id,myname,sex,myaddress) values(#{id},#{myname},#{sex},#{myaddress})
    

执行代码

  SqlSession sqlSession = Util.getSqlSession();
  DemoMapper mapper = sqlSession.getMapper(DemoMapper.class);
  aaa aaa = new aaa(1015, "张三", "未知", "泰国");
  mapper.getChange(aaa);
  sqlSession.close();

万能Map,这个是我们最常用的

我们要查询一个学生信息,条件为id和姓名

 

执行方法

qlSession sqlSession = Util.getSqlSession();
        DemoMapper mapper = sqlSession.getMapper(DemoMapper.class);
        Map map = new HashMap();
        map.put("name", "李四");
        map.put("sid", 1015);
        List set = mapper.getSet(map);
        for (aaa aaa : set) {
            System.out.println(aaa);
        }
        sqlSession.close();

未完待续

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

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

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