mybatis plus update mybatisplus中的updatetable
- 开发语言
- 2023-08-13
- 75
大家好,今天来为大家分享mybatis的一些知识点,和mybatisplus中的updatetable的问题解析,大家要是都明白,那么可以忽略,如果不太清楚的话可以看看...
大家好,今天来为大家分享mybatis的一些知识点,和mybatisplus中的updatetable的问题解析,大家要是都明白,那么可以忽略,如果不太清楚的话可以看看本篇文章,相信很大概率可以解决您的问题,接下来我们就一起来看看吧!
mybatis更新操作和添加操作的不同
更新操作是updatesql,添加是insertsql
自学java怎么入门
java培训主要的内容有下边的几个阶段:第一阶段:java基础本阶段除了JavaSE中要求大家必会的java基础知识外,重点加强了数据结构思想、集合源码分析、jdk9-11新特性的学习。
第二阶段:数据库本阶段主要学习MySQL数据库知识,通过层层递进,让大家掌握开发使用的数据是如何存储和处理的。并且逐步深入学习到索引和优化、锁机制、存储过程等。
第三阶段:web网页技术本阶段以项目案例为驱动,采用所学即所用的方式指导大家学习,在边学边练过程中,可深入掌握Web开发技术,具备与之匹配的实战能力。
第四阶段:框架学习本阶段主要是学习市面上流行的框架技术来提升自己的开发能力,再辅以Linux命令以及Linux服务器的使用等内容让新手学到技术,让老手学到思想,让高手学到境界。
第五阶段:互联网高级技术主要讲解分布式管理系统、Keepalived+Nginx主备、微服务架构技术、消息中间件技术、MySQL调优、高并发技术、性能优化、内存和GC等。
第六阶段:企业项目本阶段主要是通过让学员学习企业流行的项目,在动手实操的过程中加深前面知识的认识,并且增加学员企业项目开发经验。
mybatisplus优缺点
Mybatisplus是一个基于Mybatis的增强工具,提供了许多方便开发的功能,但也有一些缺点。
优点:
1.提高开发效率:Mybatisplus提供了通用的Mapper、Wrapper、Page、Lambda等模块,减少了很多编写重复代码的工作量,让开发者更专注于业务逻辑的实现。
2.提供了丰富的特性:Mybatisplus支持快速构建动态SQL语句、代码生成器、多租户、性能分析、数据权限等功能,提高了系统的可拓展性和可维护性。
3.简化代码复杂性:Mybatisplus提供了很多便于使用的方法,能够简化代码的逻辑复杂性,例如可以通过条件构造器Wrapper构建动态查询条件,简化了SQL语句的编写。
缺点:
1.增加了学习成本:尽管Mybatisplus提供了很多的便利操作,但是开发者仍然需要花费时间学习如何正确使用这些特性。
2.可定制性较低:由于Mybatisplus是基于Mybatis二次开发的,因此对于一些需要特定定制的功能,可能难以满足开发者的需求。
3.框架复杂性增加:Mybatisplus提供了很多便利操作,但是对于一些开发者来说,这些套路流程并不是必须的,反而会增加框架的复杂度和学习曲线。
结论:
总的来说,Mybatisplus还是一个非常优秀的增强工具,可以提高开发效率和代码质量。但是在选择是否使用这个工具的时候,需要考虑到项目的实际情况,权衡其优缺点后再做决定。
具体步骤:
使用Mybatisplus开发项目时,可以按照以下步骤进行操作:
1.添加Mybatisplus依赖:可以在Maven或者Gradle配置文件中添加Mybatisplus依赖。
2.建立实体类和Mapper接口:与传统的Mybatis开发方式相同,需要建立实体类和Mapper接口。
3.使用通用Mapper:Mybatisplus提供了通用的Mapper,可以直接使用其中的方法操作数据库。
4.使用Wrapper构建查询条件:Mybatisplus的Wrapper对象可以帮助构建动态查询条件。
5.使用Page分页查询:Mybatisplus提供了Page对象和分页插件,可以方便地进行分页查询。
6.使用Lambda表达式:Mybatisplus提供了Lambda表达式,可以更便捷地进行动态SQL语句的构造。
7.使用代码生成器:Mybatisplus提供了内置的代码生成器,可以快速生成Mapper接口和实体类。
my batis怎样,实现mysql动态,分页
在这些控件里要达到分页的效果,一般都会传2个参数,第一个是表示当前页的索引(一般从0开始),第二个表示当前页展示多少条业务记录,然后将相应的参数传递给List<T>getList(PagenateArgsargs)方法,最终实现数据库中的分页时候可以使用limit关键词(针对mysql)进行分页,如果是oracle或者sqlserver他们都有自带的rownum函数可以使用。
针对上述思路,首先在demo.mybatis.model下面新建一个名为PagenateArgs的分页参数实体类与一个名为SortDirectionEnum的枚举类,里面包含当前页面索引pageIndex,当前页展示业务记录数pageSize,pageStart属性表示从第几条开始,(pageStart=pageIndex*pageSize)因为limit关键词用法是表示【limit起始条数(不包含),取几条】,orderFieldStr排序字段,orderDirectionStr排序方向,所以具体创建如下:
packagedavid.mybatis.model;/**分页参数实体类*/publicclassPagenateArgs{privateintpageIndex;privateintpageSize;privateintpageStart;privateStringorderFieldStr;privateStringorderDirectionStr;publicPagenateArgs(){//TODOAuto-generatedconstructorstub}publicPagenateArgs(intpageIndex,intpageSize,StringorderFieldStr,StringorderDirectionStr){this.pageIndex=pageIndex;this.pageSize=pageSize;this.orderFieldStr=orderFieldStr;this.orderDirectionStr=orderDirectionStr;pageStart=pageIndex*pageSize;}publicintgetPageIndex(){returnpageIndex;}publicintgetPageStart(){returnpageStart;}publicintgetPageSize(){returnpageSize;}publicStringorderFieldStr(){returnorderFieldStr;}publicStringgetOrderDirectionStr(){returnorderDirectionStr;}}
packagedavid.mybatis.model;/**排序枚举*/publicenumSortDirectionEnum{/**升序*/ASC,/**降序*/DESC}
完成上面的步骤以后在IVisitorOperation接口类中继续添加一个方法publicList<Visitor>getListByPagenate(PagenateArgsargs),这次的分页其实也就是在这个的基础上稍加改动即可,IVisitorOperation接口类改动后如下所示:
packagedavid.mybatis.demo;importjava.util.List;importdavid.mybatis.model.PagenateArgs;importdavid.mybatis.model.Visitor;importdavid.mybatis.model.VisitorWithRn;publicinterfaceIVisitorOperation{/**基础查询*/publicVisitorbasicQuery(intid);/**添加访问者*/publicintadd(Visitorvisitor);/**删除访问者*/publicintdelete(intid);/**更新访问者*/publicintupdate(Visitorvisitor);/**查询访问者*/publicVisitorquery(intid);/**查询List*/publicList<Visitor>getList();/**分页查询List*/publicList<Visitor>getListByPagenate(PagenateArgsargs);}
接下来改动VisitorMapper.xml配置文件了,新增一个<select>节点id与参数类型参照前几章的方式配置好,如下此处新增的id就为getListByPagenate,配置好以后如下
<?xmlversion="1.0"encoding="UTF-8"?><!DOCTYPEmapperPUBLIC"-//mybatis.org//DTDMapper3.0//EN""
http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mappernamespace="david.mybatis.demo.IVisitorOperation"><!--useGeneratedKeys="true"代表是否使用自增长序列,keyProperty="Id"指定自增长列是哪一列,parameterType="Visitor"指定IVisitorOperation接口类中定义中所传的相应类型--><insertid="add"parameterType="Visitor"useGeneratedKeys="true"keyProperty="Id">insertintoVisitor(Name,Email,Status,CreateTime)values(#{name},#{email},#{status},#{createTime})</insert><deleteid="delete"parameterType="int">deletefromVisitorwherestatus>0andid=#{id}</delete><updateid="update"parameterType="Visitor">updateVisitorsetName=#{name},Email=#{email},Status=#{status}whereid=#{id}andStatus>0;</update><selectid="query"parameterType="int"resultType="Visitor">selectId,Name,Email,Status,CreateTimefromvisitorwhereid=#{id}andStatus>0orderbyId</select><selectid="basicQuery"parameterType="int"resultType="Visitor">select*fromvisitorwhereid=#{id}andStatus>0orderbyId</select><selectid="getList"resultMap="visitorRs"><includerefid="getListSql"/></select><sqlid="getListSql">select*fromVisitorwherestatus>0</sql><!--以下为新增部分用来分页,orderBySql这个提取出来是为了后面有示例复用--><resultMaptype="Visitor"id="visitorRs"><idcolumn="Id"property="id"/><resultcolumn="Name"property="name"/><resultcolumn="Email"property="email"/><resultcolumn="Status"property="status"/><resultcolumn="CreateTime"property="createTime"/></resultMap><selectid="getListByPagenate"parameterType="PagenateArgs"resultType="Visitor">select*from(<includerefid="getListSql"/><includerefid="orderBySql"/>)t<!--#{}表示参数化输出,${}表示直接输出不进行任何转义操作,自己进行转移--><iftest="pageStart>-1andpageSize>-1">limit#{pageStart},#{pageSize}</if></select><sqlid="orderBySql">orderby${orderFieldStr}${orderDirectionStr}</sql></mapper>这里面的字段属性都是针对PagenateArgs参数类中的属性名,保持一致。
<iftest="pageStart>-1andpageSize>-1">limit#{pageStart},#{pageSize}</if>
在DemoRun类中创建测试方法:
/**分页参数*/publicstaticvoidqueryVisitorListWithPagenate(intpageIndex,intpageSize,StringorderField,StringorderDire){PagenateArgsargs=newPagenateArgs(pageIndex,pageSize,orderField,orderDire);SqlSessionsession=MybatisUtils.getSqlSession();IVisitorOperationvOperation=session.getMapper(IVisitorOperation.class);List<Visitor>visitors=vOperation.getListByPagenate(args);for(Visitorvisitor:visitors){System.out.println(visitor);}MybatisUtils.closeSession(session);MybatisUtils.showMessages(CRUD_Enum.List,visitors.size());}
DemoRun.queryVisitorListWithPagenate(0,100,"id",SortDirectionEnum.DESC.toString());
运行后下测试结果,先按Id倒序排列,查的Visitor表一共有14条记录,
假设取在第2页取5条,执行下面也就是6-10条数据,这样传参数就行了
DemoRun.queryVisitorListWithPagenate(1,5,"id",SortDirectionEnum.DESC.toString());
结果如下:
实现了一个分页逻辑.
mybatisoracle多条update语句怎么写
批量更新多条,一个UPDATE语句updatetableNamewhereidin#{Ids} <foreachcollection="roleIds"item="item"index="index"open="(" separator=","close=")"> #{item} </foreach>
eclipse增删改查基本语句
1.增删改查基本语句是存在的。2.在eclipse中,增加语句使用的是INSERTINTO语句,删除语句使用的是DELETEFROM语句,修改使用的是UPDATE语句,查询使用的是SELECT语句。3.除了基本语句之外,eclipse还提供了很多其他的工具和插件来辅助用户完成数据库的操作,例如MyBatis、Hibernate等等。
END,本文到此结束,如果可以帮助到大家,还望关注本站哦!
本文链接:http://xinin56.com/kaifa/3839.html