初步接触Mybatis——笔记

mybatis
ORM框架-对象关系映射(hibernate)-JOPO(JOPO:Java简单对象)对象与数据表关系对应

1、导入jar
mybatis-3.2.3.jar
mysql-connector-java-5.1.18-bin.jar
2、xml设置
xml模式:



annotation模式:


3、创建entity
4、创建dao接口(增删改查方法描述)
5、创建mapper(sql语句)
(1)dao+注解
@Select(“select * from class1”)
public List select();

    (2)mapper.xml
                <mapper namespace="dao.Class1_dao">
                    <select id="select" resultType="entity.Class1">        //id  接口方法  resultType返回类型
                        select * from class1
                    </select>
                </mapper>

6、使用
InputStream is = Resources.getResourceAsStream(“ae.xml”);
SqlSessionFactory f = new SqlSessionFactoryBuilder().build(is);
SqlSession s = f.openSession();
List user = s.selectList(“select”);
s.close();
for(Class1 t: user)
System.out.println(t.getName());

7、参数/返回值
参数:基本类型 | 引用类型(getters方法)

delete from class1 where id=#{id}

parameterType=”utils.searchInfo” 引用类型 访问内部getters方法 获取字段值(String不行)
返回值(resultMap ,resultType)

    Map:
            1、复合对象映射(对象内有子对象)
            2、对应关系重建

            <resultMap id="唯一的标识" type="映射的pojo对象">
                <id column="表的主键字段,或者可以为查询语句中的别名字段" jdbcType="字段类型" property="映射pojo对象的主键属性" />
                <result column="表的一个字段(可以为任意表的一个字段)" jdbcType="字段类型" property="映射到pojo对象的一个属性(须为type定义的pojo对象中的一个属性)"/>
                <association property="pojo的一个对象属性" javaType="pojo关联的pojo对象">
                    <id column="关联pojo对象对应表的主键字段" jdbcType="字段类型" property="关联pojo对象的主席属性"/>
                    <result  column="任意表的字段" jdbcType="字段类型" property="关联pojo对象的属性"/>
                </association>






类型别名


对象状态:
1、临时状态 与数据库无关
2、持久化状态 处理自数据库 会话未关闭
3、游离状态 处理自数据库 会话已关闭
二级缓存: https://blog.csdn.net/y2017/article/details/73864018
一级缓存是在SqlSession 层面 ( 多次调用同一个Mapper和同一个方法的同一个参数,只会进行一次数据库查询)
List user = s.selectList(“select”,new searchInfo(” where name like ‘%1%’”));
List user1 = s.selectList(“select”,new searchInfo(” where name like ‘%1%’”));
二级缓存,是的缓存SqlSessionFactory层面给各个SqlSession 对象共享。默认二级缓存是不开启的,需要手动进行配置。
在mapper.xml 中 查询之前设定

各个属性意义如下:
* eviction:缓存回收策略
- LRU:最少使用原则,移除最长时间不使用的对象
- FIFO:先进先出原则,按照对象进入缓存顺序进行回收
- SOFT:软引用,移除基于垃圾回收器状态和软引用规则的对象
- WEAK:弱引用,更积极的移除移除基于垃圾回收器状态和弱引用规则的对象
* flushInterval:刷新时间间隔,单位为毫秒,这里配置的100毫秒。如果不配置,那么只有在进行数据库修改操作才会被动刷新缓存区
* size:引用额数目,代表缓存最多可以存储的对象个数
* readOnly:是否只读,如果为true,则所有相同的sql语句返回的是同一个对象(有助于提高性能,但并发操作同一条数据时,可能不安全),如果设置为false,则相同的sql,后面访问的是cache的clone副本。

本文部分内容来源于网络,还望勿怪!

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值