📄 per.java
字号:
import java.sql.ResultSet;
import java.lang.reflect.InvocationHandler;
import java.lang.reflect.Method;
import java.io.UnsupportedEncodingException;
/** * 作者 yipsilon * 如要转载, 请通知作者 */
public class per implements InvocationHandler
{
private static ResultSet rs;
private String encoding;
public per(ResultSet rs, String encoding) throws UnsupportedEncodingException
{
this.rs = rs; "".getBytes(encoding);
this.encoding = encoding;
}
public Object invoke(Object proxy, Method method, Object[] args)throws Throwable
{
String methodName = method.getName();
if(methodName.equals("getString"))
{
Object obj = args[0];
if(obj instanceof Integer)
{
return decodeString(rs.getBytes(((Integer)obj).intValue()), encoding);
}else{
return decodeString(rs.getBytes((String)obj), encoding);
}
}else if(methodName.equals("updateString")){
Object obj = args[0];
if(obj instanceof Integer){
rs.updateBytes(((Integer)obj).intValue(), encodeString((String)args[1], encoding));
}else{
rs.updateBytes((String)obj, encodeString((String)args[1], encoding));
}
return null;
}
return method.invoke(rs, args);
}
private String decodeString(byte[] bytes, String enc)
{
try{
return new String(bytes, enc);
}
catch(UnsupportedEncodingException uee){
return new String(bytes);
}
}
private byte[] encodeString(String str, String enc)
{
try{
return str.getBytes(enc);
} catch(UnsupportedEncodingException uee){
return str.getBytes();
}
}
public static void main(String arg[]){
//rs="ksjfkjsdlkfj";
//encoding="GBK";
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -