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

做排行的网站长春网架公司

做排行的网站,长春网架公司,python怎么读,wordpress 主题开发文章目录 常用MyBatis参数映射单个参数多个参数使用索引【不推荐】Param注解Map传参POJO【推荐】List数组 动态标签\if标签\trim标签\where标签\set标签\foreach标签 MyBatis查询一对一一对多 常用MyBatis参数映射 单个参数 XML中可… 文章目录 常用MyBatis参数映射单个参数多个参数使用索引【不推荐】Param注解Map传参POJO【推荐】List数组 动态标签\if标签\trim标签\where标签\set标签\foreach标签 MyBatis查询一对一一对多 常用MyBatis参数映射 单个参数 XML中可以通过 #{xxx}, #{param1} 来获取Mapper接口中的单个参数没有任何限制即使前后名字不一致的同时也没有Param注解别名也能传入给XML 但为了开发规范尽量使用和入参时一样使用Param注解约定好名称 // Mapper User selectUserById(Long id);// XML select idselectUserById parameterTypelong resultMapBaseResultMapSELECT * FROM user WHERE id #{123} /select多个参数 使用索引【不推荐】 // Mapper User selectUserByIdAndName(Long id, String username);// XML select idselectUserByIdAndName resultMapBaseResultMapSELECT * FROM user WHERE id #{param1} AND username #{param2} /selectParam注解 // Mapper User selectUserByIdAndName(Param(value id) Long id, Param(value username) String username);// XML select idselectUserByIdAndName resultMapBaseResultMapSELECT * FROM user WHERE id #{id} AND username #{username} /selectMap传参 Mybatis底层也是通过 Map 传参因此传入也可以一个 Map 作为参数。Map 中的 key 就对应 XML 中 #{key} 单Map参数 // Mapper User selectUserByIdAndNameMap(MapString, Object map);// XML select idselectUserByIdAndNameMap parameterTypemap resultMapBaseResultMapSELECT * FROM user WHERE id #{id} AND username #{username} /select简单类型map // Mapper User selectUserByIdAndNameMap(Param(value id) Long id, MapString, Object map);// XML select idselectUserByIdAndNameMap resultMapBaseResultMapSELECT * FROM user WHERE id #{id} AND username #{map.username} /select简单类型map // Mapper User selectUserByIdAndNameMap(Param(value id) Long id, Param(value map) MapString, Object map);// XML select idselectUserByIdAndNameMap resultMapBaseResultMapSELECT * FROM user WHERE id #{id} AND username #{map.username} /select测试 MapString, Object mapnew HashMap(); map.put(id, 1); map.put(username, Jack); // 单 map 参数 User user userMapper.selectUserByIdAndNameMap(map); // 简单参数map User user userMapper.selectUserByIdAndNameMap(2L, map);POJO【推荐】 多个参数可以使用实体类封装key就是属性名实体类需要有 getXXX()方法 不使用Param注解 // Mapper User selectUserByEntity(User user);// XML select idselectUserByEntity parameterTypeapp.domain.po.User resultMapBaseResultMapSELECT * FROM user WHERE id #{id} AND username #{username} /select使用Para注解 // Mapper User selectUserByEntity(Param(value user) User user);// XML select idselectUserByEntity parameterTypeapp.domain.po.User resultMapBaseResultMapSELECT * FROM user WHERE id #{user.id} AND username #{user.username} /select测试 User usernew User(); user.setId(1L); user.setUsername(Jack); User entity userMapper.selectUserByEntity(user);List // Mapper ListUser selectList(Param(value ids) ListLong ids);// XML select idselectList parameterTypelist resultMapBaseResultMapSELECT * FROM user WHERE id INforeach collectionids itemitem separator, open( close)#{item}/foreach /select测试 ListLong ids List.of(1L, 2L, 3L); ListUser userList userMapper.selectList(ids);数组 // Mapper ListUser selectArray(Param(value ids) Long[] ids);// XML select idselectArray parameterTypearraylist resultMapBaseResultMapSELECT * FROM user WHERE id INforeach collectionids itemitem separator, open( close)#{item}/foreach /select测试 Long[] idsArray ids.toArray(new Long[0]); userList userMapper.selectArray(idsArray);动态标签 if标签 if标签中的test是传入对象的属性 mapper int addUser(Param(value userInfo) UserInfo userInfo);xml insert idaddUser useGeneratedKeystrue parameterTypeapp.model.UserInfo keyColumnid keyPropertyidINSERT INTO userinfo(username,passwordif testuserInfo.photo ! null,photo/if)VALUES(#{userInfo.name},#{userInfo.password}if testuserInfo.photo ! null,#{userInfo.photo}/if) /inserttrim标签 prefix表示整个语句块以prefix的值作为前 缀suffix表示整个语句块以suffix的值作为后缀prefixOverrides表示整个语句块要去除掉的前 缀suffixOverrides表示整个语句块要去除掉的后缀 mapper int addUser(Param(value userInfo) UserInfo userInfo);xml insert idaddUser useGeneratedKeystrue parameterTypeapp.model.UserInfo keyColumnid keyPropertyidINSERT INTO userinfotrim prefix( suffix) suffixOverrides,username,password,if testuserInfo.photo ! nullphoto,/if/trimVALUEStrim prefix( suffix) suffixOverrides,#{userInfo.name},#{userInfo.password},if testuserInfo.photo ! null#{userInfo.photo}/if/trim /insertwhere标签 where标签会自动清除掉第一个if标签中第一个多余的 and字符串因此也可以用 trim prefixwhere preffixOverridesand/trim 替换掉where标签。但一般不这么用 ListUserInfo selectUserByCondition(Param(value userInfo) UserInfo userInfo);xml select idselectUserByCondition parameterTypeapp.model.UserInfo resultMapBaseMapSELECT *FROM userinfowhereif testuserInfo.name ! nulland username #{userInfo.name}/ifif testuserInfo.photo ! nulland photo #{userInfo.photo}/ifif testuserInfo.createTime ! nulland DATE_FORMAT(createtime, %Y-%m-%d %H:%i:%s) DATE_FORMAT(#{userInfo.createTime}, %Y-%m-%d %H:%i:%s)/ifif testuserInfo.updateTime ! nulland DATE_FORMAT(updatetime, %Y-%m-%d %H:%i:%s) DATE_FORMAT(#{userInfo.updateTime}, %Y-%m-%d %H:%i:%s)/ifif testuserInfo.state ! nulland state #{userInfo.state}/if/where /selectset标签 set标签会自动去除掉最后一个SQL的逗号“,”。同理也可以是用 trime prefixset suffixOverridex,/trim 替换掉set标签。但一般不这么做 mapper int updateUserByCondition(Param(userInfo) UserInfo userInfo);xml update idupdateUserByConditionUPDATE userinfosetif testuserInfo.name ! nullusername #{userInfo.name},/ifif testuserInfo.photo ! nullphoto #{userInfo.photo},/if/setwhereif testuserInfo.id ! nulland id #{userInfo.id}/ifif testuserInfo.createTime ! nulland DATE_FORMAT(createtime, %Y-%m-%d %H:%i:%s) DATE_FORMAT(#{userInfo.createTime}, %Y-%m-%d %H:%i:%s)/if/where /updateforeach标签 collection绑定方法参数中的集合的名称如 ListSetMap或数组对象「一般配合Param注解搭配名称使用」open语句块开头的字符串close语句块结束的字符串item遍历时的每一个对象separator每次遍历之间间隔的字符串 mapper int deleteUserByIds(Param(idList) ListInteger idList);xml delete iddeleteUserByIdsDELETEFROM userinfoWHERE id INforeach collectionidList open( close) itemid separator,#{id}/foreach /deleteMyBatis查询 一对一 数据库 CREATE TABLE orders (id int NOT NULL AUTO_INCREMENT,amount decimal(11,2) DEFAULT NULL,uid int NOT NULL,PRIMARY KEY (id,uid) USING BTREE )CREATE TABLE user (id int NOT NULL AUTO_INCREMENT,username varchar(256) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL,PRIMARY KEY (id) )一个用户有多个订单【这里只查询一个订单一对多中会查询多个订单】一个订单只从属于一个用户 SELECT o.id o_id,o.amount,o.uid o_uid,u.id u_id,u.username FROM orders oLEFT JOIN user u ON o.uid u.id;用户实体类 import lombok.Data;Data public class User {private Long id;private String username; }订单实体类 import lombok.Data;Data public class Order {private Long id;private Double amount;private Long uid;// 一对一: 当前订单从属于哪个用户private User user; }XML方案一通过构造新的实体类resultMap 完成数据封装返回 ?xml version1.0 encodingUTF-8 ? !DOCTYPE mapperPUBLIC -//mybatis.org//DTD Mapper 3.0//ENhttp://mybatis.org/dtd/mybatis-3-mapper.dtd mapper namespaceapp.mapper.OrderMapperresultMap idOrderResultMap typeapp.domain.po.Order!--id: 主键property: 实体类属性column: 查询出来的数据库字段--id propertyid columno_id/result propertyamount columnamount/result propertyuid columno_uid/!-- 一对一 --result propertyuser.id columnu_id/result propertyuser.username columnusername//resultMapselect idselectAllOrder resultMapOrderResultMapSELECT o.id o_id,o.amount,o.uid o_uid,u.id u_id,u.usernameFROM orders oLEFT JOIN user u ON o.uid u.id;/select /mapperXML方案二使用 resultMap 中的 association 完成封装 ?xml version1.0 encodingUTF-8 ? !DOCTYPE mapperPUBLIC -//mybatis.org//DTD Mapper 3.0//ENhttp://mybatis.org/dtd/mybatis-3-mapper.dtd mapper namespaceapp.mapper.OrderMapperresultMap idOrderResultMap typeapp.domain.po.Orderid propertyid columno_id/result propertyamount columnamount/result propertyuid columno_uid/!-- 一对一 --association propertyuserid propertyid columnu_id/result propertyusername columnusername//association/resultMapselect idselectAllOrder resultMapOrderResultMapSELECT o.id o_id,o.amount,o.uid o_uid,u.id u_id,u.usernameFROM orders oLEFT JOIN user u ON o.uid u.id;/select /mapperMapper接口 ListOrder selectAll();一对多 数据库 CREATE TABLE orders (id int NOT NULL AUTO_INCREMENT,amount decimal(11,2) DEFAULT NULL,uid int NOT NULL,PRIMARY KEY (id,uid) USING BTREE )CREATE TABLE user (id int NOT NULL AUTO_INCREMENT,username varchar(256) COLLATE utf8mb4_general_ci DEFAULT NULL,PRIMARY KEY (id) )一个用户有多个订单一个订单只从属于一个用户 SELECT u.id u_id,u.username,o.id o_id,o.amount,o.uid o_uid FROM user uLEFT JOIN orders o ON u.id o.uid;用户实体类 import lombok.Data;import java.util.List;Data public class User {private Long id;private String username;// 一对多: 当前用户有哪些订单private ListOrder orderList; }订单实体类 import lombok.Data;Data public class Order {private Long id;private Double amount;private Long uid;// 一对一: 当前订单从属于哪个用户private User user; }XML ?xml version1.0 encodingUTF-8 ? !DOCTYPE mapperPUBLIC -//mybatis.org//DTD Mapper 3.0//ENhttp://mybatis.org/dtd/mybatis-3-mapper.dtd mapper namespaceapp.mapper.UserMapperresultMap idUserResultMap typeapp.domain.po.Userid propertyid columnu_id/result propertyusername columnusername/!-- 一对多ofType: 指定集合中的数据类型--collection propertyorderList ofTypeapp.domain.po.Orderid propertyid columno_id/result propertyamount columnamount/result propertyuid columno_uid//collection/resultMapselect idselectAll resultMapUserResultMapSELECT u.id u_id,u.username,o.id o_id,o.amount,o.uid o_uidFROM user uLEFT JOIN orders o ON u.id o.uid/select /mapperMapper ListUser selectAll();
http://www.hkea.cn/news/14451855/

相关文章:

  • 莱芜招聘的网站鞍山网站建设优化
  • 团购网站怎么做网站建设cach目录
  • 网站定制业务个人店铺logo
  • 什么是高端网站建设企业文化心得体会总结
  • 自己怎么样做网站廊坊建站服务
  • 店铺网站平台建设方案焦作建设网站
  • 网站建设多少费用泰州seo推广
  • 网站建设与实现的要求与务设计制作小车二教学反思
  • 专门做美食的视频网站有哪些阿里云域名注册查询
  • 二手网站建设论文wordpress cui2.0
  • 网站建好后如何上线网络科技公司组织架构
  • 网站建设视频格式长春市建设集团股份有限公司
  • 免费做简单网站株洲市住房和城乡建设局网站
  • 温州建校网站wordpress twitter登陆
  • 网站首页分辨率做多大的榆次住房保障和城乡建设局网站
  • 网站广告条幅怎么做动态的外贸网站制作怎么选
  • 做购物网站是怎么连接银行南充房产交易网官网
  • 网站建设如何插音乐商务网站的推广
  • 网站外链内链怎么做中国三大搜索引擎
  • 重庆哪家做网站做旅游网站有前途吗
  • 北京网站建设 地址海淀phpcms校园网站
  • 无锡网站优化推广短视频询盘获客系统
  • 网站建设 案例展示哈尔滨快速建站公司推荐
  • 工程师培训网站关键词优化外包服务
  • 邢台企业网站制作建设互联网上网络营销的推广
  • 网站建设 dwwordpress与淘宝
  • 哪个网站做相册好宿州市网站建设有哪些公司
  • 贵阳论坛网站建设免费营销管理系统crm
  • 网站建设从初级到精通wordpress个人站主题
  • 公司网站空间华润集团网站建设商