黑马程序员Javaweb综合案例错误总结整理
案例整理(呕心沥血的教训)
其他的我大部分还是不知道那里出了问了,我这个新建的项目must3终于成功了
那个品牌名称和企业名称没有,是要在BrandMapper里加注解@ResultMap
一直报那个com.alibaba:fastjson,找不到,最后在Project->Artifacts->xxx:war exploded->lib->library中把三个都加进去servlet才 显示数据
第二天的问题
这Servlet中的这里面可能不能有中文,有中文就识别不了
response.getWriter().write("sss");//我原本是写的"哈哈哈添加成功了"
数据库表tb_brand写成了brand
做删除功能时,前端id传不进去
int id = JSON.parseObject(params, int.class)//这个不行,int改为Integer就可以进来了
上面id解决了,但是从html页面获取的id还是传不进servlet,最终用(热爱编程的小白白)的代码成功了
id传进去后,点删除,数据库并没有操作,后来检查发现是没有提交事务
修改功能:
servlet中response没有修改"sss"为"uuu"
html中update_1()方法没有传递index,row参数
BrandServiceImpl里又忘记添加事务回滚,服
最后一个问题,一直修改不成功,问题肯定初中BrandMapper里面,最后把注解的代码删掉,换成xml的,就成功了.也不知道为啥
批量修改:
BrandServiceImpl里又忘记添加事务回滚,服*2
let selectionElement = this.multipleSelection[i];//这里不能直接在multipleSelection[i].id
this.selectIds[i] = selectionElement.id;最后一个问题:点完确认删除后,页面没有刷新,因为reps不对
alert("resp=" + resp.data)//resp=yeah
alert("resp=" + resp)//resp=[object Object]
if(resp.data === "yeah"){//这里我原本写的是resp === "yeah"
我测试发现没有写回滚代码,也能正常提交事务的
分页查询(后端代码)
要再过一遍
问题一:
String b = request.getParameter("b");
int b2 = Integer.parseInt(b);//就是我再浏览器传参数写的是b2=xxx,但是应该写b=xxx
问题二:品牌名称和企业名称出不了是因为sql语句上面忘记添加@ResultMap("brandResultMap")
问题三:换页了后没有刷新查询,因为没有在方法里加this.selectAll()
//分页,分条
handleSizeChange(val) {
console.log(`每页 ${val} 条`);
this.pageSize = val;
this.selectAll();//zh
},
handleCurrentChange(val) {
console.log(`当前页: ${val}`);
this.currentPage = val;
this.selectAll();
}
条件搜索
问题一:在前端ajax中传完参数重新查询时报错
Uncaught (in promise) TypeError: this.selectAll is not a function
代码:
}).then(function (resp){//这一行代码的问题 axios.post("http://localhost:8080/must3_war/deleteServlet",row.id).then((resp)=> {
if (resp.data === "ddd") {
this.selectAll();
then中
使用了function callback
,因此在回调函数里面,this是指向HTTP request event,已经不是外部的默认vue对象
了。
简而言之就是then里面不能用this,外面可以用
详情:
https://blog.csdn.net/IT__learning/article/details/114280525
问题二:selectAll方法一直把数据传不进去,还是Mapper.xml里没有把相关字段映射
<if test="brand.brandName != null and brand.brandName != ''">
and brand_name like #{brand.brandName}//这里原本都没有加brand.
问题三:
select count(*) from tb_brand//错误:select count (*) from tb_brand
这个sql语句仅仅是因为count后面加了个空格就无法实现,我艹了
总结mybatis中where查询
where中test为true则加入sql语句中
if、choose、when、otherwise比较
if是直接拼接,重点说一下choose语句
choose(单条件查询)
只有一个条件生效,也就是只执行满足的条件when,没有满足的条件就执行otherwise,表示默认条件。
<where>
<choose>
<when test="brand.status != null"><!--相当于case-->
status = #{brand.status}
</when>
<when test="brand.companyName != null and brand.companyName != '' "><!--相当于case-->
company_name like #{brand.companyName}
</when>
<when test="brand.brandName != null and brand.brandName != ''"><!--相当于case-->
brand_name like #{brand.brandName}
</when>
</choose>
</where>
limit #{begin}, #{size}
在我搜索的时候,用choose就是只要前面有值,就只查询这一个,第二个无论填什么也不报错,也不查询,相当于没有这条语句
其实就可以按照switch-case来理解,单条件查询,可以-用做下拉框单条件查询功能
where+if(多条件查询)
select *
from tb_brand
<where>
<if test="brand.status != null"><!--相当于case-->
and status = #{brand.status}
</if>
<if test="brand.companyName != null and brand.companyName != '' "><!--相当于case-->
and company_name like #{brand.companyName}
</if>
<if test="brand.brandName != null and brand.brandName != ''"><!--相当于case-->
and brand_name like #{brand.brandName}
</if>
</where>记得加and
模糊查询(在service里面改一下实体)
String brandName = brand.getBrandName();
if (brandName != null && brandName.length() > 0) {
brand.setBrandName("%" + brandName + "%");
}
多条件的话记得判断数据是否为空
修改status显示的值
public String getStatusStr_ghy() {
if (status == null) {
return "未知";
}
return status == 0 ? "禁用" : "启用";
}
这里getStatusStr_ghy完全没有任何定义,也可以传到前端去,但是一定要注意这个S要小写,得传statusStr_ghy这个字符串
B站弹幕:
1.fastjson 将对象转为JSON字符串,用的应该是get方法,键是方法名去掉get首字母小写
2.虽然实体类中没有定义statusStr变量,但有getStatusStr这个方法,这里应该是通过get的方法获取prop的
3.而prop对应的status属性,在mabtis中查询的时候对应getStatus方法,同样改为statusStr则对应GetStatusStr方法
黑马程序员Javaweb综合案例错误总结整理的更多相关文章
- 大数据-将MP3保存到数据库并读取出来《黑马程序员_超全面的JavaWeb视频教程vedio》day17
黑马程序员_超全面的JavaWeb视频教程vedio\黑马程序员_超全面的JavaWeb教程-源码笔记\JavaWeb视频教程_day17-资料源码\day17_code\day17_1\ 大数据 目 ...
- 【黑马18期Java毕业生】黑马程序员Java全套资料+视频+工具
Java学习路线图引言: 黑马程序员:深知广大爱好Java的人学习是多么困难,没视频没资源,上网花钱还老被骗. 为此我们历时一个月整理这套Java学习路线图,不管你是不懂电脑的小 ...
- 黑马程序员:Java基础总结----泛型(高级)
黑马程序员:Java基础总结 泛型(高级) ASP.Net+Android+IO开发 . .Net培训 .期待与您交流! 泛型(高级) 泛型是提供给javac编译器使用的,可以限定集合中的输入类型 ...
- 黑马程序员:3分钟带你读懂C/C++学习路线
随着互联网及互联网+深入蓬勃的发展,经过40余年的时间洗礼,C/C++俨然已成为一门贵族语言,出色的性能使之成为高级语言中的性能王者.而在今天,它又扮演着什么样重要的角色呢?请往下看: 后端服务器,移 ...
- 黑马程序员+SQL基础(上)
黑马程序员+SQL基础 ---------------<a href="http://edu.csdn.net"target="blank">ASP ...
- 黑马程序员+Winform基础(上)
黑马程序员+Winform基础 ---------------<a href="http://edu.csdn.net"target="blank"> ...
- 黑马程序员:Java基础总结----枚举
黑马程序员:Java基础总结 枚举 ASP.Net+Android+IO开发 . .Net培训 .期待与您交流! 枚举 为什么要有枚举 问题:要定义星期几或性别的变量,该怎么定义?假设用1-7分别 ...
- 黑马程序员:Java基础总结----GUI图形化界面
黑马程序员:Java基础总结 GUI图形化界面 ASP.Net+Android+IO开发 . .Net培训 .期待与您交流! GUI(Graphical User Interface)图形化界 ...
- 黑马程序员:轻松精通Java学习路线连载1-基础篇!
编程语言Java,已经21岁了.从1995年诞生以来,就一直活跃于企业中,名企应用天猫,百度,知乎......都是Java语言编写,就连现在使用广泛的XMind也是Java编写的.Java应用的广泛已 ...
- 【黑马程序员C++ STL】学习记录
黑马程序员 2017 C++ STL 教程(STL 部分已完结) 基于黑马STL课程整理:黑马程序员2017C++STL教程 视频链接 专栏:本STL专栏目录 文章目录 黑马程序员 2017 C++ ...
随机推荐
- CSS常用属性(3)
(9) list-style(列表样式) 类型 list-style-type: disc | circle | square | decimal | lower-roman | upper-roma ...
- golang拾遗:实现一个不可复制类型
这是golang拾遗系列的第六篇.这个系列主要用来记录一些平时不常见的知识点,偶尔也会实现些有意思的小功能,比如这篇. golang拾遗系列目录: golang拾遗:指针和接口 golang拾遗:为什 ...
- wordpress配置指南
1.创建资源 在页面左侧,单击 云产品资源 下拉列表,查看本次实验所需资源. 单击屏幕右侧 创建资源 ,免费创建当前实验所需云产品资源. 资源创建过程需要1~3分钟.完成实验资源的创建后,您可以在 云 ...
- Mac监控键盘输入并执行动作
背景 电脑的安全是非常重要的,特别是里面的敏感数据,若是被有心之人利用,那后果不堪设想. 所以我们部门定下了一个规矩,谁离开工位要是不锁屏,就可以在部门群发送一个消息:我请大家吃鸡翅. oh,技术出身 ...
- Prometheus插件安装(mysql_exporter)
Prometheus插件安装(mysql_exporter) 简介 mysql_exporter是用来收集MysQL或者Mariadb数据库相关指标的,mysql_exporter需要连接到数据库并有 ...
- JS结束时间与当前时间间隔
实现内容: 1.时间戳 1587024986952 转成年月日时分秒 2020-04-16 16:16:46 2.当前时间new Date()转成年月日时分秒2019-04-17 10:27:27 3 ...
- 【大型软件开发】开发日志(五).net框架与C++的融合:CLR——C++调用C#的DLL
做什么? 先说一下场景,现在正在开发一个Qt ActiveServer,也就是用一个应用程序去向其他的组件暴露接口,以达到提供服务的目的. 然后新版的框架要提供大部分功能,也就是要重做大部分模块.现在 ...
- Canonical为所有支持的Ubuntu LTS系统发布了新的Linux内核更新
Canonical近日为所有支持的Ubuntu LTS系统发布了新的Linux内核更新,以解决总共19个安全漏洞. 新的Ubuntu内核更新仅适用于长期支持的Ubuntu系统,包括Ubuntu 22. ...
- Python爬虫-爬取17K小说
随笔记录方便自己和同路人查阅. #------------------------------------------------我是可耻的分割线--------------------------- ...
- 【转载】python解决文本乱码问题及文本二进制读取后的处理
转自:https://blog.csdn.net/u011316258/article/details/50450079 python解决文本乱码问题及文本二进制读取后的处理 吲哚乙酸 当文本中含有很 ...