配色: 字号:
4#mybatis
2018-01-07 | 阅:  转:  |  分享 
  
mybatis----持久层的框架1.mybatis的功能及结构dao层实现了dao层-----数据ORM映射—将对象数据与数据库表的关系
写到xml配置文件中缓存对于查询,有二级缓存sqlSessionFactorysqlSessionsqlSessionsqlSe
ssionsqlSession……AAmapper.xmlBBmapper.xmlCCmapper.xml……接口A一级缓存级二级
缓存级sqlSessionFactoryBuilder.builder(mybatis-config.xml)接口B接口C2.
配置文件结构mybatis-config.xmlEntityMapper.xmlSysUserDao接口mybatis-co
nfig.xmlProperties文件引入e="dbconfig.properties"/>Settings设置—缓存、日志、延迟加载等等ngname="cacheEnabled"value="true"/>开发环境配置:数据源ronmentsdefault="development">nsactionManagertype="JDBC"/>name="driver"value="${driver}"/>url}"/>name="password"value="${password}"/>>包含mapper文件到这个配置文件中per/EntityMapper.xml"/>1由mybatis-config.xml文件生成SqlSe
ssionFactory对象sqlSessionFactory=newSqlSessionFactoryBuilder().
build(Resources.getResourceAsStream("mybatis-config.xml"));2由Sql
SessionFactory对象开启会话SqlSessionsqlSession=sqlSessionFactory.op
enSession(false);3由会话来执行sql语句第一种方式---命名空间+id---原始的方式,不推荐Listp>list=session.selectList("com.project.sys.dao.S
ysUserDao.findUsers");//内部为命名空间+sqlid第二种方式---命名空间对应的接口.方法SysUse
rDaosysUserDao=sqlSession.getMapper(SysUserDao.class);Mapng,Object>mapObject=sysUserDao.findUserById(1);3.sql占位符#$-
-mybatis中,#{}将解析成?号,方法参数只有一个的时候可以不注解@param,有多个的时候必须注解@param--myb
atis中,${}将直接拼接进去,方法参数必须加注解#{1}#{0}#{param}若没有加注解---可用param,或数
组型的可用array应当使用${}的情况:orderby#{id}desc被解析为orderby‘id’d
esc不会报错,但结果也不会倒序正确使用倒序:orderby${id}desc3.1为了防sql注入---尽量使用#pho
nelike''%${phoneLike}%''改成phonelikeconcat(“%”,#{phoneLike},”%
”);4.缓存--对象序列化SqlSessionFactorycache-----二级缓存SqlSessionca
che-----一级缓存先去一级缓存找,找不到去二级缓存找,再找不到就去数据库中找缓存清理://sqlSession.clear
Cache();//清一级、二级缓存//sqlSession.close();//清一级缓存LRU--最近最少使用算法,淘
汰缓存中最近很少使用的数据序列化对象落地,存在内存,缓存中,对象需要实现序列化接口何为序列化和反序列化?序列化对象版本id有什么作用?对象序列化过程是否可以对内容进行加密如何对对象序列化进行细粒度控制??transient
献花(0)
+1
(本文系金银宝100首藏)