要想向ORACLE中的表AA传两个字符 和一张图片 字符可以传图片传不了 我是以存对象的形式传的
user代码如下:
package com.mazhengyu.model;
import java.awt.Image;
import javax.annotation.Generated;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.IdClass;
import javax.persistence.SequenceGenerator;
import javax.persistence.Table;
import oracle.sql.BLOB;
import org.hibernate.annotations.GenericGenerator;
@Entity
@Table(name="AA")
@SequenceGenerator(name="SEQ_JDPS_content",allocationSize=1,initialValue=1, sequenceName="SEQ_JDPS_CONTENT")
public class User {
private int ID;
private String USERNAME;
private String PASSWORD;
private BLOB BLOBTP;
public BLOB getBLOBTP() {
return BLOBTP;
}
public void setBLOBTP(BLOB bLOBTP) {
BLOBTP = bLOBTP;
}
@Id
@GeneratedValue(strategy=GenerationType.SEQUENCE,generator="SEQ_JDPS_content")
public int getId() {
return ID;
}
public void setId(int id) {
this.ID = id;
}
public String getUsername() {
return USERNAME;
}
public void setUsername(String username) {
this.USERNAME = username;
}
public String getPassword() {
return PASSWORD;
}
public void setPassword(String password) {
this.PASSWORD = password;
}
public String toString(){
return USERNAME+","+PASSWORD+","+BLOBTP;
}
}
图片的类型是用BLOB吗?
下面是执行代码:
@Component("user")
@Scope("prototype")//姣忎釜璇锋眰鐢熸垚鏂扮殑action
public class UserAction extends ActionSupport implements UserDao{
private Map requestMap;
private UserManager um ;
private String USERNAME;
private String PASSWORD;
private String PASSWORD2;
private String WTR;
public String getWTR() {
return WTR;
}
public void setWTR(String wTR) {
WTR = wTR;
}
public UserAction() {
requestMap = (Map)ActionContext.getContext().get("request");
}
public String execute() throws Exception {
User u= new User();
List<User> a = getHibernateteteplate().find("from User u where u.id =28");
requestMap.put("WTR", a);
File file = new File("e://q.bmp");
FileInputStream photoStream = new FileInputStream(file);
Blob img=Hibernate.createBlob(photoStream);
u.setUsername("呵呵");
u.setPassword("你好");
u.setBLOBTP( (BLOB) img);
save(u);
return "success";
}
public UserManager getUm() {
return um;
}
// @Resource(name="userManager")
public void setUm(UserManager um) {
this.um = um;
}
public String getUsername() {
return USERNAME;
}
public void setUsername(String username) {
this.USERNAME = username;
}
public String getPassword() {
return PASSWORD;
}
public void setPassword(String password) {
this.PASSWORD = password;
}
public String getPassword2() {
return PASSWORD2;
}
public void setPassword2(String password2) {
this.PASSWORD2 = password2;
}
private HibernateTemplate hibernateteteplate;
public HibernateTemplate getHibernateteteplate() {
return hibernateteteplate;
}
@Resource(name="hibernateTemplate")
public void setHibernateteteplate(HibernateTemplate hibernateteteplate) {
this.hibernateteteplate = hibernateteteplate;
}
public void save(User u) {
hibernateteteplate.save(u);
}
}
估计是红色代码里的问题 ,大神们如何改!??


还有 如果我想单独在数据库里取一个USERNAME 那么find里面怎么写 !?
第一个问题比较重要!
------解决方案--------------------
楼主你好,你试试将图片类型private Image inImage;改成这样,oracle10版本及以上都可以识别的。还有单独取Username的话,不知道你知道Username的值么?要是知道就添加判断条件就好,要是不知道的话,也可以通过TOP排序来取Username的值,方法很多。