mybatis

mybatis
mybatis 的概述
1、三层架构
表现层
用于展示数据
业务层
是处理业务需求
持久层
持久层问题
2、mybatis的概述
使开发者只需关注sql语句本身,无需关注驱动等繁琐操作,他使用了orm思想实现了结果集的封装。

ORM:对象关系映射
简单的来说:
就是把数据库表和实体类及实体类的属性对应起来然我们可以操作实体类就实现操作数据库表
3、mybatis的入门
mybatis的环境搭建
第一步:创建maven工程并导入坐标
第二步:创建实体类和dao的接口
第三步:创建mybatis的主配置文件

第四步:创建映射配置文件 <?xml version="1.0" encoding="UTF-8" ?> select * from user 注意事项: 一:创建Userdao.xml和Userdao.java时名称并不固定Userdao和UserMapper是一样的 二:在idea中创建目录的时候,它和包是不一样的 三:mybatis的映射文件必须和dao接口的包结构目录一样 四:映射文件的mapper标签namespace属性的取值必须是dao接口的全限定类名 五:映射配置文件的操作配置,id属性的取值必须是到接口的方法名 当我们遵从了三四五点后,我们在开发中就无需在写dao的实现类 mybatis的入门 public class MybatisTest { public static void main(String[] args)throws Exception{ //1、读取配置文件 InputStream ips= Resources.getResourceAsStream("SqlMapconfig.xml"); //2、创建sqlsessionFactory工厂 SqlSessionFactoryBuilder builder=new SqlSessionFactoryBuilder(); SqlSessionFactory factory=builder.build(ips); //3、使用工厂创建SqlSession对象 SqlSession session=factory.openSession(); //4、使用SqlSession创建dao接口的代理对象 Userdao userdao=session.getMapper(Userdao.class); //5、使用代理对象执行方法 List users=userdao.findAll(); for (User user:users){ System.out.println(user); } //6、释放资源 session.close(); ips.close(); }

}

1、mybatis中的连接池以及事务控制
1、连接池:
我们在实际开发中都会使用连接池,因为他可以减少我们获取连接所消耗的时间。
用于存储连接的容器,该容器一般是用集合表示的,该集合是线程安全的,而且必须实现队列的特性:先进先出
2、mybatis中的连接池
mybatis连接池提供了3种方式的配置
配置的文件
主配置文件SqlMapconfig.xml中的dataSource标签,type数据就是表示用什么样的连接池方式
type属性的取值
POOLED 采用传统的javax.sql.DataSource规范中的连接池,mybatis中有针对规范的实现
UNPOOLED采用传统的获取连接的方式,虽然也实现javax.sql.DataSource接口,但是并没有使用连接池
JNDI:采用服务器JNDI技术实现,来获取DATESource对象,不同的服务器所能拿到的对象是不同的
注意:如果不是web或者maven的war工程,是不能使用的
mybatis中的事务
什么是事务
事务的四大特性ACID
不考虑隔离性会产生的3个问题
解决办法:四中隔离级别
2、mybatis基于xml配置的动态sql语句使用:mapper配置文件中的几个标签

3、mybatis中的多表操作

©️2020 CSDN 皮肤主题: 数字20 设计师:CSDN官方博客 返回首页