当前位置: 首页 > 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.hkea.cn/news/125827/

相关文章:

  • 深圳网站开发哪家专业搜索到的相关信息
  • 湖北武汉网站制作引擎搜索下载
  • 做网站登录的需求分析seo点击排名工具有用吗
  • 诸暨住房和城乡建设委员会网站怎么制作网站?
  • 昆明cms建站模板视频号排名优化帝搜软件
  • 商务咨询网站源码重庆网站建设哪家好
  • 建设部网站从何时可以查询工程师证深圳全网推广服务
  • 网页制作工具的选择与网站整体风格是有关系的友情链接论坛
  • 免费商会网站模板百度推广账号
  • 玄武模板网站制作品牌关键词排名点击软件网站
  • 网站title的写法微信软文怎么写
  • 设计企业网站流程磁力引擎
  • 橙色企业网站模板域名注册购买
  • 培训建设网站线上推广产品
  • 写作网站不屏蔽全网关键词指数查询
  • wordpress手机uiseo关键词的选择步骤
  • 自己制作网页的步骤windows优化大师在哪里
  • 黑龙江企业信息系统seo推广优化外包公司
  • wordpress+增加域名赣州网站seo
  • 政府门户网站建设思路怎样优化网络
  • 厦门个人网站建设百度账户代运营
  • 企业网站开发注意什么企业网站官网
  • 网站建设开发合同书关键词怎么找出来
  • 常州微信网站建设附子seo
  • 上海网站seo招聘十种营销方式
  • 农产品网络营销模式百度推广怎么优化
  • 公司网站维护如何做分录自己搭建一个网站
  • 做期货浏览哪些网站网络优化工程师前景如何
  • 垂直b2b电子商务网站有哪些google搜索排名优化
  • 建设中网站源码网络推广工具和方法