mybatis笔记

Mybatis笔记

写的很粗略,将就着看看
Mybatis是持久层的框架 内部封装了jdbc 使开发者只需要关注sql语句
使用OMR思想实现了结果集的封装 Object Relational Mappging 对象关系映射
把数据库表和实体类及实体类的属性对应起来

环境搭建
1.创建maven工程并导入坐标
2.创建实体类和dao的接口
3.创建Mybatis的主配置文件
在resources中创建SqlMapConfig.xml
4.创建映射文件
在resources中创建对应的映射文件(IUserDao.xml) 注意resulttype记得绑定
并在SqlMapConfig中绑定

5.在test创建MybatisTest注意文件位置要相同
1.读取配置文件
InputStream in= Resources.getResourceAsStream(“SqlMapConfig.xml”);
2.创建SqlSessionFactory工厂
SqlSessionFactoryBuilder builder=new SqlSessionFactoryBuilder();

3.使用工厂生产SqlSession对象
SqlSessionFactory fac tory=builder.build(in);
SqlSession session=factory.openSession();
4.使用SqlSession创建Dao接口的代理对象
List<User> users=userDao.findAll();
5.使用代理对象执行方法
  for(User user:users){
        System.out.println(user);
    }
6.释放资源
session.close();
    in.close();

注意mybatis中的映射配置文件位置必须和dao接口的包结构相同
映射文件的mapper标签中的namespace 必须是Dao接口类名
select标签中的if必须是对应的具体的方法名

SqlMapConfig.xml中的约束是

<?xml version="1.0" encoding="UTF-8"?>

mapper.xml的约束

<?xml version="1.0" encoding="UTF-8" ?>

Serializable是一个对象序列化的接口
一个类只有实现了Serializable接口才能被序列化
序列化:九十八对象状态转换成可保持或传输的格式的过程 与序列化相对的是反序列化 将流转换成对象
实质上是一个标识接口
实现了Serializable接口的类可以被ObjectOutputStream转换为字节流,同时也可以通过ObjectInputStream再将其解析为对象s

有两种实现方式
1.使用注解
1.创建表的对应类
2.创建用户接口
3.导入依赖
4.配置pom.xml文件
5.在resourse里写配置环境 并指定注解对应的用户接口
2.配置xml文件
1.创建表的对应类
2.创建用户接口
3.导入依赖
4.配置pom.xml文件
5.在resourse里写配置环境 并指定映射文件的位置
6.在resourse里写映射文件

配置环境

    <environment id="mysql">
        <!--配置事务类型-->
        <transactionManager type="JDBC"></transactionManager>
        <!--配置数据源(连接池)-->
        <dataSource type="POOLED">
            <!--配置连接数据库的四个基本信息-->
            <property name="driver" value="com.mysql.jdbc.Driver"/>
            <property name="url" value="jdbc:mysql//localhost:"/>
            <property name="username" value="root"/>
            <property name="password" value="root"/>
        </dataSource>
    </environment>

指定映射文件位置



指定注解



SqlSessionFactory
单个数据库映射关系经过编译后的内存镜像
SqlSessionFactory对象的实例可以通过SqlSessionFactoryBuilder对象类获得
SqlSessionFactory中只有一种方法openSession 用来创建SqlSession

SqlSession底层封装了jdbc连接 可以用sqlsession

也就是为了创建sqlsession 就要创建sqlsessionfactory 为了创建sqlsessionfactory就要创建sqlsessionfactorybuilder
也就是先创建SQLsessionfactorybuilder 然后创建工厂sqlsessionfactory 在创建工厂的时候导入配置文件 直到建造什么厂
最后工厂生产sqlsession 因为sqlsession底层封装了jdbc操作 所有可以直接使用

一级缓存
SqlSession对象的缓存
执行查询之后,查询的结果会存入到SQlsession提供的一块区域
该区域的结构是MAP 当我们查询同样的数据 会先去一级缓存中查找

注解一共只有四个
@Select @Insert @Update @Delect

可以用@Result这个注解来解决类和数据库表不对应的问题

配置文件方式

把环境的搭建写在SqlMapConfig中 这是总的配置 并且要在里面写明 哪些map.xml文件可以使用

就是每一个dao接口都对应一个map.xml文件 sql语句写在xml文件中

使用的时候

生成工厂的建造者 创建工厂 工厂创建Sqlsession对象 Sqlsession创造代理对象

采用注解

编写dao 和domain 配置SqlMapConfig.xml就可以 sql写在dao中

如果bean类和数据库没有一一对应 可以使用result注解

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值