- 博客(41)
- 收藏
- 关注
原创 Mybatis学习小结(四)动态SQL
Choose:有时候,我们不想使用所有的条件,而只是想从多个条件中选择一个使用。针对这种情况,MyBatis 提供了 choose 元素,它有点像 Java 中的 switch 语句如上所示当SQL的条件满足其中一个是就会将剩余的其他条件忽略掉,只会把最先符合条件的那一条SQL语句给添加进去。SQL片段 :有时候可能某个 sql 语句我们用的特别多,为了增加代码的重用性,简化代码,我们需要将这 些代码抽取出来,然后使用时直接调用注意点:• 最好基于 单表来定义 sql 片段,提高片段的可重用
2021-05-16 15:00:00 188
原创 Mybatis学习小结(三)动态SQL
动态 SQL 是 MyBatis 的强大特性之一。如果使用过 JDBC 或其它类似的框架,应该能理解根据不同条件拼接 SQL 语句有多痛苦,例如拼接时要确保不能忘记添加必要的空格,还要注意去掉列表最后一个列名的逗号。利用动态 SQL,可以彻底摆脱这种痛苦使用动态 SQL 并非一件易事,但借助可用于任何 SQL 映射语句中的强大的动态 SQL 语言,MyBatis 显著地提升了这一特性的易用性。说直白一点动态SQL就是指根据不同的条件生成不同的SQL语句本质上还是SQL语句,只是我们可以在SQL层面上去执行
2021-05-16 14:57:27 286
原创 Mybatis学习小结(二) 基础增删改的实现
编写完使用Mybatis框架进行基础的查询后, 接着编写使用Mybatis进行基础的新增、修改和删除的内容;新增:先在Mapper接口中添加上对应方法,在到相应的Mapper.xml配置文件中添加上相应的sql语句。<!--insert标签没有resultType属性--><!--parameterType 所设置的传递参数类型直接设置到相应的对象--><!--对象中的属性可以直接取出来 注意名字要与对象中的名字一一对应--><insert id="
2021-01-21 14:48:59 172
原创 Mybatis学习小结(一) 基础查询的实现
MyBatis 是一款优秀的持久层框架,它支持自定义 SQL、存储过程以及高级映射而且因为Mybatis具有简单易学和灵活性高的特点,所以在开发时是使用Mybatis可以提高开发效率,因为MyBatis 免除了几乎所有的 JDBC 代码以及设置参数和获取结果集的工作使用时只需要通过简单的 XML 或注解来配置和映射原始类型、接口和 Java POJO为数据库中的记录使用Mybatis实现基础的查询:因为使用的是Maven的方式导入依赖使用需要在pom.xml中导入下面使用Mybatis所需要的依赖文件
2021-01-21 14:42:28 150
原创 使用页面转发跳转页面的弊端及解决方式
页面跳转是开发一个web应用经常会发生的事情。比如登录,登录成功后页面跳转到一个新的页面,失败后则返回原页面。但在跳转时使用的跳转方式不同,带来的效果也会有所不同,而在某些页面使用不合适的跳转方式往往会带来一些弊端。如在登录时使用页面转发的方式来进行页面的跳转。在使用 getRequestDispatcher 即页面转发跳转页面时,只要页面存在用于提交的表单数据在提交完成后无论是刷新都会遇到表单重复提交的情况。如登录时需要提交验证的账号和密码,在验证完成后无论在是登录成功还是登录失败在跳转到新的页面时,如
2020-08-09 12:26:24 718
原创 《数据结构与算法》知识小结(6)
在学习完数组与矩阵的内容后,我们接着学习了树的内容。树的定义:树是由 n (n ≥ 0) 个结点组成的有限集合T。如果 n = 0,称为空树;如果 n > 0,则满足以下特点:有一个特定的称之为根的结点,它只有直接后继,但没有直接前驱;除根以外的其它结点划分为 m (m > 0) 个 互不相交的有限集合T1, T2, …, Tm,每个集合又是一棵树,并且称之为根的子树(每棵子树的根结点有且仅有一个直接前驱,但可以有0个或多个直接后继)。在了解了树的定义后接着了解了树的基本术语,树居然以
2020-05-28 20:32:34 172
原创 《数据结构与算法》知识小结(5)
在学习完堆栈与队列的内容后,我们接着学习了数组与矩阵的内容。数组的定义:数组是是n(n>1)个相同数据类型的数据元素a0,a1,a2,…,an-1构成的占用一块地址连续的内存单元的有限序列。数组中任意一个元素可以用该元素在数组中的位置来表示,数组元素的位置通常称作数组的下标。 数组和线性表一样都是若干个相同数据类型的数据元素a0,a1,a2,…,a0-1构成的有限序列,但不同的是数组要求其元素占用一块地址连续的内存单元空间,而线性表无此要求;且线性表的元素是逻辑意义上不可再分的元素,而数组中的每个元素还可
2020-05-18 19:31:42 293
原创 《数据结构与算法》知识小结(4)
在学习完堆栈和队列中的堆栈的内容后我们接着学习了堆栈和队列中队列的内容。栈和队列都是特许的线性表,和栈不同的是队列的特点是先进先出。1、 队列的定义:队列简称为队,是限定只能在表的一端作为插入运算、在另一端作删除运算的线性表;在表中,允许插入的一段称作“队尾”,允许删除的另一端称作“队首”(或“队头”);通常将元素插入队尾的操作称作为入队列(或者入队),称删除队首元素的操作为出队列(或出队)。其结构大致如下图所示:2、 队列的存储结构:队列的存储结构主要有以下两种(1)顺序队列——采用顺序结构存
2020-05-08 18:38:55 297
原创 《数据结构与算法》知识小结(3)
学习《数据结构与算法》这门课程的概念后我们学习了这门课程的第二个内容——堆栈和队列。首先我们学习到了堆栈:1、栈的定义:堆栈简称为栈,是限定只能在表一端进行插入和删除操作的线性表。在表中,允许插入和删除的一端称作“栈顶”,另一端称作“栈底”。通常将元素插入站定的操作称为“入栈”(进栈或压栈),称删除栈顶元素的操作为“出栈”。其结构大致如下图所示:2.栈的基本运算堆栈的基本运算如下:(1...
2020-04-27 23:42:10 201
原创 《数据结构与算法》知识小结(2)
学习《数据结构与算法》这门课程的概念后我们学习了这门课程的第一个内容——线性表。线性表的主要内容有:一、 线性表的定义:其内容主要分为线性表的定义、线性表的特征和线性表的基本运算。1.线性表的定义:线性表的定义主要由n个(或n个以上)个相同类型数据元素a1,a2,…an组成的有限序列(记为a1,a2,…an)其中: n:数据元素的个数,也称表的长度。空表:n=0,记为()2、线性表主要有...
2020-04-27 23:36:56 149
原创 《数据结构与算法》知识小结(1)
在上网课期间我们学习了《数据结构与算法》的课程,这是一门课程在计算机学科中是综合性较强的专业基础课,是软件开发的基础。学习了这门课程我们知道了算法+数据结构=程序的观点。我们学习的《数据结构与算法》这门课程具有很大的意义,它教导我们更快地编写出更高效率的程序。因为这个时代可以借助集成开发坏境可以很快的生成程序,但要想成为一个专业的程序开发人员仅仅是这样还不够的,还至少需要以下这三个条件:(1)能...
2020-04-27 23:31:35 226
原创 layui的穿梭框绑定实时数据并使用
为layui穿梭框绑定实时数据的方法有很多,我这里的只是其中一个比较简单的为layui绑定实时数据的方法。 为穿梭框绑定实时肯定是先要使用到layui的穿梭框,使用layui穿梭框的第一步,正常情况下肯定是先要加载穿梭框的模块 transfer,但如果想要实时数据绑定在穿梭框在初始化之前还需要用post请求将所需要的数据查询出来,在对layui进行加载。在将所需要的数据查询出来并将所需要的l...
2019-07-27 08:09:43 4708 1
原创 设置局部滚动条
在很多时候当设置的某些内容超出一定范围的时候会出现全局滚动条,但我们有时候需要的是局部出现滚动条而不是全局出现滚动条,所以在这个时候我们需要给特定的盒子设置局部滚动条。在给盒子设置局部滚动条时如果需要Y轴出现滚动条就需要给它设置固定的高度,同样的如果需要X轴出现滚动条则需要给盒子设置固定的宽度,设置高度时可以直接设置成固定像素也可以设置可以视区域的百分比。如上图,设置了固定的像素高度和只在盒子...
2019-07-27 08:06:51 1910
原创 项目练习日记(九)餐饮管理系统——“前台业务管理”模块》项目研发阶段性总结(二)
完成模块功能: 点菜、传菜、退菜一、功能实现首先需要根据数据库中设置的菜品信息在页面生成所有的菜品信息。点菜:对已开台的桌台进行点菜,点菜时先选择需要点餐的菜品然后再点击选单按钮完成点菜操作。除了对已开台的桌台进行点菜操作,还可以对已点菜的桌台进行加菜操作。传菜:对已点菜的桌台进行传菜操作,传菜数量不能大于点菜数量,传菜成功后会记录 下已传菜品和未传菜品的数量。 退菜:对已点菜的桌台中的...
2019-07-18 15:21:10 227
原创 项目练习日记(八)《餐饮管理系统——“前台业务管理”模块》项目研发阶段性总结(一)
完成模块功能: 预定、开台一、 功能实现先根据数据库中的数据生成实时的桌台信息,不同状态的桌台使用不同的颜色进行区分。预定:对空闲状态的桌台进行预约,预约后桌台状态变为已预约,预约时需要填写预约人姓名和电话号码,预约成功后会生成随机的四位编号。多台预约时只会生成一个四位的随机编号。如果想取消预约信息可以对已预约的桌位进行取消预约操作,取消预约信息时需要根据生成的编号和预约人的姓名和电话才可以...
2019-07-18 15:18:45 242
原创 根据数据库中的数据在页面生成实时的桌位
在做项目的前台部分时遇到了需要根据数据库中的桌位数据在页面生成实时的桌位,而且根据桌位状态的不同在页面显示的样式也会有所不同。在生成之前需要在控制器中将需要在页面生成显示的数据查询出来。因为是多表查询,所以用到了实体类。在将所需的数据查询出来后,再回到视图层写请求方法的函数。在函数中首先用post请求查询的方法,然后用for循环语句来循环返回的数据的条数的次数。然后声明几个变量根据桌位当前...
2019-07-08 09:08:45 293
原创 生成自增编号
在做项目时会遇到设置编号或者单号的需求,这些编号一般基本都是不可以手动输入的,所以这个时候需要设置一个可以自动生成并且是自增的编号。设置自增编号的方法有很多,下面为其他的一种。首先需要声明一个存放字符串的变量。然后查询需要存放编号的表,以现在做的餐饮管理系统中的会员卡编号为例,需要查询会员信息表。查询时需要注意要按照编号的升序来进行排序。然后用if语句判断查询出来的会员卡信息数据的条数,...
2019-07-08 09:05:37 4321
原创 项目练习日记(七)《餐饮管理系统——“销售中心”模块》项目研发阶段性总结(三)
完成模块功能:会员管理、会员转账、会员补卡、会员充值查询、会员转账查询、会员积分查询一、 功能实现会员管理:对会员卡信息的管理,查询所有状态为使用中的会员卡的信息。会员发卡根据用户的选择办理不同的会员卡类型,类型不同售价、享受折扣、初始金额等也会有所不同。会员充值 只允许具有储值功能的会员卡进行充值,充值时根据单次充满的金额查询充值方案中满足的条件的最高方案对其赠送金额、积分。积分兑换 只有具...
2019-06-28 08:07:19 197
原创 项目练习日记(六)《餐饮管理系统——“销售中心”模块》项目研发阶段性总结(二)
作者: 刘燊垚本次任务完成时间: 2019年6月10日—2019年6月14日开发工具与关键技术:Visual Studio 2015完成模块功能:设置会员类型、会员充值方案、会员返点方案、兑换物品一、 功能实现会员类型:设置会员卡的类型,根据会员卡的类型设置该会员是否具有储值卡、积分卡、折扣卡的功能,并且根据类型的不同设置不同的有效期等信息。会员充值方案:设置会员卡充值时单次充满多少自...
2019-06-28 08:03:01 154
原创 学习日记总结(十三)计算多条数据的总金额
在做项目练习中遇到了需要计算总金额的需求,但金额这个字段正常情况下时不能出现在数据库中的表字段中只能通过计算得出然后返回到页面。计算金额首先需要将计算的数据查询在一个集合里,然后获取到这个集合数据的条数,因我计算的是酒菜套餐的金额,套餐的金额是根据套餐下的酒菜决定的,所以需要先查询出同一个套餐下套餐明细的数量。在查询出套餐明细的数量后通过for循环的方法开始计算总金额,通过判断for循环中的i...
2019-06-18 09:25:16 1038
原创 学习日记总结(十二)使用定时任务删除特定的数据
在做项目练习时对于一些历史记录的数据处理有时候并不是直接就从数据库中删除的,在删除时就只是将被删除的数据的状态改变使它不显示到页面,在需要恢复时再将状态变回来使它可以在页面显示。但是这样只改变数据的状态并不直接删除数据会使数据库的中存储量变的越来越大,这个时候就需要使用定时任务来对一些过期的数据进行删除。需要注意的时,使用定时任务删除过期的数据需要确保数据库中删除的数据拥有时间字段。使用定时器前...
2019-06-17 21:18:57 368
原创 项目练习日记(五)《餐饮管理系统——“销售中心”模块》(一)
完成模块功能: 协议单位、挂账结算一、 功能实现协议单位:是指与餐厅达成协议,在该餐厅消费能享受到一定折扣或者允许挂账的单位。查询时为其设置多条件查询,新增协议单位时根据实际情况输入单位的信息,在设置可挂账的限额,新增时可以设置当前的挂账金额,默认为零,设置挂账金额时不能超过挂账限额,且修改协议单位信息时协议号和挂账金额不予许修改。挂账结算:协议单位定期结算挂账金额的流程。点击浏览按钮会弹...
2019-06-09 19:52:20 240
原创 项目练习(四)《餐饮管理系统——“基础数据”模块》(三)
完成模块功能: 房台设置、计费设置一、 功能实现房台设置:先设置好楼层的信息,再根据查询出来的部门信息设置桌台。先选中一条需要设置桌台的楼层信息,再选中需要设置桌台的部门信息,然后对桌台进行新增,新增时会根据选中的楼层信息和部门信息回填一部分数据到新增的表单。新增桌台时会根据选择的桌台类型限制容纳人数,新增时桌台的状态默认为空闲中,新增时可以自行选择其他状态。点击右上角的设置桌台状态和桌台类型...
2019-06-09 19:49:30 565
原创 项目练习日记 《餐饮管理系统——“基础数据”模块》(二)
完成模块功能: 套餐设置、折扣方案、酒菜做法设置、菜品原材料配置一、 功能实现套餐设置:对酒菜套餐的增删查改并设置多条件查询等,设置套餐组合然后通过实际情况设置其编号、名称、价格等,也可以对其进行修改和删除等操作。设置好酒菜套餐后通过选中一点套餐信息然后点击设置按钮设置该套餐的内容,设置是通过选择酒菜大类再到酒菜小类再到酒菜项目来确定设置的是那一种酒菜。如果需要修改套餐中包含的酒菜项目的数量,...
2019-06-09 19:45:46 254
原创 项目练习日记(二)《餐饮管理系统——“基础数据”模块》
完成模块功能: 酒菜设置、酒菜特价设置一、 功能实现酒菜设置主要是酒菜数据的增删查改,初始状态下酒菜小类表和酒菜项目表为无数据。需要先设置酒菜大类信息,再通过触发酒菜大类表行的点击事件对酒菜小类表进行重载根据所选择的酒菜大类ID查询该酒菜大类下具有哪些酒菜小类,只有点击选中酒菜大类之后才可以对酒菜小类进行新增、修改、删除。同样的通过触发酒菜小类表行的点击事件对酒菜项目表进行重载根据酒菜小类ID...
2019-05-28 09:15:28 745
原创 项目练习日记(一)《餐饮管理系统——“登录”模块》
一、功能实现登录模块具有员工登录和用户外卖登录两个登录页面,目前只做了员工登录的页面,员工登录页面又分为前台登录和后台登录。通过选择切换选项卡选择前台登录或者后台登录,登录时通过验证账号所对应的权限来确定登录选择的角色是否正确。如果登录时验证的账号、密码、验证码和权限都通过了就通过其选择的角色分别登录进其角色所对应的主页面。如果验证不通过则根据其登录验证错误的地方返回提示,提示员工重新输入。...
2019-05-28 09:10:19 806
原创 菜鸟的学习日记总结(十一)将页面的数据到导出到Excel表格
在有些时候可能会需要将页面的数据导入到一些表格,目前暂时只学了将页面数据导入到Excel表格的方法。因为将页面的数据导出到Excel表格需要将导出数据页面的数据给查出来,所以在设置页面的函数时需要在函数里加上导出表格的多条件查询的筛选条件和判断。在拼接的请求路径需要拼接上多条件查询的参数。在页面设置好参数就可以在控制器开始写方法了,在控制器写方法时需要在公共请求中接受页面传递过来的参数。因为需...
2019-05-16 20:54:16 386
原创 菜鸟的学习日记总结(十)设置定时任务
在项目中设置定时任务的方法有很多种,目前只学了其中一种设置定时任务的方法,是使用 FluentScheduler.dll 完成任务的设置。使用这种方法首先需要在项目中添加引用FluentScheduler.dll这个文件。引用后文件后就在项目的目录中新建一个用于存放定时任务的文件,再在新建的文件夹中新建一个名为 MyRegistry 的类,这个类用于充当定时任务的注册类。新建完成后再这个类的上...
2019-05-16 20:49:55 194
原创 菜鸟的学习日记总结(九)上传word文档中的文件
想要导入Word文档中的文件一般来说都要将文件设置成按照它所指定的的样板中的格式,而一般指定的模板的样式都会在上传文件之前会要求下载,在根据模板中的样式设置好Word文件后就可以将其上传了。上传文件之前首先要对它进行判断,获取到上传文件的拓展名,判断它是否为Word文档。在确定上传文件为Word文档后就可以进行下一步的步骤了,先将Word文档重新命一个名在完成上面的步骤之后就可以正式上传文...
2019-05-08 19:58:07 659
原创 菜鸟的学习日记总结(八)From表单数据的提交
From表单数据的提交目前学了两种方法,一种方法是使用插件来提交,另一种则是将数据一个个的进行提交。使用插件提交from表单数据的方法很简单,首先引入提交from表单数据的方法的插件在将插件引进来后,再给from标签一个ID插件提交from表单数据就是通过from表单的ID来确定from表单从而获取到其中的数据。在获取到其中的数据后就可以对其进行提交。ajaxSubmit(obj)方法...
2019-05-08 19:54:15 595
原创 菜鸟的学习日记总结(七) 登录验证
登录的本质其实是页面间的跳转,只要有两个页面并且为其添加点击事件就可以做到最简单的登录。在做登录时的核心是登录过程中的对账号和密码等的验证,因为如果可以不通过对账号和密码等验证直接就可以登录,那么这个登录是没有什么意义的。最简单的登录验证是在登录时通过根据用户输入的账号在用户表中查询该账号信息,如果信息无误就可以让他登录进去。但如果只是判断账号是否正确是不够的,在判断账号是否正确的时候还应该判断...
2019-05-08 19:48:11 451
原创 菜鸟的学习日记总结(六)基础删除
删除是增删查改当中最后一个内容,删除的方式分为两种,一种是单条数据的删除,一种是多条数据的批量删除。其中单条数据的删除最简单,可以直接将获取到数据进行删除,但每次只能删除一条数据,且为了确保删除的数据下不会出现废数据,都会在删除数据之前判断该条数据的下面是都含有其他数据,如果有就不能让它删除。在练习中因为需要删除的数据较少,且下面没有其他链接的表所以在删除时不需要判读它下面是否含有其他数据只需要按...
2019-04-28 09:21:04 176
原创 菜鸟的学习日记总结(五)基础修改
修改是增删查改中不可缺少的一环,同样的修改某条信息之前也同样需要对其进行查询,因为在修改某条信息之前需要根据它的ID查询出需要修改的数据,并将这些数据通过数据的回填将其回填到页面的表单上。在查询数据之前需要知道可以修改的数据有哪一些,在练习中可以修改的员工信息有员工姓名、电话、手机、部门、职位、地址和备注,其中部门和职位是下拉框其他为输入框。想要数据回填到修改的模态框首先需要获取到页面选中...
2019-04-28 09:16:40 147
原创 菜鸟的学习日记总结(四)基础新增
新增是编写代码中不可缺少的一环,因为编写代码的过程就是在增删查改。新增的内容根据需求的不同新增的表会有所不同,但主要的过程是判断数据库是否有重复然后再进行新增,新增过程从主表开始新增再到子表,这点和删除相反。下图为老师布置的练习中所需要新增的数据内容。根据数据库的关系图可知所需新增的表有三张,员工表,用户表,用户角色明细表,那么新增的顺序为用户表用户角色明细表员工表。新增之前需要知道有哪...
2019-04-18 09:13:42 151
原创 菜鸟的学习日记总结(三)基础查询
查询往往是增删查改中最简单的,因为查询基本不会涉及到判断,而编写代码时最复杂的正好是判断的过程。但想要查询首先要知道查询的需求是什么,如下图上图为老师布置的练习中所要求查询出来的内容,并要求添加上多条件查询的功能,多条件查询的条件为:编号/姓名(输入框),部门(下拉框)、职位(下拉框),知道了需要查询的内容我们就可以从数据库中将其内容查询出来。但是数据库中很多时候都不会有一张会百分百包含你所...
2019-04-18 09:05:51 150
原创 正则表达式的简单使用
正则表达式从老师整理的文档可以知道其概念是对字符串操作的逻辑公式,主要是用来验证、搜索和替换,下面是正则表达式的一些简单使用。比如一串混合的字符串如果要从中匹配出字母可以使用 [A-Za-z] 进行匹配,得到的结果为除了匹配字母正则表达式还可以拿来匹配数字和特殊符号等。。。但在匹配符号时要注意一些特殊符号要使用转义符\才能匹配出结果,如果你匹配的是 \ 那就必须输入两个\,只输入一...
2019-04-08 09:16:00 124
原创 使用layui分页显示时遇到 查询出来的数据与显示数据不一致的问题
使用layui分页时有时候可能会遇到查询出来的数据与显示的数据不一致的问题以显示公告为例:由上图可以发现查询出来的数据一共十二条但显示出来的只有三条,在查询数据正确的情况如果出现这种情况是因为在提取数据时用错了分页开始的序号,使用到了分页结束的序号。我们在使用layui时请求返回封装的数据时定义的分页开始序号的方法是GetStartIndex正常情况下应该是使用这个来返回每一页显示...
2019-04-08 09:06:32 5135 1
原创 风琴导航跳转
首先设置几个a标签并放在一个盒子然后为a标签设置样式和css3动画然后再设置一个盒子并放置一张图片为其设置样式然后再设置几个相同的页面最后在a标签里设置跳转这样就可以设置简易的风琴导航跳转点击即可跳转页面...
2019-01-26 20:53:11 207
原创 利用JQuery随机位置弹出弹窗
首先引入一个JQuery &lt;script src="~/JQuery/layui-v2.4.5/layui/layui.js"&gt;&lt;/script&gt;然后设置内容并把它放在一个函数里 function xh() { layui.use('layer', function () { var layer = layui
2019-01-19 09:33:54 1438
原创 利用循环输出文字
首先设置一个循环的函数var arr =1; var i = 0; function xh(i, arr) { var arr = 1; var i = 0; if(i>arr){ false; } else { ...
2019-01-18 09:05:43 1089 1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人