博客
关于我
MyBatis(二)——MyBatis入门实例
阅读量:334 次
发布时间:2019-03-04

本文共 4080 字,大约阅读时间需要 13 分钟。

文章目录

一、创建student表(id,name,email,age)

在这里插入图片描述

二、新建maven项目、修改pom.xml文件

1、设置编码方式

2、加入依赖 mybatis依赖, mysql驱动, junit单元测试

3、加入资源插件

UTF-8
1.8
1.8
org.mybatis
mybatis
3.5.6
mysql
mysql-connector-java
5.1.27
junit
junit
4.13.2
test
src/main/java
**/*.properties
**/*.xml
false

如果不配置资源插件,后面xml文件是找不到的:

在这里插入图片描述

3、创建实体类Student。定义属性, 属性名和列名保持一致

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

4、创建Dao接口, 定义操作数据库的方法

public interface StudentDao {       Student selectStudentById(Integer id);}

5、创建xml文件(mapper文件), 写sql语句

mybatis官方文档:

6、创建mybatis的主配置文件(xml文件):仅有一个, 放在resources目录下

1.定义创建连接实例的数据源(DataSource)对象

2.指定其他mapper文件的位置

7、创建测试的内容

public class MyTest {       @Test    public void testSelectById() throws IOException {           //调用mybatis某个对象的方法,执行mapper文件中的sql语句        //mybatis核心类: SqlSessionFactory        //1.定义mybatis主配置文件的位置, 从类路径开始的相对路径        String config="mybatis.xml";        //2.读取主配置文件。使用mybatis框架中的Resources类        InputStream inputStream = Resources.getResourceAsStream(config);        //3.创建SqlSessionFactory对象, 使用SqlSessionFactoryBuidler类        SqlSessionFactory factory = new SqlSessionFactoryBuilder().build(inputStream);        //4.获取SqlSession对象。        SqlSession session = factory.openSession();        //5.指定要执行的sql语句的 id        //  sql的id = namespace+"."+ select|update|insert|delete标签的id属性值        String sqlId = "com.macay.dao.StudentDao"+"."+"selectStudentById";        // 6.通过SqlSession的方法,执行sql语句        Student student = session.selectOne(sqlId);        System.out.println("使用mybatis查询一个学生:"+student);        // 7.关闭SqlSession对象        session.close();    }}

结果如下:

在这里插入图片描述

8、MyBatis的一些重要对象

(1)、 Resources : mybatis框架中的对象, 一个作用读取 主配置信息。

InputStream inputStream = Resources.getResourceAsStream("mybatis.xml");

(2)、SqlSessionFactoryBuilder:负责创建SqlSessionFactory对象

SqlSessionFactory factory = new SqlSessionFactoryBuilder().build(inputStream);

(3)、SqlSessionFactory: 重要对象

SqlSessionFactory是重量级对象:创建此对象需要使用更多的资源和时间。 在项目中有一个就可以了。

DefaultSqlSessionFactory实现类

public class DefaultSqlSessionFactory implements SqlSessionFactory {    }

SqlSessionFactory接口:作用是SqlSession的工厂, 就是创建SqlSession对象。

SqlSessionFactory接口中的方法

openSession(): 获取一个默认的SqlSession对象, 默认是需要手工提交事务的。

openSession(boolean): boolean参数表示是否自动提交事务。
​ true: 创建一个自动提交事务的SqlSession
​ false: 等同于没有参数的openSession

(4)、SqlSession对象

SqlSession对象是通过SqlSessionFactory获取的。 SqlSession本身是接口

DefaultSqlSession: 实现类

public class DefaultSqlSession implements SqlSession {    }

SqlSession作用是提供了大量的执行sql语句的方法:

selectOne:执行sql语句,最多得到一行记录,多余1行是错误。

selectList:执行sql语句,返回多行数据
selectMap:执行sql语句的,得到一个Map结果
insert:执行insert语句
update:执行update语句
delete:执行delete语句
commit:提交事务
rollback:回顾事务

注意SqlSession对象不是线程安全的, 使用的步骤:

①:在方法的内部,执行sql语句之前,先获取SqlSession对象

②:调用SqlSession的方法,执行sql语句

③:关闭SqlSession对象,执行SqlSession.close()

转载地址:http://wjbe.baihongyu.com/

你可能感兴趣的文章
875 爱吃香蕉的珂珂(二分查找)
查看>>
Dijkstra算法的总结
查看>>
Vue实现选项卡功能
查看>>
vue中接收后台的图片验证码并显示
查看>>
趣谈win10常用快捷键
查看>>
王爽 《汇编语言》 读书笔记 三 寄存器(内存访问)
查看>>
IDEA出现问题:Received fatal alert: protocol_version 解决方案
查看>>
Airtest自动化测试 Docs airtest.core.android package
查看>>
JDK 内置的多线程协作工具类的使用场景
查看>>
Java 中哪些对象可以获取类对象
查看>>
11.2.6 时间值的小数秒
查看>>
Redis源码分析(七)--- zipmap压缩图
查看>>
自定义Hive Sql Job分析工具
查看>>
【MySQL】(九)触发器
查看>>
Oracle 11G环境配置
查看>>
【Python】(十二)IO 文件处理
查看>>
【Oozie】(三)Oozie 使用实战教学,带你快速上手!
查看>>
师兄面试遇到这条 SQL 数据分析题,差点含泪而归!
查看>>
C语言的数值溢出问题(上)
查看>>
函数指针的典型应用-计算函数的定积分(矩形法思想)
查看>>