小白大学生学习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.创建SqlSessionFactoryBuilderSqlSessionFactoryBuilder builder = new SqlSessionFactoryBuilder();//4.创建SqlSessionFactory对象SqlSessionFactory factory = builder.build(in);//5.获取SqlSession对象,从SqlSessionFactory中获取SqlSessionSqlSession 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();}}

运行截图:

小白大学生学习MyBatis(二)相关推荐

  1. Mybatis底层原理学习(二):从源码角度分析一次查询操作过程

    在阅读这篇文章之前,建议先阅读一下我之前写的两篇文章,对理解这篇文章很有帮助,特别是Mybatis新手: 写给mybatis小白的入门指南 mybatis底层原理学习(一):SqlSessionFac ...

  2. Mybatis学习总结二

    Mybatis学习总结二 0.不需要修改的文件(在src下面) jdbc.properties文件 log4j.properties文件 SqlMapConfig.xml文件 1.高级结果映射 1.1 ...

  3. java毕业设计大学生学习交友平台Mybatis+系统+数据库+调试部署

    java毕业设计大学生学习交友平台Mybatis+系统+数据库+调试部署 java毕业设计大学生学习交友平台Mybatis+系统+数据库+调试部署 本源码技术栈: 项目架构:B/S架构 开发语言:Ja ...

  4. [MyBatis学习笔记] 二、Mybatis基本操作及相关标签介绍

    [MyBatis学习笔记] 二.Mybatis基本操作及相关标签介绍 一.Mybatis简介 二.简单的CRUD操作 1.构建SqlSessionFactory (1)编辑mybatis-config ...

  5. 如何用html语言浏览 路径,小白编程系列(二):前端学习路径

    前言 上一篇我们简单的说了一下小白应该如何认识编程这件事,怎么选择编程语言.这一篇我们来说我们选择好了编程语言后,如何学习这门编程语言,它的学习路径应该是怎么样的.这个得分开讲,每一门编程语言的学习路 ...

  6. React Native小白入门学习路径——五

    React Native小白入门学习路径--五 序 "哦天呐!" 这句话成了我在实验室的口头禅, 老师可能觉得我们都是大神吧,都还在看着基础就给布置了那么多任务:写一个RN的TDD ...

  7. Java技术分享:小白如何入门Mybatis?

    本文由小千给大家分享小白如何入门Mybatis. 一.数据持久化概念和ORM原理 1.数据持久化:持久化是程序数据在瞬时状态和持久状态间的转换过程 2.ORM:编写程序的时候,以面向对象的方式处理数据 ...

  8. 小白如何入门Mybatis?这里有答案

    本文由小千给大家分享小白如何入门Mybatis. 一.数据持久化概念和ORM原理 1.数据持久化:持久化是程序数据在瞬时状态和持久状态间的转换过程 2.ORM:编写程序的时候,以面向对象的方式处理数据 ...

  9. 学计算机的大1新生规划,大学生学习计划怎么写

    时间总在不经意间流逝,转眼已是大二学期了,不再是大一的新生了.学习不能在盲目的下去,应该要有一个明确的目标. 大学生学习计划 1.恰当安排各项学习任务,使学习有秩序地进行,有了计划可以把自己的学习管理 ...

最新文章

  1. 2017中国互联网消费生态大数据报告
  2. 阿里菜鸟知识储备之二——git工具学习
  3. ios7中让程序使用统一的status bar风格
  4. 【数位DP】CF 54C,509C,431D,628D,855E,1245F,95D
  5. scss、sass 和 css 的区别
  6. webpack文件夹打包_webpack多入口文件页面打包详解
  7. wxPython + PyOpenGL 打造三维数据分析的利器!| CSDN 博文精选
  8. SQL Server 动态行转列(参数化表名、分组列、行转列字段、字段值)
  9. flash自适应屏幕 html,让Flash自适应浏览器屏幕大小的几种方法
  10. 遥感影像处理——遥感影像处理全流程
  11. 乖离性暗机器人_乖离性百万亚瑟王超弩级暗机器人复刻攻略分享
  12. 用聚宽量化炒股-5获取数据函数-8)获取概念成分股代码函数get_concept_stocks、查询股票所属概念板块函数get_concept()
  13. (pyqt5 qml qt quick) QAbstractTableModel.columnCount() is abstract and must be overridden
  14. 遇到视频聊天软件 v2.2.35
  15. Python无法打开excel文档解决办法
  16. 261. Graph Valid Tree
  17. 课设复习之信息论自适应算术编码与译码
  18. 如何系统化学Python?
  19. NS-3学习笔记(4)水声模块aqua-sim-ng模型及helper类内容解析
  20. 著名基金经理彼得林奇的选股原则

热门文章

  1. php实现cookie自动登录,PHP使用Cookie实现自动登陆
  2. 二分过滤文件代码分享
  3. 悟空,愿你永不怕天高地厚
  4. 获得好资料都的渠道,老铁告别坑人的百度吧
  5. C语言的二维数组初始化的几种方式介绍(私藏大数组初始化方式)
  6. PYTHON实现批量下载淘宝详情页图片
  7. 麦克斯韦方程组微分形式
  8. python的类作用_从封装看类的作用
  9. b500k电位器引脚接法_收录机旋转电位器b500k,可调式电位器25k
  10. 贪吃蛇c语言程序复杂,刚学C语言,想写一个贪吃蛇的代码