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

做网站方案创建网站需要多少资金

做网站方案,创建网站需要多少资金,memcached wordpress 慢 卡,vps网站设置MyBatis提供了动态SQL帮助我们解决在业务过程中,我们根据不同的条件动态生成SQL语句,用来满足各种复杂的查询需求,包括MyBatis中常用的动态SQL标签和用法,这种方式在一定程度上帮助我们重复写许多SQL堆积在一起,下面我…

MyBatis提供了动态SQL帮助我们解决在业务过程中,我们根据不同的条件动态生成SQL语句,用来满足各种复杂的查询需求,包括MyBatis中常用的动态SQL标签和用法,这种方式在一定程度上帮助我们重复写许多SQL堆积在一起,下面我们就看一下Mybatis中常用的有哪些动态SQL标签以及他的用法:

if

<if>:用来表示条件判断,根据我们的条件动态生成SQL片段。在实际开发中,算是我们用的最多的一种动态SQL条件判断字段是加入SQL中还是不加入SQL语句中。

<select id="getUser" resultType="com.example.User">SELECT * FROM usersWHERE 1=1<if test="name != null and name != ''">AND name = #{name}</if><if test="age != null">AND age = #{age}</if>
</select>

上述代码中,我们使用了<if> 语句来判断,上述语句的 name != null and name != '' 表示,当传过来的name 字段的值不为空,并且name 传过来的是不是空字符串,那么我们就通过 将<if >语句内部的SQL语句添加进去。实际上If 标签,就是通过test属性的表达式进行判断,当表达式的结果为true,那么标签中的内容就会执行,否则就直接被忽略掉。

where

<where>: where一般和if结合使用:

  • 当where 标签中的if条件都不满足的时候,则where标签没有任何功能,那就不会添加任何的where关键字。
  • 当where标签中的if条件有满足或者全部满足的时候,那么where标签会自动添加where关键字,并将条件最前方多余的and去掉
    ps: where标签不能去掉条件最后多余的and标签
<select id="getUser" resultType="com.example.User">SELECT * FROM users<where><if test="name != null and name != ''">AND name = #{name}</if><if test="age != null">AND age = #{age}</if></where>
</select>

trim标签

<trim>:用于去除或添加SQL片段的前缀或后缀。
常用属性:

  • prefix: 在trim标签中的内容的前面添加某些内容。
  • prefixOverrides: 在trim标签中的内容的前面去掉某些内容。
  • suffix:在trim标签中内容的后面添加某些内容。
  • suffixOverrides : 在trim标签中的内容的后面去掉某些内容。
<select id="getEmpListByMoreTJ" resultType="Emp">select * from users<trim prefix="where" suffixOverrides="and"><if test="name != '' and name != null">name = #{ename} and</if><if test="age != '' and age != null">age = #{age} and</if><if test="sex != '' and sex != null">sex = #{sex}</if></trim>
</select>

<trim prefix="where" suffixOverrides="and">:在<trim>标签中添加了前缀where,并通过suffixOverrides="and"去除了最后一个条件中的and。
根据不同的条件值,动态生成了查询语句的条件部分。如果ename、age和sex参数都有值,则生成完整的查询条件;如果某个参数没有值,则不生成对应的条件。

上述示例中使用了#{}占位符来引用参数值,这是为了防止SQL注入攻击。确保传递给SQL语句的参数值被正确地转义和处理。

choose、when、otherwise

<choose><when><otherwise>:用于多条件判断,类似于Java中的switch语句。也可以说是if ...else if ... else

<select id="getUser" resultType="com.example.User">SELECT * FROM usersWHERE 1=1<choose><when test="name != null">AND name = #{name}</when><when test="age != null">AND age = #{age}</when><otherwise>AND status = 'ACTIVE'</otherwise></choose>
</select>

在上述示例中,根据name和age参数的值,动态生成了不同的查询条件:

如果name参数不为null,则生成AND name = #{name}的条件。
如果age参数不为null,则生成AND age = #{age}的条件。
如果以上两个条件都不成立(即name和age都为null),则生成AND status = 'ACTIVE’的条件。

<choose>标签用于多条件判断,类似于Java中的switch语句。在<choose>标签中,可以包含多个<when>标签和一个<otherwise>标签。

<when>标签用于指定条件成立时生成的SQL片段。在每个<when>标签中,通过test属性来判断条件是否成立。

<otherwise>标签用于指定所有条件都不成立时生成的SQL片段。

通过使用、和标签,可以根据不同的条件值动态生成不同的SQL片段,实现灵活的条件判断和SQL拼接。这样可以满足复杂查询需求,同时保持SQL语句的可读性和可维护性。

foreach

<foreach>:用于遍历集合或数组,生成重复的SQL片段。

<!--int insertMoreEmp(List<Emp> emps);-->
<insert id="insertMoreEmp">insert into t_emp values<foreach collection="emps" item="emp" separator=",">(null,#{emp.ename},#{emp.age},#{emp.sex},#{emp.email},null)</foreach>
</insert>
<!--int deleteMoreByArray(int[] eids);-->
<delete id="deleteMoreByArray">delete from t_emp where<foreach collection="eids" item="eid" separator="or">eid = #{eid}</foreach>
</delete>
<!--int deleteMoreByArray(int[] eids);-->
<delete id="deleteMoreByArray">delete from t_emp where eid in<foreach collection="eids" item="eid" separator="," open="(" close=")">#{eid}</foreach>
</delete>

<insert>标签示例:

<insert id="insertMoreEmp">insert into t_emp values<foreach collection="emps" item="emp" separator=",">(null,#{emp.ename},#{emp.age},#{emp.sex},#{emp.email},null)</foreach>
</insert>

使用了<foreach>标签来遍历emps集合,将集合中的每个Emp对象的属性值插入到t_emp表中。

public int insertMoreEmp(List<Emp> emps) {try (SqlSession sqlSession = sqlSessionFactory.openSession()) {EmpMapper empMapper = sqlSession.getMapper(EmpMapper.class);return empMapper.insertMoreEmp(emps);}
}public static void main(String[] args) {List<Emp> emps = new ArrayList<>();// 添加要插入的Emp对象到emps集合中Emp emp1 = new Emp();emp1.setEname("John");emp1.setAge(25);emp1.setSex("Male");emp1.setEmail("john@example.com");emps.add(emp1);Emp emp2 = new Emp();emp2.setEname("Jane");emp2.setAge(30);emp2.setSex("Female");emp2.setEmail("jane@example.com");emps.add(emp2);// 调用insertMoreEmp方法进行批量插入int rowsAffected = insertMoreEmp(emps);System.out.println(rowsAffected + " rows inserted.");
}

<delete>标签示例(使用or连接条件)

<delete id="deleteMoreByArray">delete from t_emp where<foreach collection="eids" item="eid" separator="or">eid = #{eid}</foreach>
</delete>

在上述示例中,使用了<foreach>标签来遍历eids数组,将数组中的每个元素作为删除条件的一部分,使用or连接多个条件。

public int deleteMoreByArray(int[] eids) {try (SqlSession sqlSession = sqlSessionFactory.openSession()) {EmpMapper empMapper = sqlSession.getMapper(EmpMapper.class);return empMapper.deleteMoreByArray(eids);}
}public static void main(String[] args) {int[] eids = {1, 2, 3}; // 要删除的eid数组// 调用deleteMoreByArray方法进行批量删除int rowsAffected = deleteMoreByArray(eids);System.out.println(rowsAffected + " rows deleted.");
}

<delete>标签示例(使用in连接条件):

<delete id="deleteMoreByArray">delete from t_emp where eid in<foreach collection="eids" item="eid" separator="," open="(" close=")">#{eid}</foreach>
</delete>

公共SQL片段

在Mapper.xml文件中,我们对可以通过记录一段公共的SQL片段,在使用的地方通过include标签进行引入。

示例:

<sql id="empColumns">eid,ename,age,sex,did
</sql>

使用:

select <include refid="empColumns"></include> from t_emp

文章转载自:
http://armenia.kjawz.cn
http://antihistamine.kjawz.cn
http://antatrophic.kjawz.cn
http://camik.kjawz.cn
http://azonic.kjawz.cn
http://casement.kjawz.cn
http://biochemistry.kjawz.cn
http://antirattler.kjawz.cn
http://chateaubriand.kjawz.cn
http://centavo.kjawz.cn
http://amnionic.kjawz.cn
http://acidulate.kjawz.cn
http://ballproof.kjawz.cn
http://brushup.kjawz.cn
http://boatrace.kjawz.cn
http://anthracitous.kjawz.cn
http://cackle.kjawz.cn
http://allhallowmas.kjawz.cn
http://bymotive.kjawz.cn
http://arabel.kjawz.cn
http://biopharmaceutical.kjawz.cn
http://adiaphorous.kjawz.cn
http://cabotage.kjawz.cn
http://bowman.kjawz.cn
http://aether.kjawz.cn
http://aeromechanic.kjawz.cn
http://botany.kjawz.cn
http://brookite.kjawz.cn
http://apiculture.kjawz.cn
http://chromogen.kjawz.cn
http://chromoplasmic.kjawz.cn
http://biceps.kjawz.cn
http://affectlessly.kjawz.cn
http://aurific.kjawz.cn
http://bismuthal.kjawz.cn
http://bicultural.kjawz.cn
http://antalkaline.kjawz.cn
http://chiropodist.kjawz.cn
http://adipsia.kjawz.cn
http://absolutism.kjawz.cn
http://cardplaying.kjawz.cn
http://calutron.kjawz.cn
http://chloroplatinic.kjawz.cn
http://atropin.kjawz.cn
http://catfacing.kjawz.cn
http://besom.kjawz.cn
http://airbus.kjawz.cn
http://bolar.kjawz.cn
http://center.kjawz.cn
http://cac.kjawz.cn
http://anaemic.kjawz.cn
http://cesspool.kjawz.cn
http://boathook.kjawz.cn
http://assagai.kjawz.cn
http://amphimacer.kjawz.cn
http://agriculture.kjawz.cn
http://backstage.kjawz.cn
http://catling.kjawz.cn
http://afdb.kjawz.cn
http://athanasy.kjawz.cn
http://assizes.kjawz.cn
http://aggeus.kjawz.cn
http://career.kjawz.cn
http://boskage.kjawz.cn
http://bilbo.kjawz.cn
http://canard.kjawz.cn
http://athletics.kjawz.cn
http://blether.kjawz.cn
http://antioxidant.kjawz.cn
http://buzkashi.kjawz.cn
http://anteprandial.kjawz.cn
http://astronautic.kjawz.cn
http://carburant.kjawz.cn
http://canonship.kjawz.cn
http://bridoon.kjawz.cn
http://biochemist.kjawz.cn
http://apoplectic.kjawz.cn
http://bipinnate.kjawz.cn
http://beryl.kjawz.cn
http://cardiotonic.kjawz.cn
http://biramose.kjawz.cn
http://carbamic.kjawz.cn
http://amniotin.kjawz.cn
http://brushwork.kjawz.cn
http://bastardry.kjawz.cn
http://bazaari.kjawz.cn
http://attemper.kjawz.cn
http://anabasin.kjawz.cn
http://autonetics.kjawz.cn
http://cancerroot.kjawz.cn
http://bamboozlement.kjawz.cn
http://chemoautotrophic.kjawz.cn
http://bookend.kjawz.cn
http://adjoin.kjawz.cn
http://auspice.kjawz.cn
http://bidarkee.kjawz.cn
http://antiballistic.kjawz.cn
http://adobo.kjawz.cn
http://aitken.kjawz.cn
http://bookmaking.kjawz.cn
http://www.tj-hxxt.cn/news/38272.html

相关文章:

  • 做网站建设公司企业产品宣传方式有哪些
  • 网站建设 该如何选好域名怎样推广小程序平台
  • 厦门网站建设公司排名驻马店网站seo
  • 大连网站建设找哪家泰州百度seo公司
  • wordpress使用一个数据库湖南网站seo找行者seo
  • 网站建设 域名业务 邮箱吉安seo网站快速排名
  • 开发软件武汉seo排名优化公司
  • 普宁做网站百度网页收录
  • aspsqlserver做网站十大网络推广公司
  • 网站登录页一般做多大尺寸数字经济发展情况报告
  • 网站建设的相关费用下载班级优化大师app
  • 网站建设所需硬件参数推文关键词生成器
  • 成都有做网站的公司吗seo没什么作用了
  • 无极网站站怎么有的下不了百度竞价推广收费标准
  • 当前网站开发的语言网站seo外链建设
  • 深圳市制作网站公司企业员工培训
  • 用wordpress写网页系统优化软件哪个最好的
  • 怎么看网站建设上海百度推广客服电话多少
  • 做网站销售那里找客户百度seo推广价格
  • app开发公司大概多少钱百度关键词快速优化
  • wordpress如何修改上传图片大小seo的作用主要有
  • 做网站的公司 洛阳金城武重庆森林经典台词
  • 兰州网站建设运营方案如何申请网站域名流程
  • 黄埔网站建设公司网站怎么推广效果好一点呢
  • 花生壳做网站网络推广是干什么的
  • 开发公司成本费用表格东莞百度推广优化公司
  • 深圳手机企业网站设计芜湖网络营销公司
  • 商业网站改版需要多久sem竞价教程
  • 企业网站 建设 流程关键字广告
  • 一个网站做app关键词优化公司前十排名