MyBatis 사용자 정의 형식 변환기 복호화

수요 장면: 데이터베이스에 저장된 일부 데이터가 암호화되고 페이지가 정상적으로 표시될 때.이것은 Mybatis가 SQL을 실행하여 결과를 얻을 때 사용자 정의 형식 변환기를 통해 CHAR 또는 VARCHAR2를 복호화 처리해야 하는 사용자 정의 형식 변환기입니다. 자바 코드는 다음과 같습니다.

/** typeHandler<br/> 
* 1  ,   
* 2  ,  
* @author Administrator 
* 
*/ 
public class CryptTypeHandler implements TypeHandler<CryptType> { 
public CryptType getResult(ResultSet rs, String columnName) throws SQLException { 
String value=""; 
CryptType v=new CryptType(value); 
value=rs.getString(columnName); 
if(value!=null){ 
value=decrypt(value.toString()); 
v.setValue(value); 
} 
return v; 
} 
public CryptType getResult(ResultSet rs, int columnIndex) throws SQLException { 
String value=""; 
CryptType v=new CryptType(value); 
value =rs.getString(columnIndex); 
if(value!=null){ 
v.setValue(value); 
} 
return v; 
} 
public CryptType getResult(CallableStatement cs, int columnIndex) throws SQLException { 
String value=""; 
CryptType v=new CryptType(); 
value =cs.getString(columnIndex); 
if(value!=null){ 
v.setValue(value); 
} 
return v; 
} 
public void setParameter(PreparedStatement ps, int i, CryptType parameter, JdbcType arg3) throws SQLException { 
String value=""; 
if(parameter!=null && parameter.toString()!=null){ 
value=encrypt(parameter.toString()); 
} 
ps.setString(i, value.toString()); 
} 
/**  
* @param value 
* @return 
*/ 
private String encrypt(String value) { 
value=CryptUtils.encrypt(value); 
return value; 
} 
/**   
* @param value 
* @return 
*/ 
private String decrypt(String value){ 
value=CryptUtils.decrypt(value); 
return value; 
} 
}
사용자 정의 유형

import java.io.Serializable; 
/** 
*   
*  CryptTypeHandler.java  
* 
* @author yy 
* 
*/ 
public class MyString implements Serializable, CharSequence, Comparable<String>{ 
private static final long serialVersionUID = 1L; 
private String value; 
public MyString (){ 
} 
public CryptType(String value){ 
this.value=value; 
} 
public String getValue() { 
return value; 
} 
public void setValue(String value) { 
this.value = value; 
} 
public int compareTo(String arg0) { 
// TODO Auto-generated method stub 
return 0; 
} 
public char charAt(int arg0) { 
// TODO Auto-generated method stub 
return 0; 
} 
public int length() { 
// TODO Auto-generated method stub 
return 0; 
} 
public CharSequence subSequence(int arg0, int arg1) { 
// TODO Auto-generated method stub 
return null; 
} 
@Override 
public String toString() { 
return value; 
} 
} 
mybatis 사용자 정의 형식 설정

<!--   --> 
<typeHandlers> 
<typeHandler javaType="com.***.MyString" handler="com.***.MyTypeHandler"/> 
</typeHandlers>
엔티티에서 사용

public class LoanEnterprise{ 
private MyString name; 
// : 
// ,mybatis sql ,  
public CryptType getName() { 
if(name!=null && name.getValue().equals("")){ 
return null; 
}else { 
return name; 
} 
} 
public void setName(CryptType name) { 
this.name = name; 
} 
} 
위에서 말한 것은 편집자가 여러분께 소개한 MyBatis 사용자 정의 형식 변환기가 복호화를 실현하는 것입니다. 여러분께 도움이 되었으면 합니다. 만약에 궁금한 것이 있으면 저에게 메시지를 남겨 주십시오. 편집자는 제때에 여러분에게 회답할 것입니다.여기에서도 저희 사이트에 대한 지지에 감사드립니다!

좋은 웹페이지 즐겨찾기