码迷,mamicode.com
首页 > 编程语言 > 详细

java myBatis 枚举字段处理

时间:2015-03-13 16:45:10      阅读:156      评论:0      收藏:0      [点我收藏+]

标签:mybatis


package com.youboy.crm.dto.enums;

public enum PayStatusEnum {

	/**已支付**/
	PAID(1,"已支付"),	/**末支付**/NONPAYMENT(2,"末支付");
	
	private int ordinal;
	private String name;

	private PayStatusEnum(int ordinal,String name) {
		this.ordinal=ordinal;
		this.name=name;
	}

	public int getOrdinal() {
		return ordinal;
	}

	public void setOrdinal(int ordinal) {
		this.ordinal = ordinal;
	}

	public String getName() {
		return name;
	}

	public void setName(String name) {
		this.name = name;
	}
	
	
	/**
	 * 根据编号获取名称
	 * 
	 * @param ordinal
	 * @return 存在返回对应的名称,不存在返回null
	 */
	public static String getName(int ordinal) {
		for (PayStatusEnum e : PayStatusEnum.values()) {
			if (e.getOrdinal() == ordinal) {
				return e.name;
			}
		}
		return null;
	}
	
	
	/**
	 * 根据编号获取
	 * 
	 * @param ordinal
	 * @return 存在返回对应的名称,不存在返回null
	 */
	public static PayStatusEnum get(int ordinal) {
		for (PayStatusEnum e : PayStatusEnum.values()) {
			if (e.getOrdinal() == ordinal) {
				return e;
			}
		}
		return null;
	}
	
	public static PayStatusEnum get(String Name) {
		for (PayStatusEnum e : PayStatusEnum.values()) {
			if (e.getName().equals(Name)) {
				return e;
			}
		}
		return null;
	}

	/**
	 * 根据名称返回编号
	 * 
	 * @param name
	 * @return 存在返回编号,不存在返回-1
	 */
	public static int getOrdinal(String name) {
		for (PayStatusEnum e : PayStatusEnum.values()) {
			if (e.getName() == name) {
				return e.ordinal;
			}
		}
		return -1;
	}
	
	
	public static void main(String[] args) {
		
		System.out.println(PayStatusEnum.get(1).getName());
		System.out.println(PayStatusEnum.get("已支付").getName());
		
		System.out.println(PayStatusEnum.getOrdinal("已支付"));
		
		System.out.println(PayStatusEnum.getName(1));
		
		
	}
	
	
}


package com.youboy.crm.dto.enums.utils;

import java.sql.CallableStatement;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;

import org.apache.ibatis.type.BaseTypeHandler;
import org.apache.ibatis.type.JdbcType;

import com.youboy.crm.dto.enums.PayStatusEnum;

public class PayStaHandler extends BaseTypeHandler<PayStatusEnum> {

	@Override
	public void setNonNullParameter(PreparedStatement ps, int i,
			PayStatusEnum parameter, JdbcType jdbcType) throws SQLException {
		ps.setInt(i, parameter.getOrdinal());
	}

	@Override
	public PayStatusEnum getNullableResult(ResultSet rs, String columnName)
			throws SQLException {
		int i = rs.getInt(columnName);
		if (rs.wasNull()) {
			return null;
		} else {
			return PayStatusEnum.get(i);
		}
	}

	@Override
	public PayStatusEnum getNullableResult(ResultSet rs, int columnIndex)
			throws SQLException {
		int i = rs.getInt(columnIndex);
		if (rs.wasNull()) {
			return null;
		} else {
			return PayStatusEnum.get(i);
		}
	}

	@Override
	public PayStatusEnum getNullableResult(CallableStatement cs, int columnIndex)
			throws SQLException {
		int i = cs.getInt(columnIndex);
		if (cs.wasNull()) {
			return null;
		} else {
			return PayStatusEnum.get(i);
		}
	}
}

	<!--=========================查询数据返回集合 配置====================================================== -->
	<resultMap type="com.youboy.crm.domain.BStoreApply" id="resultMapId">
		<id property="id" column="id" />
		<result property="type" column="type" typeHandler="com.youboy.crm.dto.enums.utils.ProductEnumHandler"/>
	</resultMap>




	
	public static ProductEnum get(Object code) {
		for (ProductEnum e : ProductEnum.values()) {
			if ((e.getCode() + "").equals(code.toString())
					|| e.getName().equals(code.toString())) {
				return e;
			}
		}
		return null;
	}

转json 时 用了个笨方法
public String getTypeName() {
		return type.getName();
	}

	public ProductEnum getType() {
		return type;
	}


java myBatis 枚举字段处理

标签:mybatis

原文地址:http://blog.csdn.net/liangrui1988/article/details/44240439

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!