byteatypehandler.java

来自「esri的ArcGIS Server超级学习模板程序(for java)」· Java 代码 · 共 61 行

JAVA
61
字号
package com.esri.solutions.jitk.personalization.dao.typehandlers;

import java.sql.SQLException;

import org.apache.log4j.LogManager;
import org.apache.log4j.Logger;

import com.ibatis.sqlmap.client.extensions.ParameterSetter;
import com.ibatis.sqlmap.client.extensions.ResultGetter;
import com.ibatis.sqlmap.client.extensions.TypeHandlerCallback;

public class BYTEATypeHandler implements TypeHandlerCallback {
	private static final Logger _logger = LogManager.getLogger(BYTEATypeHandler.class);
	
	public Object getResult(ResultGetter arg0) throws SQLException {
		_logger.debug("getResult() called");
		
		return arg0.getBytes();
	}

	public void setParameter(ParameterSetter setter, Object parameter)
			throws SQLException {
		_logger.debug("Set parameter called");
		
		byte[] value = (byte []) parameter;
		StringBuilder sb = createEscapedString(value);
		setter.setString(sb.toString());
		
		_logger.debug("String converted to " + sb);
	}
	
	protected StringBuilder createEscapedString(byte [] bytes) {
		StringBuilder sb = new StringBuilder();
		
		if (bytes != null) {
			for (byte b : bytes) {
				int asciiValue = Byte.valueOf(b).intValue();
				
				sb.append("\\\\");
				
				if (asciiValue < 10) {
					sb.append("00");
				} else if (asciiValue < 100) {
					sb.append("0");
				}
				
				sb.append(String.valueOf(asciiValue));
			}
		}
		
		return sb;
	}

	public Object valueOf(String arg0) {
		_logger.debug("valueOf() called with: " + arg0);
		
		return arg0.getBytes();
	}

}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?