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

网站建设 猴王网络有实力网络优化工程师前景如何

网站建设 猴王网络有实力,网络优化工程师前景如何,淘宝页面设计的网站,c2c平台的特点是什么1.简介什么是通用mapper什么是通用mapper#xff0c;用一句话概括就是#xff0c;它就是一个辅助mybatis开发的组件#xff0c;它不是替代mybatis#xff0c;而是使mybatis更方便的开发。通用mapper提供极其方便的单表的增删改查#xff0c;可以按照自己的需要使用通用方法…1.简介什么是通用mapper什么是通用mapper用一句话概括就是它就是一个辅助mybatis开发的组件它不是替代mybatis而是使mybatis更方便的开发。通用mapper提供极其方便的单表的增删改查可以按照自己的需要使用通用方法还能很方便开发自己的通用方法。为什么使用通用apper原生Mybatis痛点mapper.xml文件里有大量的sql当数据库表字段变动配置文件就要修改需要自己实现sql分页select * from table where . . . limit 1,3。自己手写分页除了传参page、pageSize还需要返回条目总数count。数据库可移植性差如果项目更换数据库比如oracle--mysqlmapper.xml中的sql要重新写因为Oracle的PLSQL 和mysql 支持的函数是不同的。生成的代码量过大。批量操作批量插入批量更新需要自写。2.SpringBoot项目中整合通用Mapper引入jar包!-- 引入通用mapper--dependencygroupIdtk.mybatis/groupIdartifactIdmapper-spring-boot-starter/artifactIdversion2.1.5/version/dependency启动类上加上MapperScan扫描注解SpringBootApplication MapperScan(com.sangon.springdemo.mapper) EnableScheduling public class TimedTaskApplication {public static void main(String[] args) {SpringApplication.run(TimedTaskApplication.class, args);} }注意导入的包是tk.......实体类Data Table(name student) public class Student {Idprivate String id;private String name;private Integer age; }Table注解注解中的name属性绑定的是数据库中对应的表名称Id注解在字段上加上此注解说明此字段为主键编写mapperpublic interface StudentMapper extends MapperStudent { }新建接口StudentMapper继承MapperT,泛型中就是Student实体类。3.通用mapper的增删改查查询controller层RequestMapping(value /getStudent, method RequestMethod.GET)public Student getStudentById(RequestParam String id){return timedTaskService.getStudentById(id);}service层/*** description: 根据主键id查询数据(使用通用mapper)** param id* return com.sangon.springdemo.entity.Student*/public Student getStudentById(String id);implAutowiredprivate StudentMapper studentMapper;Overridepublic Student getStudentById(String id) {Student student studentMapper.selectByPrimaryKey(id);return student;}studentMapper.selectByPrimaryKey(id)根据主键id查询Student信息新增controller层RequestMapping(value /insertStudent, method RequestMethod.POST)public void insertStudent(RequestParam String name, RequestParam Integer age){timedTaskService.insertStudent(name, age);}service层/*** description: 插入学生信息** param name* param age* return void*/public void insertStudent(String name, Integer age);implAutowiredprivate StudentMapper studentMapper; Overridepublic void insertStudent(String name, Integer age) {Student student new Student();student.setId(UUIDUtils.getUuid());student.setName(name);student.setAge(age);studentMapper.insert(student);//studentMapper.insertSelective(student);}studentMapper.insert(student); 使用insert方法将学生信息插入数据insert(): 插入insertSelective(): 选择性插入两个方法的区别使用插入时当字段值为空就将值为null插入数据这个字段还是会参与插入age字段为空插入时的sql语句中该字段还是会参与使用选择性插入时字段是不会参与插入的age字段为空插入时的sql语句中该字段是不会参与的修改controller层 RequestMapping(value /updateStudent, method RequestMethod.PUT)public void updateStudent(RequestBody Student student){timedTaskService.updateStudent(student);}service层/*** description: 修改学生信息** param student* return void*/public void updateStudent(Student student);impl: Autowiredprivate StudentMapper studentMapper;Overridepublic void updateStudent(Student student) {studentMapper.updateByPrimaryKey(student);//studentMapper.updateByPrimaryKeySelective(student);}非选择性修改updateByPrimaryKey(student); 如果student的值为null表中的数据也会被修改为null。选择性修改updateByPrimaryKeySelective(student); 如果student的值为null表中的数据不会被修改为null保持不变。删除controller层RequestMapping(value /deleteStudent, method RequestMethod.DELETE)public void deleteStudent(RequestParam String id, RequestParam String name, RequestParam Integer age){timedTaskService.deleteStudent(id, name, age);}service层/*** description: 删除学生信息数据** param id* param name* param age* return void*/public void deleteStudent(String id, String name, Integer age);implOverridepublic void deleteStudent(String id, String name, Integer age) {//studentMapper.deleteByPrimaryKey(id);Student student new Student();student.setName(name);student.setAge(age);studentMapper.delete(student);}根据主键删除studentMapper.deleteByPrimaryKey(id);2.根据非主键删除studentMapper.delete(student);其中属性之间使用and连接比如上述例子中删除数据时必须同时满足name和age两个字段时这个数据才会被删掉。4.通用Mapper高阶使用example通用Mapper中的方法解析方法功能说明List select(T var1);根据实体中参数查询返回满足条件的集合数据T selectByPrimaryKey(Object var1);根据主键id查询返回该主键的数据List selectByExample(Object var1);按条件查询List selectAll();查询所有数据返回数据的集合List selectByExampleAndRowBounds(Object var1, RowBounds var2);根据Example类型参数条件和分页参数查询数据List selectByRowBounds(T var1, RowBounds var2);根据参数条件和分页参数查询数据int selectCount(T var1);根据筛选条件查询匹配的数据的条数int selectCountByExample(Object var1);根据Example筛选条件查询匹配的数据的条数T selectOne(T var1);根据筛选条件查询唯一的数据并返回T selectOneByExample(Object var1);根据Example筛选条件查询唯一的数据并返回int insert(T var1);插入数据int insertSelective(T var1);选择性插入数据int updateByPrimaryKey(T var1);根据主键修改数据int updateByPrimaryKeySelective(T var1);根据主键选择性修改数据int updateByExample(Param(record) T var1, Param(example) Object var2);根据Example参数修改数据int updateByExampleSelective(Param(record) T var1, Param(example) Object var2);根据Example参数选择性修改数据int delete(T var1);删除数据里面参数会使用and进行拼接int deleteByExample(Object var1);根据参数删除数据int deleteByPrimaryKey(Object var1);根据主键删除数据方法说明example.setOrderByClause(“字段名 ASC”);添加升序排列条件DESC为降序example.setDistinct(false)去除重复boolean型true为选择不重复的记录。criteria.andXxxIsNull添加字段xxx为null的条件criteria.andXxxIsNotNull添加字段xxx不为null的条件criteria.andXxxEqualTo(value)添加xxx字段等于value条件criteria.andXxxNotEqualTo(value)添加xxx字段不等于value条件criteria.andXxxGreaterThan(value)添加xxx字段大于value条件criteria.andXxxGreaterThanOrEqualTo(value)添加xxx字段大于等于value条件criteria.andXxxLessThan(value)添加xxx字段小于value条件criteria.andXxxLessThanOrEqualTo(value)添加xxx字段小于等于value条件criteria.andXxxIn(List)添加xxx字段值在List条件criteria.andXxxNotIn(List)添加xxx字段值不在List条件criteria.andXxxLike(“%”value”%”)添加xxx字段值为value的模糊查询条件criteria.andXxxNotLike(“%”value”%”)添加xxx字段值不为value的模糊查询条件criteria.andXxxBetween(value1,value2)添加xxx字段值在value1和value2之间条件criteria.andXxxNotBetween(value1,value2)添加xxx字段值不在value1和value2之间条件5.使用案例Overridepublic void parse() {Example example new Example(Student.class);Example.Criteria criteria example.createCriteria();// 添加筛选条件 年龄大于等于45criteria.andGreaterThanOrEqualTo(age, 45);// 添加分页筛选条件RowBounds rowBounds new RowBounds(0, 5);ListStudent studentList studentMapper.selectByExampleAndRowBounds(example, rowBounds);for (Student student : studentList) {System.out.println(name: student.getName());}查出的数据就为年龄大于等于45的前五条数据。 Overridepublic void parse() {Example example new Example(Student.class);Example.Criteria criteria example.createCriteria();// 添加查询条件 根据id为f4ba6717fe054c5cbe1730aed4d64d51进行查询criteria.andEqualTo(id, f4ba6717fe054c5cbe1730aed4d64d51);// 查询唯一的数据Student student studentMapper.selectOneByExample(example);System.out.println(name: student.getName());}查出唯一一条数据如果根据筛选条件查出的数据不是唯一的则会报错Overridepublic void parse() {Example example new Example(Student.class);Example.Criteria criteria example.createCriteria();// 创建筛选条件查询年龄在25到50之间的数据criteria.andBetween(age, 25, 50);ListStudent studentList studentMapper.selectByExample(example);for (Student student : studentList) {System.out.println(name: student.getName());}}筛选的条件为根据字段age进行筛选筛选出年龄在25-50之间的数据6.寄语之前在项目中使用过通用mapper已经有些时间了这里做了一下总结欢迎小伙伴们进行指正。不积硅步无以至千里不积小流无以成江河
http://www.pierceye.com/news/434459/

相关文章:

  • 在福州的网站制作公司滨海新网站建设
  • 帝国网站地图插件泰兴企业网站建设
  • wordpress布置网站教程用dw做简单图片网站
  • 网页制作模板左右结构百度seo关键词优化方案
  • 长沙设备建站按效果付费wordpress可视化编辑器插件
  • 软件开发与网站开发硬件开发语言
  • 开封做网站睿艺美官方网站建设的必要
  • 自适应网站制作简创网络南联网站建设
  • 帮别人做钓鱼网站犯法吗贵州网站建设工作室
  • 企业网站域名空间优化公司治理结构
  • 网站建设 前沿文章php做网站脑图
  • 刷单网站开发装修企业网站源码
  • 莱州人社局网站网站开发项目资金运用明细
  • 水墨网站模板软通动力外包怎么样
  • 直播间网站建设小清新wordpress主题
  • 淘金网站建设推广汽车 营销 网站建设
  • 网站站内链接seo外链发布工具
  • 如何设计大型电商网站建设利用php做网站
  • 大朗网站仿做google广告
  • 跳转网站代码wordpress文章只能会员才能看
  • 大鹏网络网站建设报价vps的网站打不开
  • 西部数码网站管理助手卸载修改网站空间服务器密码
  • asp网站开发技术总结与收获建设银行网站怎么登录密码忘了怎么办
  • 营销型企业网站 网络服务flashfxp 网站
  • 青岛网站建设服务平台邢台专业网站建设费用
  • wordpress做网站好吗戴南做网站
  • 中山精品网站建设价位网站开发后台一般用什么
  • 万网 手机网站物联网平台介绍
  • 墨星写作网站网站建设使用的什么语言
  • wdcp网站搬家wordpress 改成宽屏