当前位置: 首页 > news >正文

怎么给别人做网站网站野花香视频在线观看社区

怎么给别人做网站网站,野花香视频在线观看社区,慈溪市建设局网站表格下载,桐城市住房与建设网站目录 一、动态sql 1.set、if 2.foreach 二、转义符 三、缓存cache 1. 一级缓存 2. 二级缓存 一、动态sql 1.set、if 在update语句中使用set标签&#xff0c;动态更新set后的sql语句&#xff0c;&#xff0c;if作为判断条件。 <update id"updateStuent" pa…

目录

一、动态sql

1.set、if

2.foreach

二、转义符

三、缓存cache

1. 一级缓存

2. 二级缓存


一、动态sql

1.set、if

        在update语句中使用set标签,动态更新set后的sql语句,,if作为判断条件。

    <update id="updateStuent" parameterType="Student">update student<set><if test="num!=0">num=#{num},</if><if test="name!=null">name=#{name},</if><if test="gender!=0">gender=#{gender}</if></set>where id = #{id}</update>

2.foreach

foreach对集合进行遍历,尤其是in条件语句

    <delete id="deleteStudents" parameterType="list" >delete from student where id in<foreach collection="list" item="item" open="(" separator="," close=")">#{item}</foreach></delete>

collection 是传入参数名,item为元素名,separator代表元素之间的间隔符。  

详细动态sql可查看官网 :mybatis – MyBatis 3 | 动态 SQL

二、转义符

1.在 mybatis 中的 xml 文件,一些特殊符号需要转译:

特殊字符转译字符
<&lt;
"&quot;
&apos;
&&amp;
>&gt;

2.使用<![CDATA[]]> 

通过<![CDATA[ 特殊字符 ]]>包裹特殊字符也可以

    <!--转义字符   " <" 号会报错,">" 号不会报错  --><select id="findstuTurn" resultType="Student">select id,num,gender from student where num &lt; 1000</select><select id="findstuTurn2" resultType="Student">select id,num,gender from student where num <![CDATA[ < ]]> 1000</select>

注意:

  1.  " <" 号会报错,">" 号不会报错;
  2.  如果<![CDATA[ ]]> 里有<if> </if> <where> </where><choose> </choose> <trim> </trim> 等这些标签都不会被解析,所以只把有特殊字符的语句放在 <![CDATA[ ]]> 尽量缩小<![CDATA[ ]]>的范围。 

三、缓存cache

缓存作用:让程序更快的访问数据,减少对数据库的访问压力。

缓存原理:从数据库中查询出来的对象在使用完后不要销毁,而是存储在内存(缓存)中,当再次需要获取该对象时,直接从内存(缓存)中直接获取,不再向数据库执行select 语句,从而减少了对数据库的查询次数,因此提高了数据库的性能。

mybatis有两种缓存方式:

1. 一级缓存

     在同一个SqlSession中执行相同的sql且参数也相同(完全相同的sql查询),第二次查询时,直接从sqlSession中获取,而不再从数据库中获取。   在没有默认配置情况下,mybatis开启一级缓存。

例如:

     @Testvoid testCache(){SqlSession sqlSession = MybatisUtil.getSqlsession();StudentDao studentDao =  sqlSession.getMapper(StudentDao.class);List<Student> students = studentDao.findstuTurn();System.out.println(students);List<Student> student2= studentDao.findstuTurn();sqlSession.commit();sqlSession.close();}

日志中只显示一条查询 

 

一级缓存失效:

  1. sqlSession.close();
  2. sqlSession.clearCache();
  3. SqlSession 中执行了任何一个修改操作(update()、delete()、insert()) ,都会清空缓存的数据。

2. 二级缓存

二级缓存是 SqlSessionFactory 级别的,数据存放在SqlSessionFactory中。

需要手动启动:

1.在核心配置文件中开启二级缓存:

        <!--开启二级缓存--><setting name="cacheEnabled" value="true"/>

2.将 POJO 类实现序列化接口:

        implements Serializable

3.在mapper映射文件中添加cache标签,表示此mapper开启二级缓存:

    <cache flushInterval="100000" ></cache>

 flushInterval可以设置刷新时间(缓存失效)

当 SqlSeesion 关闭时,会将数据存入到二级缓存。

示例:

    @Testvoid testCache1(){SqlSession sqlSession = MybatisUtil.getSqlsession();StudentDao studentDao =  sqlSession.getMapper(StudentDao.class);List<Student> students = studentDao.findstuTurn();System.out.println(students);sqlSession.commit();//sqlSession关闭sqlSession.close();SqlSession sqlSession2 = MybatisUtil.getSqlsession();StudentDao studentDao2 =  sqlSession2.getMapper(StudentDao.class);List<Student> students2 = studentDao2.findstuTurn();System.out.println(students2);sqlSession2.commit();sqlSession2.close();}

结果只查询一次: 

http://www.yayakq.cn/news/533949/

相关文章:

  • 门户和网站的区别游戏类网站备案
  • 网站建设的要求和策划哈尔滨房管局官网查询
  • 网站导航设置企业官网是什么意思
  • 南京网站制作网页东莞seo优化收费
  • 宏润建设集团股份有限公司网站阳江网站关键字优化
  • 个人公司网站建设附近电脑培训班位置
  • 克拉玛依市住房和建设局网站济宁创企网络技术有限公司
  • 网站备案包括空间内容吗自己做网站需要收费吗
  • 杭州seo网站推广排名广告设计与制作学啥
  • 做画册的国外网站网站的可视化设计
  • 公司网站怎么申请wordpress wiki 整合
  • 外贸网站发外链企业做网站建设遇到的问题
  • saas 平台架构做网站网站视频插件
  • 绞铜机 东莞网站建设花都微网站建设
  • 17网一起做网店网站桂林广告公司网站建设
  • w3c标准网站vue做网站看不到htmI吗
  • 还有那个网站可以做兼职呢l网站建设
  • 购物网站er图有没有做网站一次付费
  • 1元购网站建设网页设计项目案例网站
  • wap网站seo下载网站app
  • 网站建设怎样把网页连接起来怎么帮自己做的网站申请地址
  • 温州网站建设设计校园资源共享网站建设
  • 电子商务网站建设开发一个高端的网站设计
  • 如何做一张旅游网站网站seo跟短视频
  • 玉田做网站建筑业管理平台登录
  • 有没有做彩票直播的网站泉州市网站制作企业
  • 有没有装修做团购的网站个人养老保险怎么交
  • 学做网站和推广要多久手机做印章网站
  • 江门网站推广技巧方法网站维护网站建设
  • dedecms能制作几个网站由()承担