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

九江网站建设排行榜网站建设公司信息

九江网站建设排行榜,网站建设公司信息,推广小程序的营销策略,免费网站制作app目录 基础操作 准备#xff1a; 删除#xff1a; 新增#xff1a; 更新#xff1a; 查询#xff1a; 条件查询#xff1a; XML映射文件 动态SQL if foreach sqlinclude 基础操作 准备#xff1a; 准备数据库表 创建一个新的springboot工程#xff0…目录 基础操作 准备 删除 新增 更新 查询 条件查询 XML映射文件 动态SQL if foreach sqlinclude 基础操作 准备 准备数据库表 创建一个新的springboot工程选择引入对应的起步依赖mybatis、mysql驱动、lombok application.properties中引入数据库连接信息 创建对应的实体类实体类属性采用驼峰命名 准备Mapper接口 删除 Delete(delete from teachnewstudent where id#{id})public void delete(Long id); 特别指出占位符 #{id} 删除是由返回值的数据的返回值改为int即可删除数据 注意事项如果mapper接口方法形参只有一个普通类型的参数#{...}里面的属性名可以随便写如#{id}、#{value}。 日志输出 可以在application.properties中打开mybatis的日志并指定输出到控制台。 #指定mybatis输出日志的位置输出控制台mybatis.configuration.log-implorg.apache.ibatis.logging.stdout.StdOutImpl 预编译SQL 优势性能更高 更安全防止SQL注入 SQL注入 SQL注入是通过操作输入的数据来修改事先定义好的SQL语句以达到执行代码对服务器进行攻击的方法。 使用#{}即为预编译 新增 Insert(insert into user(name,intro,state) values(#{name},#{intro},#{state})public void insert(User user); 如果有多个参数可使用实体类来封装多个参数 主键返回 描述在数据添加成功后需要获取插入数据库的主键。如添加套餐数据时还需要维护套餐菜品关系表数据。 实现加上注解Options框架会自动将生成的主键值赋值给user对象的id属性 Options(keyPropertyid, useGeneratedKeys true)Insert(insert into user(name,intro,state)values(#{name},#{intro},#{state})public void insert(User user); 更新 一般是根据主键来修改因为主键是不改变的 Update(update user set name#{name},intro#{intro},state#{state} where id#{id})public void update(User user);查询 根据id查询 Select(select * from user where id#{id})public User getById(Long id); 数据封装 实体类属性名 和 数据库表查询返回的字段名一致mybatis会自动封装。 如果实体类属性名 和 数据库表查询返回的字段名不一致不能自动封装。 解决方案 方案一给字段起别名让别名与实体类属性一致 Select(select id,name,create_time createTime,update_time updateTime from user where id#{id})public User getById(Long id); 方案二通过ResultsResult 注解手动映射封装 Results({Result(column,property)})Select(select * from user where id#{id})public User getById(Long id); column为需要封装的字段property为封装到的属性 方案三开启mybatis的驼峰命名自动映射开关 即a_ column------aColumn 在application.properties配置mybatis.configuration.map-underscore-to-camel-casetrue 需要严格遵守数据库名为下划线类型名为驼峰命名 条件查询 Select(select * from user where name like %${name}% and state#{state})public ListUser list1(String name,Short state);因为#{}是预编译符不能出现在之内所以需要用$符号来代替所以存在问题性能低、不安全、存在SQL注入问题 解决方法concat  字符串拼接函数 Select(select * from user where name like concat(%,#{name},%) and state#{state})public ListUser list1(String name,Short state);在springboot的2.x版本参数名与注解中引用部分相同否则需要单独加入注解 XML映射文件 规范 XML映射文件的名称与Mapper接口名称一致并且将XML映射文件和Mapper接口放置在相同包下同包同名。 XML映射文件的namespace属性为Mapper接口全限定名一致。 XML映射文件中sql语句的id与Mapper接口中的方法名一致并保持返回类型一致。 目录使用/来分隔 约束 官方文档入门_MyBatis中文网 ?xml version1.0 encodingUTF-8 ? !DOCTYPE mapperPUBLIC -//mybatis.org//DTD Mapper 3.0//ENhttp://mybatis.org/dtd/mybatis-3-mapper.dtdmapper namespacecom.example.demo.mapper.UserMapper/mapper namespace的属性值和接口全类名保持一致 mapper namespacecom.example.demo.mapper.UserMapperselect idlist resultTypecom.example.pojo.Userselect * from user where name like%${name}% and state#{state}/select /mapper 插件MyBatisX提高MyBatis效率能够快速定位 动态SQL 动态SQL 随着用户的输入或外部条件的变化而变化的SQL语句我们称之为 动态SQL if if用于判断条件是否成立。使用test属性进行条件判断如果条件为true则拼接SQL。 mapper namespacecom.example.mapper.Usermapperselect idlist resultTypecom.example.pojo.Userselect * from userwhereif testname ! nullname like%${name}%/ifif teststate! nulland state#{state}/if/where/select /mapper where标签会自动去除多余的and关键字而且会判断条件成不成立当条件不成立时不会生成where关键字 而且会自动去除子句开头的AND或者OR 需求动态更新员工信息如果更新时传递有值则更新如果更新时没有传递值则不更新。 在 if 中添加 test属性即可 set标签替换set关键字能够去除掉多余的逗号 foreach 进行循环遍历的标签通常用在批量删除中 属性 collection遍历的集合与参数名保持一致 item遍历出来的元素 separator分隔符 open遍历开始前拼接的SQL片段 close遍历结束后拼接的SQL片段 delete iddeleteByIdsdelete from user where id inforeach collectionids itemid separetor, open( close)#{id}/foreach /delete sqlinclude sql负责抽取一个片段而include引用一个片段进行复用 sql idcommonSelectselect id,name /sqlinclude 的 refid属性负责指定你要引用哪个片段值该值为select的id值 查询一个表的全部字段时不建议使用select*而是要罗列所有字段select*性能较低 include refidcommonSelect/
http://www.dnsts.com.cn/news/30453.html

相关文章:

  • 门户网站模板html5济南模版网站
  • 手机怎么制作网站网址个人网站设计 优帮云
  • 建网站的优势如何在百度上发表文章
  • 网站 预算站群 网站如何做
  • aardio 网站开发做五金有哪些网站推广
  • 宁波建网站可按需定制乌班图系统做网站
  • 深圳网站建设服务哪家专业自己怎么建个网站赚钱
  • 网站怎样排版网站建设项目详情
  • 网站角色管理系统织梦网站模板视频教程
  • 4s店网站建设方案中国建筑装饰网公众号
  • 汽车网站的建设方向买域名是什么意思
  • 建设电子商务网站流程做建材网站
  • 山东高端网站定制网站建设询价报告
  • 临沂品牌网站建设公司温州企业自助建站系统
  • 大型公司为什么做网站网站后台页面是什么
  • wix做的网站能扒下来北京网页设计制作网站
  • 如何免费建立自己的网站wordpress改网址导航
  • 旅游网站模板大全遵义网站建设制作公司
  • 教学资源库 网站建设做五金标准件网站
  • 小说网站怎么做词淘客网站做的好的
  • 校园文化网站建设赣州章贡区天气预报15天
  • 平面排版网站做动漫网站如何应用数据绑定
  • 做的网站如何被百度搜到查房价的官方网站
  • 公众号链接的手机网站怎么做实例 久久建筑网
  • 广西建设工程信息网seo内链优化
  • 仪征建设银行官方网站淘宝内部优惠券网站怎样做的
  • 网站开发会什么软件湛江网站制作推广
  • 网站负责人 备案深圳网站优化推广
  • 稿定设计网站官网入口制作做网站的基本流程
  • 网站建设怎么添加视频十堰哪里有做网站的