source is null for getProperty(null, “name“)

source is null for getProperty(null, “name”)

这个问题的发生一般是在 Mapper.xml 的 sql语句中出错。

我在项目中使用到了,用到了XML中的判断条件查询方式,代码如下:

<if test="employee.name != null and employee.name != ''">
    AND e.`name` LIKE CONCAT( '%', #{employee.name}, '%' )
</if>

上述语句的简单来说,当传过来的employee.name不等于 null 并且不等于 '' ,就按这个条件查询,这时候运行项目,报错:

source is null for getProperty(null, “name”)

这时候可能有两个原因:

一、你并没有对应的对象参数

你可以查看方法参数中是否有对应的对象参数

例如:我这个方法中要查看是否有 employee

//  错误
List<Employee> getEmployee();

//  正确
List<Employee> getEmployee(Employee employee);
二、有对应对象,但是对象传值为NULL

这种情况可以在外层加入判断:

<if test="employee != null and employee != '' ">
	<if test="employee.name != null and employee.name != ''">
       AND e.`name` LIKE CONCAT( '%', #{employee.name}, '%' )
    </if>
</if>

这样,没有传入任何参数时,也不会报错了

个人博客为:
MoYu’s HomePage

### 修改 Source 文件或配置文件的方式 #### 1. 将配置信息从代码中分离到外部配置文件 为了更好地管理和维护配置信息,可以将配置信息从源代码中分离出来并存储在外部配置文件中。这种方式允许通过修改配置文件来调整应用程序行为,而无需更改源代码[^1]。 #### 2. 加载配置文件的具体操作流程 如果需要加载已有的配置文件,在项目环境中可以通过特定选项完成此过程。例如,在某些集成开发环境 (IDE) 中,可以选择 `Options -> Load Configuration` 来指定所需的配置文件位置。一旦成功加载配置文件,项目的运行时行为将会依据该配置文件的内容进行调整[^2]。 #### 3. 创建和编辑 `.properties` 类型的配置文件 对于 Java 应用程序而言,通常会在类路径下创建 `.properties` 文件用于保存配置项。例如,可以在资源目录 (`resources`) 下新建名为 `person.properties` 的文件,并定义键值对形式的属性: ```properties person.name=迪丽热巴 person.age=27 ``` 上述配置可通过读取工具动态加载至 Bean 对象或其他数据结构中以便于后续处理[^3]。 #### 4. 更新现有的配置文件内容 假设有一个既定的配置文件 `pro.properties`,其初始内容可能如下所示: ```properties city=beijing,shanghai name=zhang san ``` 当需要对其进行更新时,只需直接编辑对应的键值对即可。比如要新增城市或者改变名称,则可以直接修改为: ```properties city=beijing,shanghai,guangzhou name=lisi ``` 这种简单的文本替换方式能够快速实现对应用逻辑的影响而不必重新编译整个 project[^4]。 #### 示例代码展示如何读取 properties 文件中的值 以下是基于 Java 编程语言的一个简单例子,演示了怎样利用 Properties API 去访问这些预先设定好的参数: ```java import java.io.InputStream; import java.util.Properties; public class ConfigLoader { public static void main(String[] args) throws Exception{ Properties prop = new Properties(); try(InputStream input = ConfigLoader.class.getClassLoader().getResourceAsStream("pro.properties")){ if(input == null){ System.out.println("Sorry, unable to find pro.properties"); return ; } //load a properties file from class path resource prop.load(input); String cityName = prop.getProperty("city"); String userName = prop.getProperty("name"); System.out.println("City Name : "+ cityName); System.out.println("User Name : "+ userName); }catch(Exception e){ e.printStackTrace(); } } } ``` 以上代码片段展示了如何定位以及解析位于类路径下的 `pro.properties` 文件内的具体条目。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值