(MyBatis)データベースとエンティティタイプ変換-BaseTypeHandler(ここではBLOB画像情報を変換します)
せいぎょそう
mapper.xml変換する属性の後にtypeHandler="com.cyl.mybatisType.Handler.Type.HandlerBlob 2 String"(com.cyl.mybatisType.Handler(パッケージ名).Type.HandlerBlob 2 String(クラス名))を付ける
TypeHandlerBlob 2 String継承BaseTypeHandler,書き換え方法
エンティティークラス
@Controller
@RequestMapping("eboard")
public class EboardController {
@Autowired
private EboardService eboardService;
@RequestMapping("eboardFrist")
public ModelAndView initFristPage(Model model) {
ModelAndView result = new ModelAndView("eboard/eboardFrist");
model.addAttribute("newImg",
JSONArray.fromObject(eboardService.listNewImager()));
result.addObject(model);
return result;
}
}
mapper.xml変換する属性の後にtypeHandler="com.cyl.mybatisType.Handler.Type.HandlerBlob 2 String"(com.cyl.mybatisType.Handler(パッケージ名).Type.HandlerBlob 2 String(クラス名))を付ける
TypeHandlerBlob 2 String継承BaseTypeHandler,書き換え方法
package com.cyl.mybatisTypeHandler;
import java.io.ByteArrayInputStream;
import java.io.UnsupportedEncodingException;
import java.sql.Blob;
import java.sql.CallableStatement;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.apache.ibatis.type.BaseTypeHandler;
import org.apache.ibatis.type.JdbcType;
public class TypeHandlerBlob2String extends BaseTypeHandler {
private static final Log LOGGER = LogFactory.getLog(TypeHandlerBlob2String.class);
//
private static final String DEFAULT_CHARSET = "utf-8";
@Override
public void setNonNullParameter(PreparedStatement ps, int i, String parameter,JdbcType jdbcType)
throws SQLException {
ByteArrayInputStream bis;
try {
// String byte
bis = new ByteArrayInputStream(parameter.getBytes(DEFAULT_CHARSET));
} catch (UnsupportedEncodingException e) {
throw new RuntimeException("Blob Encoding Error!");
}
ps.setBinaryStream(i, bis, parameter.length());
}
@Override
public String getNullableResult(ResultSet rs, String columnName) throws SQLException {
Blob blob = rs.getBlob(columnName);
byte[] returnValue = null;
String result = null;
if (null != blob) {
returnValue = blob.getBytes(1, (int) blob.length());
}
try {
if (null != returnValue) {
// byte string
result = new String(returnValue, DEFAULT_CHARSET);
}
} catch (UnsupportedEncodingException e) {
throw new RuntimeException("Blob Encoding Error!");
}
return result;
}
@Override
public String getNullableResult(CallableStatement cs, int columnIndex) throws SQLException {
Blob blob = cs.getBlob(columnIndex);
byte[] returnValue = null;
String result = null;
if (null != blob) {
returnValue = blob.getBytes(1, (int) blob.length());
}
try {
if (null != returnValue) {
result = new String(returnValue, DEFAULT_CHARSET);
}
} catch (UnsupportedEncodingException e) {
throw new RuntimeException("Blob Encoding Error!");
}
return result;
}
/**
* @Description:
*
* @param arg0
* @param arg1
* @return
* @throws SQLException
*
* @see org.apache.ibatis.type.BaseTypeHandler#getNullableResult(java.sql.ResultSet,
* int)
*
*/
@Override
public String getNullableResult(ResultSet rs, int columnName) throws SQLException {
LOGGER.debug("enter function");
String result = null;
Blob blob = rs.getBlob(columnName);
byte[] returnValue = null;
if (null != blob) {
returnValue = blob.getBytes(1, (int) blob.length());
}
try {
// byte string
if (null != returnValue) {
result = new String(returnValue, DEFAULT_CHARSET);
}
} catch (UnsupportedEncodingException e) {
throw new RuntimeException("Blob Encoding Error!");
}
LOGGER.debug("exit function");
return result;
}
}
エンティティークラス
package com.cyl.model.eboard;
import java.util.Date;
public class NewImger {
private int id;
private Integer createUserId;
private Date createTime;
private Integer updateUserId;
private Date updateTime;
private int status;
private String imgName;
private String imgTitle;
private String imgContent;
private Object img;
private String imgBase64;
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public Integer getCreateUserId() {
return createUserId;
}
public void setCreateUserId(Integer createUserId) {
this.createUserId = createUserId;
}
public Date getCreateTime() {
return createTime;
}
public void setCreateTime(Date createTime) {
this.createTime = createTime;
}
public Integer getUpdateUserId() {
return updateUserId;
}
public void setUpdateUserId(Integer updateUserId) {
this.updateUserId = updateUserId;
}
public Date getUpdateTime() {
return updateTime;
}
public void setUpdateTime(Date updateTime) {
this.updateTime = updateTime;
}
public int getStatus() {
return status;
}
public void setStatus(int status) {
this.status = status;
}
public String getImgName() {
return imgName;
}
public void setImgName(String imgName) {
this.imgName = imgName;
}
public String getImgTitle() {
return imgTitle;
}
public void setImgTitle(String imgTitle) {
this.imgTitle = imgTitle;
}
public String getImgContent() {
return imgContent;
}
public void setImgContent(String imgContent) {
this.imgContent = imgContent;
}
public Object getImg() {
return img;
}
public void setImg(Object img) {
this.img = img;
}
public String getImgBase64() {
return imgBase64;
}
public void setImgBase64(String imgBase64) {
this.imgBase64 = imgBase64;
}
}