java判断对象无数据_Java 判断实体对象及所有属性是否为空的操作
1、判断实体对象是否为空
2、判断对象所有属性是否为空
3、特别注意,实体类中如果有基本数据类型,会影响判断
package com.liuxd.object;
import org.apache.commons.lang3.StringUtils;
import java.lang.reflect.Field;
/**
* Created by Liuxd on 2018/11/2.
*/
public class TestEntity {
public static void main(String[] args) {
User user1 = new User("Jack", "male", 17);
User user2 = new User();
boolean u1Flag = checkObjAllFieldsIsNull(user1);
boolean u2Flag = checkObjAllFieldsIsNull(user2);
System.out.println("user1 是否为空:" + u1Flag);
System.out.println("user2 是否为空:" + u2Flag);
}
/**
* 判断对象中属性值是否全为空
*
* @param object
* @return
*/
public static boolean checkObjAllFieldsIsNull(Object object) {
if (null == object) {
return true;
}
try {
for (Field f : object.getClass().getDeclaredFields()) {
f.setAccessible(true);
System.out.print(f.getName() + ":");
System.out.println(f.get(object));
if (f.get(object) != null && StringUtils.isNotBlank(f.get(object).toString())) {
return false;
}
}
} catch (Exception e) {
e.printStackTrace();
}
return true;
}
}
实体类:
package com.liuxd.object;
/**
* Created by Liuxd on 2018/11/2.
*/
public class Uwww.cppcns.comser {
private String name;
private String gender;
/**
* 如果属性类型为基本数据类型,则会有默认值
* 影响正确判断,请特别注意
*/
// private int age;
private Integer age;
public User() {
}
public User(String name, String gender, int age) {
this.name = name;
this.gender = gender;
this.age = age;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getGender() {
return gender;
}
public void setGender(String gender) {
this.gender = gender;
}
public Integer getAge() {
return age;
}
public void setAge(Integer age) {
this.age = age;
}
}
输出结果:
name:Jack
name:null
gender:null
age:null
user1 是否为空:false
user2 是否为空:true
补充知识:java 读取mongo数据库数据并直接下载,省略中间文件
插入测试数据:
package com.haiyoung.biz;
import org.bson.Document;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.mongodb.core.MongoTemplate;
import org.springframework.stereotype.Service;
import java.util.ArrayList;
import java.util.List;
/**
* Created by Haiyoung on 2018/4/1.
*/
@Service
public class MongoTest {
@Autowired
private MongoTemplate mongoTemplate;
/**
* 添加测试数据
*/
public void addData(){
List list = new ArrayList<>();
int count = 0;
for(int i=0;i<10000;i++){
Document doc = new Document();
doc.append("key","key"+i);
list.add(doc);
count++;
if(count % 300 == 0){//每 300 调条插入一次数据
mongoTemplate.insert(list, "collection_tes
import com.haiyoung.biz.MongoTest;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.test.context.junit4.SpringRunner;
@RunWith(SpringRunner.class)
@SpringBootTest
public class DatabaseDownloadApplicationTests {
@Autowired
private MongoTest mongoTest;
@Test
public void insertData(){
mongoTest.addData();
}
}
下载服务类:
package com.haiyoung.biz.db_download;
import com.google.gson.Gson;
import com.mongodb.DBObject;
import com.mongodb.MongoException;
import org.bson.Document;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.dao.DataAccessException;
import org.springframework.data.mongodb.core.DocumentCallbackHandler;
import org.springframework.data.mongodb.core.MongoTemplate;
import org.springframework.data.mongodb.core.query.Query;
import org.springframework.stereotype.Service;
import java.util.ArrayList;
import java.util.List;
@Service
public class MongoDownloadServiceVwsWJON {
@Autowired
private MongoTemplate mongoTemplate;
public interface MongoCollectionPrinter{
void print(List returnList);
void close();
}
/**
* 导出并下载数据的方法
*
* @param collectionName 要导出数据的集合名称
* @param batchNum 批量写入
* @param printer 实现下载
*/
public void export(String collectionName, int batchNum, MongoCollectionPrinter printer){
List returnList = new ArrayList<>();
Query query = new Query();
mongoTemplate.executeQuery(query, collectionName, new DocumentCallbackHandler() {
@Override
public void processDocument(Document document) throws MongoException, DataAccessException {
returnList.add(document);
if(returnList.size() % batchNum == 0){
printer.print(returnList);
returnList.http://www.cppcns.comclear();
}
}
});
if(!returnList.isEmpty()){
printer.print(returnList);
returnList.clear();
}
}
}
服务实现及web映射
package com.haiyoung.biz.db_download;
import com.google.gson.Gson;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.io.OutputStream;
import java.net.URLEncoder;
import java.util.List;
@Controller
@RequestMapping(value = "/page")
public class MongoDownloadController {
@Autowired
private MongoDownloadService mongoDownloadService;
private static String[] IEBrowserSignals = {"MSIE", "Trident", "Edge"};
/**
* 判断浏览器类型
*
* @param request
* @return
*/
private static boolean isMSBrowser(HttpServletRequest request){
String userAgent = request.getHeader("User-Agent");
for(String signal : IEBrowserSignals){
if(userAgent.contains(signal)){
return true;
}
}
return false;
}
/**
* 实现 MongoCollectionPrinter 接口
* 重写 print 和 close 方法
*/
public static class DownloadPrinter implements MongoDownloadService.MongoCollectionPrinter {
private OutputStream output = null;
private DownloadPrinter(HttpServletResponse response, String fileName) {
response.reset();// 清除 response 中的状态码以及headers
response.setContentType("application/x-msdownload");//设置文件类型
response.setHeader("Content-Disposition",
"attachment; filename=\""+fileName+"\"");// 设置文件名
try {
output = response.getOutputStream();// 获取输出流
} catch (IOException e) {
throw new RuntimeException(e);
}
}
@Override
public void print(List returnList) {
try {
output.write(new Gson().tojson(returnList).getBytes("UTF-8"));
} catch (IOException e) {
throw new RuntimeException(e);
}
}
@Override
public void close() {
try {
output.flush();
output.close();
} catch (IOException e) {
throw new RuntimeException(e);
}finally {
if (output !=null){
try {
output.close();
} catch (IOException e) {
throw new RuntimeException(e);
}
}
}
}
}
@RequestMapping(value = "/download")
public void export(HttpServletRequest request, HttpServletResponse response,
@RequestParam(value = "collectionName") String collectionName){
try {
String fileName = collectionName+".txt";
www.cppcns.comif(isMSBrowser(request)){
fileName = URLEncoder.encode(fileName, "UTF-8");
}else{
fileName = new String(fileName.getBytes("UTF-8"),"ISO-8859-1");
}
DownloadPrinter printer = new DownloadPrinter(response, fileName);
mongoDownloadService.export(collectionName, 300, printer);
printer.close();
}catch (Exception e){
throw new RuntimeException(e);
}
}
}
源代码链接:https://github.com/Haiyoung/HyProject/tree/master/database-download
以上这篇Java 判断实体对象及所有属性是否为空的操作就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持我们。
本文标题: Java 判断实体对象及所有属性是否为空的操作
本文地址: http://www.cppcns.com/ruanjian/java/368419.html
java判断对象无数据_Java 判断实体对象及所有属性是否为空的操作相关推荐
- java判断对象无数据_java 对象属性不能为空判断
如何判断一个对象里的属性是否都为空的 怎么判断一个对象里的属性是否都为空的怎么判断一个对象里的属性是否都为空的,或者判断该对象是否是一个实体!引用:怎么判断一个对象里的属性是否都为空的,或者判断该对象 ...
- java判断对象无数据_java利用反射机制判断对象的属性是否为空以及获取和设置该属性的值...
1.java利用反射机制判断对象的属性是否为空: Map validateMap = new LinkedHashMap(); validateMap.put("serial", ...
- java 判断对象的属性是否为空_Java 判断实体对象及所有属性是否为空的操作
1.判断实体对象是否为空 2.判断对象所有属性是否为空 3.特别注意,实体类中如果有基本数据类型,会影响判断 package com.liuxd.object; import org.apache.c ...
- Java 反射将配置文件数据加载到对象属性中
Java 反射将配置文件数据加载到对象属性中 Java 反射 可以根据类名找到相应的类,也可以将配置文件中的值加载到对应属性中. 需要用到的包:spring-core-3.1.2.Release.ja ...
- java memcached 存储对象_java – 从Memcache中获取低级别数据存储区实体对象时的慢速反序列化...
事实证明,检索存储内存缓存的低级数据存储实体非常缓慢.由于objectify将实体缓存为低级数据存储区实体类型,因此当使用objectify从memcache中获取许多实体时,这会导致性能不佳. 真正 ...
- java判断时间是不是星期五_Java判断当前日期是星期几
参考链接地址:http://blog.csdn.net/a9529lty/article/details/3206942 /** * 判断当前日期是星期几 * @param pTime 修要判断的时间 ...
- java excel data 导入数据_java实现导入导出excel数据
项目需要,要实现一个导入导出excel的功能,于是,任务驱动着我学习到了POI和JXL这2个java操作Excel的插件. 一.POI和JXL介绍 1.POI:是对所有office资源进行读写的一套工 ...
- java建立类的思想_JAVA类和对象创建
面向对象 学习目标: 理解面向对象的编程思想 理解类与对象的关系 如何创建类与对象 方法重载 一:什么是面向对象编程(OOP) 面向对象编程(Object Oriented Programming,O ...
- java编写教师类输出_Java类和对象的区别和联系,超简单易懂!
在面向对象的编程语言中,类和对象必然是最核心的特性之一.本文主要介绍Java中的类和对象. 示例 以班级成员为例,班上有小红.小明.小李,还有王老师.张老师和魏老师,我们认为他们都属于"人类 ...
- java类对象实验问题_Java类与对象实验答案
Java类与对象实验答案Tag内容描述: 1.Java实验报告 计科.信工版2013-2014-2 实验报告 一.实验项目:类与对象 二.实验目的: 1. 学会使用类来封装对象的属性和功能 2. 掌握 ...
最新文章
- Django博客系统(状态保持)
- 我有个师兄,毕业后投身了学术自媒体行业
- LINUX学习笔记高度浓缩版之一 :用户管理、启动过程、硬盘管理
- web服务器与网页表单通信,前端与后端通信的几种方式
- C++实现插值查找(附完整源码)
- Winform VS2015打包
- 遇到网络问题你是怎么解决的?
- 复杂知识图谱问答综述方法、挑战和解决办法
- 等额本金等额本息推导
- 苹果电子邮件怎么注册_无需购买 iPhone,可以使用哪些苹果的优质服务?
- 文档词频矩阵_对论文“从词向量到文档距离”的理解
- 芝加哥大学校长:诺贝尔奖人才是怎样炼成的?
- 阿里IOT云飞燕平台的使用和感悟。
- serviceBattery mac换电池 mac怎么换电池mac拆机
- Hadoop之Lzo压缩配置
- 用python编写AutoCAD插件日志
- 生成式对抗网络(GAN)实战——书法字体生成练习赛
- 自动化测试工程师应聘要求
- Twitter只剩下两个硬核程序员了!
- ANSYS经典界面出图技巧总结
热门文章
- Vue3初始化需要安装的插件
- datax 不识别字段过滤_初效空气过滤器种类
- yarn临时目录 没有jar包_Yarn(Haoop组件之一)介绍
- linux中安装mysql_Linux下安装MySQL
- 光电转换模块_针对100G QSFP28 SR4光模块的特征及工作原理进行分析
- 从架构设计到系统实施-基于.NET 3.0的全新企业应用之基于WCF的系统服务
- leetcode-155-最小栈
- IDEA中 GIT与SVN版本控制插件的切换
- Python:bs4的使用
- 通过ODBC接口访问人大金仓数据库