mybatis

每个基于mybatis的应用都是以一个sqlsessionfactory的实例为核心。sqlsessionfactory的实例可以通过sqlsessionfactorybuilder获得或者一个预先定制的configuration的实例构建出sqlsessionfactory的实例

sqlsessionfactorybuilder :一旦创建了sqlSessionFactory就不再需要他了

sqlSessionFactory:一旦被创建就应该在应用运行期间一直存在,在应用运行其次不要重复创建多次。因此最佳作用域是应用作用域,最简单的就是使用单例模式或者静态单例模式

sqlsession:不是线程安全的,因此不能被共享,所以最佳的作用域是请求或方法作用域。绝对不能讲sqlsession的实力引用放在一个类的静态域。每次收到http请求,就可以打开一个sqlsession,返回响应就关闭

sqlsession完全包含了面向数据库执行sql命令所需的所有方法 

 

resultMap 返回集合

resultType 返回类型 resultType = "com.xxx.xxx.xxx "

 

 

mapper.xml系统是默认从resource中读取的,不用配置。如果文件不是放在resource中就要配置

maven由于约定大于配置,所以可能会产生无法导出或者生效的问题,解决方案

<resources>
    <resource>
        <directory>src/main/resources</directory>
        <includes>
            <include>**/*.properties</include>
        </includes>
        <filtering>true</filtering>
    </resource>
</resources>

 

crud

namespace:对应mapper接口

id:对应namespace中的方法名

resultType:sql语句的返回值

parameterType:传参类型  

#{}:参数的值

 

配置文件:

事务管理器有2种 JDBC、Managed

 

别名typeAliases:

<typeAliases type="com.xxx.xxx.User" alias="User"/>

扫描包可以使用注解@Alias()

常见的Java类型内建的相应的类型别名,是不区分大小写的

 

resultMap:

对于简单的语句不需要要配置显示的结果映射,对于复杂一点的语句只需要描述他们的关系就行了

 

分页:limit 

 

集合和关联 

一对多、多对一

javaType:用来指定实体类中属性的类型

ofType:用来指定映射到list或者集合中的pojo类型,泛型中的约束类型

 

一级缓存

1、默认开启,在一次sqlsession中有效,

2、增删改会刷新缓存

3、手动清理缓存sqlSession.clearCache();

 

二级缓存

1、开启全局二级缓存在setting中设置cacheEnable默认开启 ,mapper.xml 中添加<cache/>,查询语句上 useCache可关闭缓存

2、基于namespace级别的缓存,一个命名空间,对应一个二级缓存

3、所有数据都会先放在一级缓存中,在会话提交或关闭的时候提交到二级缓存中

 

 

整合spring

  1、bean.xml 配置dataSource

  2、sqlSessionFactory

  3、sqlSession

既传承SqlSessionDaoSupport,获取mapper

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值