当前位置: 首页 > 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.zqtcl.cn/news/434459/

相关文章:

  • iis网站重定向软件开发培训机构排名
  • 浙江大学教室办事大厅网站建设网页棋牌搭建
  • 长沙市天心区建设局网站新河网站
  • 网站改版 升级的目的嘉兴海盐县城乡建设局网站
  • 网站建设一年多少钱上海工程建设交易信息网站
  • 网站推广到底应该怎么做中国建设银行网上登录入口
  • 东莞网站建设服务商wordpress页面样式
  • 亿星网站建设创业网站怎么做
  • 绿韵建设有限公司网站重庆景点分布图
  • 咨询类网站模板wordpress怎样切换语言
  • 大连网站建设与维护题库网站建设目标是
  • 威海网站开发询广西南宁网站运营
  • 网站的素材做logo长沙专业的网站建设企业
  • 网站显示速度的代码是什么情况专门做中式服装平台的网站
  • 驻马店做网站的公司大连网站模板建站
  • aso如何优化网站优化分析软件
  • IT周末做网站违反制度么wordpress 图床 插件
  • 成都网站建设scjsc888因网站建设关闭的公告
  • 唐山公司建设网站十大牌子网
  • 网站开发的选题依据电子商务网站建设内容
  • 中企动力做的网站被百度屏蔽推销网站话术
  • 四川网站制作广告设计自学网教程
  • 做个简单的企业小网站单纯做网站的公司
  • 河北省建设厅官方网站哈尔滨建设工程招聘信息网站
  • 茂名网站制作网页个人博客登录首页
  • 类似qq空间的网站wordpress 简历主题
  • 专业网站运营制作怎么写代码做网站
  • 安徽免费网站制作西安做行业平台网站的公司
  • 我想做服装网站怎么做网页设计优秀案例分析
  • 网站建设技术教程视频wordpress中文模版