小白大学生学习MyBatis(二)

本文介绍了MyBatis框架的基本使用流程,包括配置文件读取、SqlSessionFactory构建、SqlSession获取及基本CRUD操作方法。通过具体示例展示了如何进行数据插入,并确保线程安全。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

小白大学生学习MyBatis(二)

1 . 接(一)解释测试代码 主要类的介绍

https://blog.csdn.net/hjs_75187712/article/details/118344894?spm=1001.2014.3001.5501
1)Resources:mybatis中的一个类,负责读取主配置文件

​ InputStream in = Resources.getResourceAsStream(config);

2)SqlSessionFactoryBuilder:创建SqlSessionFactory对象
SqlSessionFactoryBuilder builder = new SqlSessionFactoryBuilder();

​ SqlSessionFactory factory = builder.build(in);

3)SqlSessionFactory:重量级对象,程序创建一个对象耗时比较长,使用资源多

​ 在整个项目里有一个就可以。

​ SqlSessionFactory:接口

​ 接口的实现类:DefaultSqlSessionFactory

​ SqlSessionFactory作用:获取SqlSession对象

​ SqlSession sqlSession = factory.openSession();

​ openSession()方法说明:

​ 1.openSession():无参数的,获取是非自动提交事物的SqlSession对象

​ 2.openSession(boolean):openSession(true) 获取自动提交事务的SqlSession对象。

​ openSession(false) 非自动提交事务的SqlSession对象。

4)SqlSession:

SqlSession接口:定义了操作数据的方法,例如 selectOne(),selectList(),insert(),update(),delete(),commit(),rollback(),

SqlSession接口的实现类:DefaultSqlSession

使用要求:SqlSession对象不是线程安全的,需要在方法内部使用,在执行sql语句之前,使用openSession()获取SqlSession

​ 在执行完sql语句后,需要关闭它,执行SqlSession.close(),这样能保证他的使用是线程安全的。
在可视化工具中测试
在这里插入图片描述

StudenrMapper.xml

<insert id="insertStudent" >
    INSERT  INTO student (ID,NAME,AGE) VALUES (#{id},#{name},#{age})
</insert>
package com.sdyu;
import com.sdyu.bean.Student;
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 AppTest 
{
    public static void main(String[] args) throws IOException {
//访问mybatis读取student数据
        //1.定义mybatis主配置文件名称,从类路径的根开始(target/classes)
        String config = "mybatis.xml";
        //2.读取这个config表示的文件
        InputStream in = Resources.getResourceAsStream(config);
        //3.创建SqlSessionFactoryBuilder
        SqlSessionFactoryBuilder builder = new SqlSessionFactoryBuilder();
        //4.创建SqlSessionFactory对象
        SqlSessionFactory factory = builder.build(in);
        //5.获取SqlSession对象,从SqlSessionFactory中获取SqlSession
        SqlSession sqlSession = factory.openSession();
        //6.指定要执行的sql语句的标识,sql映射文件中的namespace + "."+标签的id值
        String sqlId = "com.sdyu.dao.StudentDao"+"."+"insertStudent";
        //7.执行sql语句,通过sqlId找到语句
        Student student = new Student();
        student.setId(555);
        student.setName("hjs");
        student.setAge("50");
        //第一个参数为 sql语句,第二个参数为要插入的对象
        int nums = sqlSession.insert(sqlId,student);

	    //mybatis默认不是自动提交事务的,所以在insert、update、delete后手工提交事务
	    sqlSession.commit();
	    //8.输出结果
	    System.out.println("成功"+nums);
	    //9.关闭SqlSession对象
	    sqlSession.close();
    }

}

运行截图:
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值