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

深圳中小企业网站制作长沙优化网站方法

深圳中小企业网站制作,长沙优化网站方法,网站注册域名免费,民权平台网站建设目录 引言 if 标签 trim 标签 where 标签 set 标签 foreach 标签 引言 动态 sql 是 MyBatis 的强大特性之一允许你根据输入的参数动态地构建 sql 语句从而在运行时根据不同的条件生成不同的 sql 核心思想 基于提供的数据和条件#xff0c;能够修改、增加、删除 sql…目录 引言 if 标签  trim 标签  where 标签  set 标签  foreach 标签  引言 动态 sql 是 MyBatis 的强大特性之一允许你根据输入的参数动态地构建 sql 语句从而在运行时根据不同的条件生成不同的 sql 核心思想 基于提供的数据和条件能够修改、增加、删除 sql 语句的部分内容这为编写更通用、可重用的 sql 提供了极大的灵活性 以下我们介绍 5 个常用的动态 sql 标签 if 标签  实例理解 此处我们想要实现 根据 name 和 age 字段来筛选用户信息 功能 创建数据库 在数据库中创建一个如下图所示的 user 表并插入几条用户数据注意这里的 state 状态值为 1 表示该用户可正常登录值为 0 表示该用户异常无法登录 实现 UserMapper 接口 此处我们实现一个 selectUser 方法 import com.example.demo.entity.User; import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Param;import java.util.List;//添加 Mapper 注解 代表该接口会伴随这 项目的启动而注入到容器中 Mapper public interface UserMapper {// 根据 name 和 age 字段来筛选用户信息ListUser selectUser(Param(user_name) String name,Param(user_age) Integer age); } 实现 UserMapper XML 文件 在与接口相对应的 XML 文件中添加上与 selectUser 方法 相对应的 sql语句 ?xml version1.0 encodingUTF-8? !DOCTYPE mapper PUBLIC -//mybatis.org//DTD Mapper 3.0//EN http://mybatis.org/dtd/mybatis-3-mapper.dtd mapper namespacecom.example.demo.mapper.UserMapperselect idselectUser resultTypecom.example.demo.entity.Userselect * from userwhere 11if testuser_name ! nulland name #{user_name}/ifif testuser_age ! nulland age #{user_age}/if/select/mapper分析功能 与 select 语句 根据 name 和 age 字段筛选用户信息    存在四种情况 情况一 name 和 age 均不为空其所对应的 sql 语句为 select * from user where name #{user_name} and age #{user_age} 情况二 name 和 age 均为空其所对应的 sql 语句为 select * from user 情况三 name 为空 age 不为空其所对应的 sql 语句为 select * from user where age #{user_age} 情况四 name 不为空 age 为空其所对应的 sql 语句为 select * from user where name #{user_name} 分析 XML 中的 select 语句  加上 if 标签后该 sql 也将存在四种情况与上述分析的四种情况相对应 注意 理解此处加上的 绿框部分即 11如果删除绿框部分那么我们再观察下图 所以 XML 中的 select 语句必须加上绿框部分否则将会导致 sql 语法错误 创建 selectUser 的测试方法 我们随意选择上述四种情况的任意一种进行传参此处我们选择仅传参 age 20 Testvoid selectUser() {ListUser users userMapper.selectUser(null,20);users.stream().forEach(System.out::println);} 执行测试方法 测试方法成功执行 trim 标签  属性 prefix表示整个语句块以 prefix 的值作为前缀suffix表示整个语句块以 suffix 的值作为后缀prefixOverrides表示整个语句块所需要去除的多余前缀suffixOverrides表示整个语句块所需要去除的多余后缀 实例理解 下方的 select 查询语句为了保证 sql 语法的正确性还必须得添加上 11  select idselectUser resultTypecom.example.demo.entity.Userselect * from userwhere 11if testuser_name ! nulland name #{user_name}/ifif testuser_age ! nulland age #{user_age}/if/select 但是我们可以使用 trim 标签来改写上方的 select 语句使其可以不用添加上 11的同时保障 sql 语法的正确性 select * from usertrim prefixwhere suffixOverridesandif testuser_name ! nullname #{user_name} and/ifif testuser_age ! nullage #{user_age}/if/trim 分析该 sql 语句 此处经存在一种情况会 发生去除多余后缀 and  注意 当 trim 标签中生成了代码那么才会添加 trim 标签里的前缀和后缀如果 trim 标签中未生成代码则前缀和后缀都会省略 where 标签  实例理解 我们同样可以使用 wehre 标签来改写上述 根据 name 和 age 字段来筛选用户信息 的 sql 语句 select idselectUser resultTypecom.example.demo.entity.Userselect * from userwhereif testuser_name ! nullname #{user_name}/ifif testuser_age ! nulland age #{user_age}/if/where /select 注意 上述实例为 where 标签的正确写法不能写成下述 sql 语句 select idselectUser resultTypecom.example.demo.entity.Userselect * from userwhereif testuser_name ! nullname #{user_name} and/ifif testuser_age ! nullage #{user_age}/if/where /select 因为 where 标签会帮去除最前面的多余 and 关键字 而不会帮去除最后面的多余 and 关键字即 where 标签相当于 trim prefixwhere prefixOverrides and set 标签  实例理解 此处我们想实现一个 根据用户 id 修改用户各属性 功能 准备数据库 在数据库中准备好一个 user 表  实现 UserMapper 接口 此处我们实现一个 updateById 方法 import com.example.demo.entity.User; import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Param;import java.util.List;//添加 Mapper 注解 代表该接口会伴随这 项目的启动而注入到容器中 Mapper public interface UserMapper { // 根据 id 修改用户信息Integer updateById(User user);} 实现 UserMapper XML 文件 在与接口相对应的 XML 文件中添加上与 updateById 方法 相对应的 sql语句 ?xml version1.0 encodingUTF-8? !DOCTYPE mapper PUBLIC -//mybatis.org//DTD Mapper 3.0//EN http://mybatis.org/dtd/mybatis-3-mapper.dtd mapper namespacecom.example.demo.mapper.UserMapperupdate idupdateById parameterTypecom.example.demo.entity.Userupdate usersetif testname ! nullname #{name},/ifif testage ! 0age #{age},/ifif testpassword ! nullpassword #{password},/ifif teststate ! 0state #{state}/if/setwhere id #{id}/update/mapper创建 updateById 的测试方法 此处我们修改 用户 id 4 用户信息修改其姓名、年龄、密码不修改其状态 Test void updateById() {User user new User();user.setId(4);user.setName(haoran);user.setAge(20);user.setPassword(123123);int result userMapper.updateById(user);System.out.println(updateById 方法 (result 1 ? 修改成功 : 修改失败)); } 执行测试方法 测试方法成功执行 观察数据库中的 user 表 注意 set 标签相当于 trim prefixset suffixOverrides , foreach 标签  属性 collection绑定方法参数中的集合如 List、Set、Map 或数组对象item遍历时的每一个对象open语块开头的字符串close语块结束的字符串separator每次遍历之间间隔的字符串 实例理解 此处想实现一个 根据多个用户 Id 来批量封禁用户 功能  准备数据库 在数据库中准备好一个 user 表  实现 UserMapper 接口 此处我们实现一个 updateStateByIds 方法 import com.example.demo.entity.User; import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Param;import java.util.List;//添加 Mapper 注解 代表该接口会伴随这 项目的启动而注入到容器中 Mapper public interface UserMapper { // 根据多个 id 批量封禁用户Integer updateStateByIds(Param(user_ids) ListInteger ids); } 实现 UserMapper XML 文件 在与接口相对应的 XML 文件中添加上与 updateStateByIds 方法 相对应的 sql语句 ?xml version1.0 encodingUTF-8? !DOCTYPE mapper PUBLIC -//mybatis.org//DTD Mapper 3.0//EN http://mybatis.org/dtd/mybatis-3-mapper.dtd mapper namespacecom.example.demo.mapper.UserMapperupdate idupdateStateByIdsupdate user set state 0where id inforeach collectionuser_ids itemitem open( close) separator,#{item}/foreach/update/mapper创建 updateStateByIds 的测试方法 此处我们封禁 id 1、4、8、9  的用户 Test void updateStateByIds() {ListInteger ids new ArrayList();ids.add(1);ids.add(4);ids.add(8);ids.add(9);int result userMapper.updateStateByIds(ids);System.out.println(updateById 方法 (result 1 ? 修改成功 : 修改失败)); } 执行测试方法 测试方法成功执行 观察数据库中的 user 表
http://wiki.neutronadmin.com/news/108063/

相关文章:

  • 网站建设的资金问题淘宝客网站里面catid=16
  • 网站搜什么关键词好用什么做视频网站
  • 做网站猫腻大吗有哪些做的比较精美的网站
  • 深圳企业网站开发公司房地产项目网站
  • 在什么文件中加入什么代码告诉搜索引擎蜘蛛网站地图的文件位置?公司网站怎样制作
  • 企业网站制作套餐北京互联网上市公司有哪些
  • 做外贸网站哪家好外国人搞笑做视频网站
  • 聊城网站营销信息做网站的公司合肥
  • 网站需要流量深圳市建设管理中心网站首页
  • 呼和浩特住房和城乡建设部网站网页浏览器软件
  • 太仓营销型网站建设免费网站转app
  • jsp商业网站开发做网站建网站
  • 百度不做网站外链是什么原因wordpress背景图案轮流
  • 网站上有什么作用全国文明城市创建内容
  • 常用的网站开发平台api模板创作师
  • 网站301跳转效果网页设计模板代码网站
  • 免费建站工具有哪些平台怎么推广
  • 律师网站建设推荐做网络营销推广
  • 中国建设银行官方网站汇率广州高端品牌网站建设
  • 企业网站用什么套站三好街做网站的公司
  • 商务网站开发基本流程建设银行网站的机构
  • thinkphp企业网站开发公司怎么建网站做推广
  • 无锡工程建设监察支队网站买一个网站多少钱
  • 手机网站建设软件有哪些wordpress可视化编辑器不见
  • 国内网站排名电脑上如何进入wordpress
  • dw用设计视图做网站平台设计实景图
  • 器材管理网站开发东莞常平医院网站建设
  • 电子商务网站设计与开发案例教程网站做315认证
  • 网站 跑马灯图片怎么做网站推广工作总结
  • 工业园企业建设网站公司网站快照不更新了