java.lang.NoSuchMethodException_Error querying database. Cause: org.apache.ibatis.reflection.Reflec

java.lang.NoSuchMethodException_Error querying database. Cause: org.apache.ibatis.reflection.Reflec解决办法。

原因是没有提供空的构造方法

在实体类中提供了有参构造器,忽略了提供无参构造器,那么无参构造器就会被有参构造器覆盖。而恰巧mybatis需要调用该类的空构造器来完成实例化。所以会报下面的异常。

Error querying database. Cause: org.apache.ibatis.reflection.ReflectionException: Error instantiating class net.neuedu.sm.domain.Users with invalid types () or values (). Cause: java.lang.NoSuchMethodException: net.neuedu.sm.domain.Users.()

The error may exist in file [D:\Users\Hero_mo\Documents\workspace-sts-3.9.9.RELEASE\mybatis_1026_sm_dao\build\classes\mapper\UserMapper.xml]

The error may involve user.queryUserById-Inline

The error occurred while setting parameters
SQL: select * from t_user where id=?

在这里插入图片描述
在这里插入图片描述

再去看了一眼我的实体类:
果然,少了一个空的构造方法

实体类提供了有参构造方法必须提供无参构造方法

package net.neuedu.sm.domain;

import java.io.Serializable;
import java.util.Date;

public class Users implements Serializable{
	private static final long serialVersionUID = 1918093918350712996L;
	private Integer id;
	private String username;
	private Date brithday;
	private String address;
	public Integer getId() {
		return id;
	}
	public void setId(Integer id) {
		this.id = id;
	}
	public String getUsername() {
		return username;
	}
	public void setUsername(String username) {
		this.username = username;
	}
	public Date getBrithday() {
		return brithday;
	}
	public void setBrithday(Date brithday) {
		this.brithday = brithday;
	}
	public String getAddress() {
		return address;
	}
	public void setAddress(String address) {
		this.address = address;
	}
	@Override
	public String toString() {
		return "Users [id=" + id + ", username=" + username + ", brithday=" + brithday + ", address=" + address + "]\n";
	}
	/**
	 * @param id
	 * @param username
	 * @param brithday
	 * @param address
	 */
	public Users(Integer id, String username, Date brithday, String address) {
		super();
		this.id = id;
		this.username = username;
		this.brithday = brithday;
		this.address = address;
	}	
}
### DVWA 文件上传功能详细教程 #### 了解文件上传漏洞原理 文件上传漏洞允许攻击者向服务器上传恶意文件,通常是一句话木马。一旦成功上传并执行这些文件,攻击者就能获得对网站目录甚至整个系统的控制权限[^2]。 #### 准备工作 为了进行DVWA中的文件上传实验,需先完成如下准备工作: - **安装配置DVWA环境**:按照相关指南,在Windows环境下使用phpStudy搭建DVWA站点[^4]。 - **启动Kali Linux平台**:作为渗透测试的操作系统,确保已正确安装并能正常运行。 - **设置Burp Suite代理**:用于拦截和修改HTTP请求数据包,以便于分析和操控文件上传过程[^3]。 #### 开始文件上传挑战 进入DVWA主页后选择`File Upload`选项卡开始练习: 1. 页面显示了一个简单的表单,其中包含两个输入框——一个是供用户选择要上传的文件;另一个则是指定目标存储位置(此字段可能被隐藏或禁用)。 2. 默认情况下,该模块的安全级别设为低级(low),这意味着几乎没有任何防护措施阻止非法文件类型的提交。 3. 尝试上传一个普通的图片文件(如.jpg),观察其行为表现,并注意查看返回的消息提示以及确认文件确实保存到了预期路径下。 #### 提升难度至中级(medium) 当把安全等级调整到medium时,程序会对所选文件进行了初步验证,只接受特定扩展名结尾的照片类文档(.jpg,.png等)。此时可尝试以下方法绕过检测机制: - 更改待传对象的真实MIME类型; - 修改客户端脚本逻辑以欺骗服务端判断依据; 值得注意的是上述两种方式均违反道德准则和技术伦理,请仅限学习研究目的内实践! #### 高级(high)模式下的对抗技巧 在最高级别的保护状态下,除了延续之前的过滤规则外还增加了基于内容特征码黑名单匹配算法。面对这种情况建议采用更隐蔽的技术手段比如但不限于: - 利用PHP特性构造特殊格式的一句话WebShell; - 结合其他漏洞组合拳出击实现最终突破效果; 不过出于合法合规考虑这里不再展开具体细节描述。 ```bash # 使用curl命令模拟POST请求发送带payload的数据流给远程web应用接口 $ curl -F "uploaded=<;php eval($_POST['cmd']);?>" http://target.com/dvwa/hackable/uploads/ ```
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

code_mo

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值