- package cn.chn.chen.dev.excel;
- 02
- 03 import java.lang.annotation.ElementType;
- 04 import java.lang.annotation.Retention;
- 05 import java.lang.annotation.RetentionPolicy;
- 06 import java.lang.annotation.Target;
- 07
- 08 /**
- 09 * <p>
- 10 * ExcelAnnotation类主要用于-.
- 11 * </p>
- 12 * <p>
- 13 * 创建时间 2011-4-18 - 下午10:05:47
- 14 * </p>
- 15 * <blockquote>
- 16 * <h4>历史修改记录</h4>
- 17 * <ul>
- 18 * <li>修改人 修改时间 修改描述
- 19 * </ul>
- 20 * </blockquote>
- 21 * <p>
- 22 * copyright cd×××× 2010-2011, all rights reserved.
- 23 * </p>
- 24 *
- 25 * @author IT山人
- 26 * @since 1.0
- 27 * @version 1.0
- 28 */
- 29 @Retention(RetentionPolicy.RUNTIME)
- 30 @Target(ElementType.FIELD)
- 31 public @interface ExcelAnnotation {
- 32 // excel导出时标题显示的名字,如果没有设置Annotation属性,将不会被导出和导入
- 33 public String exportName();
- 34 }
- ExcelStyle.java;
- 01 package cn.chn.chen.dev.excel;
- 02
- 03 import org.apache.poi.hssf.usermodel.HSSFCellStyle;
- 04 import org.apache.poi.hssf.usermodel.HSSFFont;
- 05 import org.apache.poi.hssf.usermodel.HSSFWorkbook;
- 06 import org.apache.poi.hssf.util.HSSFColor;
- 07
- 08 /**
- 09 * <p>
- 10 * ExcelStyle类主要用于-excel导出样式控制.
- 11 * </p>
- 12 * <p>
- 13 * 创建时间 2011-4-21 - 下午12:43:11
- 14 * </p>
- 15 * @author IT山人
- 16 */
- 17 public class ExcelStyle {
- 18 public static HSSFCellStyle setHeadStyle(HSSFWorkbook workbook,
- 19 HSSFCellStyle style) {
- 20 style.setFillForegroundColor(HSSFColor.SKY_BLUE.index);
- 21 style.setFillPattern(HSSFCellStyle.SOLID_FOREGROUND);
- 22 style.setBorderBottom(HSSFCellStyle.BORDER_THIN);
- 23 style.setBorderLeft(HSSFCellStyle.BORDER_THIN);
- 24 style.setBorderRight(HSSFCellStyle.BORDER_THIN);
- 25 style.setBorderTop(HSSFCellStyle.BORDER_THIN);
- 26 style.setAlignment(HSSFCellStyle.ALIGN_CENTER);
- 27 // 生成字体
- 28 HSSFFont font = workbook.createFont();
- 29 font.setColor(HSSFColor.VIOLET.index);
- 30 font.setFontHeightInPoints((short) 12);
- 31 font.setBoldweight(HSSFFont.BOLDWEIGHT_BOLD);
- 32 // 把字体应用到当前的样样式
- 33 style.setFont(font);
- 34 return style;
- 35
- 36 }
- 37
- 38 public static HSSFCellStyle setbodyStyle(HSSFWorkbook workbook,
- 39 HSSFCellStyle style) {
- 40 style.setFillForegroundColor(HSSFColor.LIGHT_YELLOW.index);
- 41 style.setFillPattern(HSSFCellStyle.SOLID_FOREGROUND);
- 42 style.setBorderBottom(HSSFCellStyle.BORDER_THIN);
- 43 style.setBorderLeft(HSSFCellStyle.BORDER_THIN);
- 44 style.setBorderRight(HSSFCellStyle.BORDER_THIN);
- 45 style.setBorderTop(HSSFCellStyle.BORDER_THIN);
- 46 style.setAlignment(HSSFCellStyle.ALIGN_CENTER);
- 47 style.setVerticalAlignment(HSSFCellStyle.VERTICAL_CENTER);
- 48 // 生成字体
- 49 HSSFFont font = workbook.createFont();
- 50 font.setBoldweight(HSSFFont.BOLDWEIGHT_NORMAL);
- 51 // 把字体应用到当前的样样式
- 52 style.setFont(font);
- 53 return style;
- 54 }
- 55 }
- 1 ImportExcel.java;
- 001 package cn.chn.chen.dev.excel;
- 002
- 003 import java.io.File;
- 004 import java.io.FileInputStream;
- 005 import java.lang.reflect.Field;
- 006 import java.lang.reflect.Method;
- 007 import java.lang.reflect.Type;
- 008 import java.text.SimpleDateFormat;
- 009 import java.util.ArrayList;
- 010 import java.util.Collection;
- 011 import java.util.HashMap;
- 012 import java.util.Iterator;
- 013 import java.util.List;
- 014 import java.util.Map;
- 015
- 016 import org.apache.poi.hssf.usermodel.HSSFSheet;
- 017 import org.apache.poi.hssf.usermodel.HSSFWorkbook;
- 018 import org.apache.poi.ss.usermodel.Cell;
- 019 import org.apache.poi.ss.usermodel.Row;
- 020
- 021 /**
- 022 * <p>
- 023 * ImportExcel类主要用于-Excel导入(POI).
- 024 * </p>
- 025 * <p>
- 026 * 创建时间 2011-4-18 - 下午10:33:52
- 027 * </p>
- 028 * @author IT山人
- 029 */
- 030 public class ImportExcel<T> {
- 031
- 032 Class<T> clazz;
- 033
- 034 public ImportExcel (Class<T> clazz) {
- 035 this.clazz = clazz;
- 036 }
- 037
- 038 public Collection<T> importExcel(File file, String...pattern) {
- 039 Collection<T> dist = new ArrayList<T>();
- 040 try {
- 041 /**
- 042 * 类反射得到调用方法
- 043 */
- 044 // 得到目标目标类的所有的字段列表
- 045 Field[] fields = clazz.getDeclaredFields();
- 046 // 将所有标有Annotation的字段,也就是允许导入数据的字段,放入到一个map中
- 047 Map<String, Method> fieldMap = new HashMap<String, Method>();
- 048 // 循环读取所有字段
- 049 for (Field field : fields) {
- 050 // 得到单个字段上的Annotation
- 051 ExcelAnnotation excelAnnotation = field.getAnnotation(ExcelAnnotation.class);
- 052 // 如果标识了Annotationd
- 053 if (excelAnnotation != null) {
- 054 String fieldName = field.getName();
- 055 // 构造设置了Annotation的字段的Setter方法
- 056 String setMethodName = "set" + fieldName.substring(0, 1).toUpperCase() + fieldName.substring(1);
- 057 // 构造调用的method
- 058 Method setMethod = clazz.getMethod(setMethodName, new Class[] {field.getType()});
- 059 // 将这个method以Annotaion的名字为key来存入
- 060 fieldMap.put(excelAnnotation.exportName(), setMethod);
- 061 }
- 062 }
- 063
- 064 /**
- 065 * excel的解析开始
- 066 */
- 067 // 将传入的File构造为FileInputStream;
- 068 FileInputStream inputStream = new FileInputStream(file);
- 069 // 得到工作表
- 070 HSSFWorkbook book = new HSSFWorkbook(inputStream);
- 071 // 得到第一页
- 072 HSSFSheet sheet = book.getSheetAt(0);
- 073 // 得到第一面的所有行
- 074 Iterator<Row> row = sheet.rowIterator();
- 075
- 076 /**
- 077 * 标题解析
- 078 */
- 079 // 得到第一行,也就是标题行
- 080 Row titleRow = row.next();
- 081 // 得到第一行的所有列
- 082 Iterator<Cell> cellTitle = titleRow.cellIterator();
- 083 // 将标题的文字内容放入到一个map中
- 084 Map<Integer, String> titleMap = new HashMap<Integer, String>();
- 085 // 从标题第一列开始
- 086 int i = 0;
- 087 // 循环标题所有的列
- 088 while (cellTitle.hasNext()) {
- 089 Cell cell = (Cell) cellTitle.next();
- 090 String value = cell.getStringCellValue();
- 091 titleMap.put(i, value);
- 092 i++;
- 093 }
- 094
- 095 /**
- 096 * 解析内容行
- 097 */
- 098 while (row.hasNext()) {
- 099 // 标题下的第一行
- 100 Row rown = row.next();
- 101 // 行的所有列
- 102 Iterator<Cell> cellBody = rown.cellIterator();
- 103 // 得到传入类的实例
- 104 T tObject = clazz.newInstance();
- 105 // 遍历一行的列
- 106 int col = 0;
- 107 while (cellBody.hasNext()) {
- 108 Cell cell = (Cell) cellBody.next();
- 109 // 这里得到此列的对应的标题
- 110 String titleString = titleMap.get(col++);
- 111 // 如果这一列的标题和类中的某一列的Annotation相同,那么则调用此类的的set方法,进行设值
- 112 if (fieldMap.containsKey(titleString)) {
- 113 Method setMethod = fieldMap.get(titleString);
- 114 //得到setter方法的参数
- 115 Type[] types = setMethod.getGenericParameterTypes();
- 116 //只要一个参数
- 117 String xclass = String.valueOf(types[0]);
- 118 //判断参数类型
- 119 if ("class java.lang.String".equals(xclass)) {
- 120 setMethod.invoke(tObject, cell.getStringCellValue());
- 121 } else if ("class java.util.Date".equals(xclass)) {
- 122 setMethod.invoke(tObject, cell.getDateCellValue());
- 123 } else if ("class java.lang.Boolean".equals(xclass)) {
- 124 Boolean boolName = true;
- 125 if ("否".equals(cell.getStringCellValue())) {
- 126 boolName = false;
- 127 }
- 128 setMethod.invoke(tObject, boolName);
- 129 } else if ("class java.lang.Integer".equals(xclass)) {
- 130 setMethod.invoke(tObject, new Integer(String.valueOf((int)cell.getNumericCellValue())));
- 131 } else if ("class java.lang.Long".equals(xclass)) {
- 132 setMethod.invoke(tObject, new Long(cell.getStringCellValue()));
- 133 } else {
- 134 //
- 135 }
- 136 }
- 137 }
- 138 dist.add(tObject);
- 139 }
- 140
- 141 } catch (Exception e) {
- 142 // TODO: handle exception
- 143 e.printStackTrace();
- 144 return null;
- 145 }
- 146 return dist;
- 147 }
- 148
- 149 public static void main(String[] args) {
- 150 ImportExcel<TestVo> test = new ImportExcel<TestVo>(TestVo.class);
- 151 File file = new File("D:\\testOne.xls");
- 152 List<TestVo> results = (List<TestVo>) test.importExcel(file);
- 153 SimpleDateFormat simpleDateFormat;
- 154 simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd");
- 155 for (TestVo testVo : results) {
- 156 System.out.println(testVo.getName() + "\t" + testVo.getSex() + "\t" + simpleDateFormat.format(testVo.getBrith()));
- 157 }
- 158 }
- 159 }
- 1 ExcelExport.java;
- 001 package cn.chn.chen.dev.excel;
- 002
- 003 import java.io.File;
- 004 import java.io.FileOutputStream;
- 005 import java.io.IOException;
- 006 import java.io.OutputStream;
- 007 import java.lang.reflect.Field;
- 008 import java.lang.reflect.Method;
- 009 import java.text.SimpleDateFormat;
- 010 import java.util.ArrayList;
- 011 import java.util.Collection;
- 012 import java.util.Date;
- 013 import java.util.Iterator;
- 014 import java.util.List;
- 015
- 016 import org.apache.poi.hssf.usermodel.HSSFCell;
- 017 import org.apache.poi.hssf.usermodel.HSSFCellStyle;
- 018 import org.apache.poi.hssf.usermodel.HSSFRichTextString;
- 019 import org.apache.poi.hssf.usermodel.HSSFRow;
- 020 import org.apache.poi.hssf.usermodel.HSSFSheet;
- 021 import org.apache.poi.hssf.usermodel.HSSFWorkbook;
- 022
- 023 /**
- 024 * <p>
- 025 * ExcelExport类主要用于-excel导出(POI).
- 026 * </p>
- 027 * <p>
- 028 * 创建时间 2011-4-21 - 下午12:34:33
- 029 * </p>
- 030 * @author IT山人
- 031 */
- 032 public class ExcelExport<T> {
- 033
- 034 //格式化日期
- 035 SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
- 036
- 037 /**
- 038 * <p>
- 039 * exportExcel方法-poi Excel导出.
- 040 * </p>
- 041 * <p>
- 042 * 创建人 IT山人 创建时间 2011-4-21 - 下午09:36:21
- 043 * </p>
- 044 * @param title 工作簿名称
- 045 * @param dataset 导出的数据集
- 046 * @param out 输出流
- 047 */
- 048 @SuppressWarnings("unchecked")
- 049 public void exportExcel(String title, Collection<T> dataset, OutputStream out) {
- 050 // 声明一个工作薄
- 051 try {
- 052 //首先检查数据看是否是正确的
- 053 Iterator<T> iterator = dataset.iterator();
- 054 if (dataset == null || !iterator.hasNext() || title == null || out == null) {
- 055 throw new Exception("传入的数据不对!");
- 056 }
- 057 //取得实际泛型类
- 058 T tObject = iterator.next();
- 059 Class<T> clazz = (Class<T>) tObject.getClass();
- 060
- 061 HSSFWorkbook workbook = new HSSFWorkbook();
- 062 // 生成一个表格
- 063 HSSFSheet sheet = workbook.createSheet(title);
- 064 // 设置表格默认列宽度为20个字节
- 065 sheet.setDefaultColumnWidth(20);
- 066 // 生成一个样式
- 067 HSSFCellStyle style = workbook.createCellStyle();
- 068 // 设置标题样式
- 069 style = ExcelStyle.setHeadStyle(workbook, style);
- 070 // 得到所有字段
- 071 Field filed[] = tObject.getClass().getDeclaredFields();
- 072
- 073 // 标题
- 074 List<String> exportfieldtile = new ArrayList<String>();
- 075 // 导出的字段的get方法
- 076 List<Method> methodObj = new ArrayList<Method>();
- 077 // 遍历整个filed
- 078 for (int i = 0; i < filed.length; i++) {
- 079 Field field = filed[i];
- 080 ExcelAnnotation excelAnnotation = field.getAnnotation(ExcelAnnotation.class);
- 081 // 如果设置了annottion
- 082 if (excelAnnotation != null) {
- 083 String exprot = excelAnnotation.exportName();
- 084 // 添加到标题
- 085 exportfieldtile.add(exprot);
- 086 // 添加到需要导出的字段的方法
- 087 String fieldname = field.getName();
- 088 String getMethodName = "get" + fieldname.substring(0, 1).toUpperCase() + fieldname.substring(1);
- 089 Method getMethod = clazz.getMethod(getMethodName, new Class[] {});
- 090 methodObj.add(getMethod);
- 091 }
- 092 }
- 093
- 094 // 产生表格标题行
- 095 HSSFRow row = sheet.createRow(0);
- 096 for (int i = 0; i < exportfieldtile.size(); i++) {
- 097 HSSFCell cell = row.createCell(i);
- 098 cell.setCellStyle(style);
- 099 HSSFRichTextString text = new HSSFRichTextString(exportfieldtile.get(i));
- 100 cell.setCellValue(text);
- 101 }
- 102
- 103 // 循环整个集合
- 104 int index = 0;
- 105 iterator = dataset.iterator();
- 106 while (iterator.hasNext()) {
- 107 //从第二行开始写,第一行是标题
- 108 index++;
- 109 row = sheet.createRow(index);
- 110 T t = (T) iterator.next();
- 111 for (int k = 0; k < methodObj.size(); k++) {
- 112 HSSFCell cell = row.createCell(k);
- 113 Method getMethod = methodObj.get(k);
- 114 Object value = getMethod.invoke(t, new Object[] {});
- 115 String textValue = getValue(value);
- 116 cell.setCellValue(textValue);
- 117 }
- 118 }
- 119 workbook.write(out);
- 120 } catch (Exception e) {
- 121 e.printStackTrace();
- 122 }
- 123 }
- 124
- 125 /**
- 126 * <p>
- 127 * getValue方法-cell值处理.
- 128 * </p>
- 129 * <p>
- 130 * 创建人 IT山人 创建时间 2011-4-21 - 下午09:38:31
- 131 * </p>
- 132 * @param value
- 133 * @return
- 134 */
- 135 public String getValue(Object value) {
- 136 String textValue = "";
- 137 if (value == null) {
- 138 return textValue;
- 139 }
- 140 if (value instanceof Boolean) {
- 141 boolean bValue = (Boolean) value;
- 142 textValue = "是";
- 143 if (!bValue) {
- 144 textValue = "否";
- 145 }
- 146 } else if (value instanceof Date) {
- 147 Date date = (Date) value;
- 148 textValue = sdf.format(date);
- 149
- 150 } else {
- 151 textValue = value.toString();
- 152 }
- 153 return textValue;
- 154 }
- 155
- 156 public static void main(String[] args) throws IOException {
- 157 OutputStream out = new FileOutputStream("D:\\testOne1.xls");
- 158 ExcelExport<TestVo> ex = new ExcelExport<TestVo>();
- 159 ImportExcel<TestVo> test = new ImportExcel<TestVo>(TestVo.class);
- 160 File file = new File("D:\\testOne.xls");
- 161 List<TestVo> results = (List<TestVo>) test.importExcel(file);
- 162
- 163 ex.exportExcel("测试", results, out);
- 164 out.close();
- 165 }
- 166 }
- 1 ImportExcell.java;
- 001 package cn.chn.chen.dev.excel;
- 002
- 003 import java.io.File;
- 004 import java.io.FileInputStream;
- 005 import java.io.FileNotFoundException;
- 006 import java.io.IOException;
- 007 import java.text.DecimalFormat;
- 008 import java.text.NumberFormat;
- 009 import java.util.ArrayList;
- 010 import java.util.HashMap;
- 011 import java.util.Iterator;
- 012 import java.util.List;
- 013 import java.util.Map;
- 014
- 015 import org.apache.commons.lang.StringUtils;
- 016 import org.apache.commons.logging.Log;
- 017 import org.apache.commons.logging.LogFactory;
- 018 import org.apache.poi.hssf.usermodel.HSSFCell;
- 019 import org.apache.poi.hssf.usermodel.HSSFDateUtil;
- 020 import org.apache.poi.hssf.usermodel.HSSFSheet;
- 021 import org.apache.poi.hssf.usermodel.HSSFWorkbook;
- 022 import org.apache.poi.ss.usermodel.Cell;
- 023 import org.apache.poi.ss.usermodel.Row;
- 024
- 025 /**
- 026 * <p>
- 027 * ImportExcell类主要用于-.
- 028 * </p>
- 029 * <p>
- 030 * 创建时间 2011-4-21 - 下午04:45:33
- 031 * </p>
- 032 * @author IT山人
- 033 */
- 034 public class ImportExcell {
- 035 private static final Log log = LogFactory.getLog(ImportExcell.class);
- 036 /**
- 037 * <p>
- 038 * readExcel方法-读取excel,行为list,列为Map.
- 039 * </p>
- 040 * <p>
- 041 * 创建人 IT山人 创建时间 2011-4-21 - 下午09:46:33
- 042 * </p>
- 043 * @param file excel文件
- 044 * @return excel表数据集合-行为list,列为Map
- 045 */
- 046 public List<Map<String, String>> readExcel(File file) {
- 047 log.info("读取excel开始...");
- 048 List<Map<String, String>> dataset = new ArrayList<Map<String, String>>();
- 049
- 050 try {
- 051 // 将传入的File构造为FileInputStream;
- 052 FileInputStream inputStream = new FileInputStream(file);
- 053 // 得到工作表
- 054 HSSFWorkbook book = new HSSFWorkbook(inputStream);
- 055 // 得到第一页
- 056 HSSFSheet sheet = book.getSheetAt(0);
- 057 // 得到第一面的所有行
- 058 Iterator<Row> rowIterator = sheet.rowIterator();
- 059
- 060 // 得到第一行,也就是标题行
- 061 @SuppressWarnings("unused")
- 062 Row titleRow = rowIterator.next();
- 063
- 064 while (rowIterator.hasNext()) {
- 065 Row row = rowIterator.next();
- 066 Map<String, String> map = this.creatObjectByRow(row);
- 067 dataset.add(map);
- 068 }
- 069 } catch (FileNotFoundException e1) {
- 070 // TODO Auto-generated catch block
- 071 e1.printStackTrace();
- 072 } catch (IOException e2) {
- 073 // TODO Auto-generated catch block
- 074 e2.printStackTrace();
- 075 } catch (Exception e) {
- 076 // TODO: handle exception
- 077 }
- 078 log.info("读取excel结束...");
- 079 return dataset;
- 080 }
- 081
- 082 /**
- 083 * <p>
- 084 * creatObjectByRow方法-将每行的数据装载Map中.
- 085 * </p>
- 086 * <p>
- 087 * 创建人 IT山人 创建时间 2011-4-21 - 下午09:48:17
- 088 * </p>
- 089 * @param row
- 090 * @return
- 091 */
- 092 private Map<String, String> creatObjectByRow(Row row) {
- 093 // 行的所有列
- 094 Iterator<Cell> cellBody = row.cellIterator();
- 095 // 遍历一行的列
- 096 int col = 1;
- 097 Map<String, String> map = new HashMap<String, String>();
- 098 while (cellBody.hasNext()) {
- 099 String field = String.valueOf(col++);
- 100 Cell cell = cellBody.next();
- 101 if (cell != null) {
- 102 switch (cell.getCellType()) {
- 103 case HSSFCell.CELL_TYPE_STRING: // 字符
- 104 map.put(field, StringUtils.trim(cell.getStringCellValue()));
- 105 break;
- 106 case HSSFCell.CELL_TYPE_BOOLEAN: // 布尔
- 107 map.put(field, StringUtils.trim(cell.getStringCellValue()));
- 108 break;
- 109 case HSSFCell.CELL_TYPE_NUMERIC: // 数字
- 110 if (HSSFDateUtil.isCellDateFormatted(cell)) {// 是否为日期格式
- 111 map.put(field, String.valueOf(cell.getDateCellValue()));
- 112 } else {
- 113 Double cellValue_dob = cell.getNumericCellValue();// 读取cell内数据
- 114 if (String.valueOf(cellValue_dob).length() > 11) { // 如果读取到的是手机号码,需要匹配数字格式
- 115 DecimalFormat format = (DecimalFormat) NumberFormat.getInstance();
- 116 //format.applyPattern("00000000000");
- 117 map.put(field, format.format(cellValue_dob));
- 118 } else { // 如果读取到的是比较短的数字,则去掉尾数(.0)后显示
- 119 map.put(field, cellValue_dob.toString().substring(0, cellValue_dob.toString().length() - 2));
- 120 }
- 121 }
- 122 break;
- 123 case HSSFCell.CELL_TYPE_FORMULA: // 公式
- 124 map.put(field, String.valueOf(cell.getNumericCellValue()));
- 125 break;
- 126 case HSSFCell.CELL_TYPE_BLANK: // 空
- 127 map.put(field, StringUtils.trim(cell.getStringCellValue()));
- 128 break;
- 129 case HSSFCell.CELL_TYPE_ERROR: // 异常
- 130 map.put(field, StringUtils.trim(cell.getStringCellValue()));
- 131 break;
- 132 default:
- 133 map.put(field, StringUtils.trim(cell.getStringCellValue()));
- 134 break;
- 135 }
- 136 }
- 137 }
- 138 return map;
- 139 }
- 140
- 141 public static void main(String[] args) {
- 142 // TODO Auto-generated method stub
- 143 ImportExcell inport = new ImportExcell();
- 144 File file = new File("D:\\testOne.xls");
- 145 List<Map<String, String>> mapList = inport.readExcel(file);
- 146 for (Map<String, String> map : mapList) {
- 147 // Iterator<Entry<String, String>> iterator = map.entrySet().iterator();
- 148 // while (iterator.hasNext()) {
- 149 // Map.Entry<String, String> entry = iterator.next();
- 150 // String key = entry.getKey();
- 151 // String value = entry.getValue();
- 152 // System.out.println("key:" + key + "\tvalue:" + value);
- 153 // }
- 154 TestVo t = new TestVo();
- 155 t.setName(map.get("1"));
- 156 System.out.println(t.getName());
- 157 }
- 158 }
- 159 }
- 1 TestVo.java;
- 01 public class TestVo {
- 02
- 03 @ExcelAnnotation(exportName="姓名")
- 04 private String name;
- 05
- 06 @ExcelAnnotation(exportName="性别")
- 07 private Integer sex;
- 08
- 09 @ExcelAnnotation(exportName="出生年月")
- 10 private Date brith;
- 11
- 12 /**
- 13 * @return 返回 name
- 14 */
- 15 public String getName() {
- 16 return name;
- 17 }
- 18
- 19 /**
- 20 * @param name 设置 name
- 21 */
- 22 public void setName(String name) {
- 23 this.name = name;
- 24 }
- 25
- 26 /**
- 27 * @return 返回 sex
- 28 */
- 29 public Integer getSex() {
- 30 return sex;
- 31 }
- 32
- 33 /**
- 34 * @param sex 设置 sex
- 35 */
- 36 public void setSex(Integer sex) {
- 37 this.sex = sex;
- 38 }
- 39
- 40 /**
- 41 * @return 返回 brith
- 42 */
- 43 public Date getBrith() {
- 44 return brith;
- 45 }
- 46
- 47 /**
- 48 * @param brith 设置 brith
- 49 */
- 50 public void setBrith(Date brith) {
- 51 this.brith = brith;
- 52 }
- 53
- 54 }