當前位置:首頁 » 文件管理 » hibernate上傳圖片

hibernate上傳圖片

發布時間: 2023-04-08 09:50:06

Ⅰ 求用J2EE(struts2,hibernate,spring)做出的圖片評論系統,裡面可以添加圖片顯示圖片。

源代碼是沒有的,我告訴你怎麼做。
1 搭梁禪建環境,配好資料庫,建立圖片評論表,圖片和逗薯評論存在對應關系
2 做圖片上傳功能,把圖片上傳到伺服器上存放,同時資料庫中存放圖片在伺服器上的位置
3 顯示圖片,同時在圖片下建立評論文本框,提交評論
注:系統一般都是能登錄的,因此要橡指塵有用戶管理等對應功能

Ⅱ hibernate+struts+插件ckeditor框架中如何在jsp頁面上傳圖片

imgsrec="路徑嗎"

Ⅲ struts中上傳圖片顯示圖片

樓主你好:
你的photo名稱(upfileFileName)和struts.xml中的photo名稱配置要一歲皮致,否則struts無法抓取到你的photo,當然也就空指針了。你把upfileFileName改成photoFileName,而且得有下面好悔這兩個屬性和對應的setter和getter方法。
//文件對象
private File photo;
//文件名乎襪差字
private String photoFileName;

Ⅳ 在struts2+hibernate中用fck編輯器,圖片可以上傳但是保存的路徑不對。

代碼。。

Ⅳ hibernate如何保存blob數據

首先你得搞清楚一點BLOB是二進制大對象,是ORACLE的數據類型,它對應到java中有兩種方式:

byte[] 和java.sql.Blob(先搞清楚這重點哦)

我給你直接復制重點代碼,希望可以幫到你

1 資料庫中定義成BLOB類型,這個你自己定義吧(表名叫bigobject),~~~~~不過給你截個圖吧


2 綜上,把oracle資料庫中的BLOB映射到java中有兩種情況的,即java.sql.Blob和byte[],下面先說byte[]的映射

++++++++++++++++++++++++Bigobject.hbm.xml映射文件+++++++++++++++++++++++

<hibernate-mapping>

<class name="entity.Bigobject" table="BIGOBJECT" >

<id name="id" type="java.lang.Integer">

<column name="ID" precision="6" scale="0" />

<generator class="native" />

</id>

<property name="tclob" type="java.lang.String">

<column name="TCLOB" />

</property>

<property name="tblob" type="byte[]"> //!!!!!注意,這里是byte[]

<column name="TBLOB" />

</property>

</class>

</hibernate-mapping>

++++++++++++++++++++以下是bigobject實體類(用hibernate映射的)+++++++++++


public class Bigobject implements java.io.Serializable {

// Fields


private Integer id;

private String tclob;

private byte[] tblob; //!!!!!注意,這里是byte[]



// Constructors


/** default constructor */

public Bigobject() {

}


/** full constructor */

public Bigobject(String tclob, byte[] tblob) {

this.tclob = tclob;

this.tblob = tblob;

}


御謹 // Property accessors


public Integer getId() {

return this.id;

}

public void setId(Integer id) {

鎮冊基 this.id = id;

}


public String getTclob() {

return this.tclob;

}

public void setTclob(String tclob) {

this.tclob = tclob;

}


public byte[] getTblob() {

return this.tblob;

}

public void setTblob(byte[] tblob) {

this.tblob = tblob;

}

========================控制台測試代碼(讀取圖片到資料庫,

再從資料庫讀取圖片到特定路徑下)=======================================

/**

* 按大對象數據類型BLOB的byte[]類型

* CLOB的java.lang.String

* 映射 並插入數據

* @author Administrator

*

*/

public class Test {

Session session=null;

Transaction tx=null;


/**

* 持久化數據,讀取本地圖片到資料庫

*/

public void get1(){

姿態 try {

session=HibernateSessionFactory.getSession();

//前提是文件必須放在src路徑下,讀取的是當前項目的根目錄

// InputStream input=this.getClass().getResourceAsStream("/file.txt");

//載入任意路徑下的圖片、大文件、視屏等(括弧里的參數圖片是絕對路徑)

InputStream input=new FileInputStream("G:/在線拍賣/page/images/gou1.jpg");

tx=session.beginTransaction();

byte[] byteArray=new byte[input.available()];

input.read(byteArray);

input.close();

Bigobject b=new Bigobject();

b.setId(1);

b.setTblob(byteArray);

b.setTclob("一條狗");

session.save(b);

tx.commit();

} catch (HibernateException e) {

// TODO Auto-generated catch block

e.printStackTrace();

} catch (IOException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

}

/**

* 從資料庫bigObject表中按主鍵讀取一條數據

* @throws IOException

*/

public void get2() throws IOException{

session=HibernateSessionFactory.getSession();

Bigobject b=(Bigobject)session.get(Bigobject.class, 1);

System.out.println("文本內容是:"+b.getTclob());

//吧位元組數組數據通過位元組流,輸出到當前工程根目錄下2.jpg中

if(b.getTblob()!=null){

FileOutputStream out=new FileOutputStream("dog1.jpg");

out.write(b.getTblob());

out.close();

}

}

public static void main(String[] args) throws IOException {

test6 t=new test6();

t.get1();

t.get2();

}

===================hibernate.cfg.xml的代碼頁給你貼一下吧,不過這都是自動生成的,你自己動手生成吧,一下是我自己的,想用的話得改參數的=======================

<?xml version='1.0' encoding='UTF-8'?>

<!DOCTYPE hibernate-configuration PUBLIC

"-//Hibernate/Hibernate Configuration DTD 3.0//EN"

"http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">


<!-- Generated by MyEclipse Hibernate Tools. -->

<hibernate-configuration>


<session-factory>

<property name="dialect">

org.hibernate.dialect.Oracle9Dialect

</property>

<property name="connection.url">

jdbc:oracle:thin:@localhost:1521:accp7 //!!!資料庫名稱

</property>

<property name="connection.username">scott</property>//!!!!!用戶名

<property name="connection.password">accp</property>//!!!!!!密碼

<property name="connection.driver_class">

oracle.jdbc.OracleDriver

</property>

<property name="myeclipse.connection.profile">scott</property>//!!!!!資料庫實例名

<mapping resource="entity/Bigobject.hbm.xml" />

</session-factory>


</hibernate-configuration>


3 上面介紹了BLOB的byte[]存儲,下面介紹另一種方式java.lang.Blob方式,還是直接粘貼代碼

++++++++++++++++++++資料庫還是上面圖片上的,保持不變++++++++++++++++++++++

====================Bigobject.hbm.xml映射文件======================

<hibernate-mapping>

<class name="bean.Bigobject" table="BIGOBJECT">

<id name="id" type="java.lang.Integer">

<column name="ID" precision="6" scale="0" />

<generator class="native" />

</id>

<property name="tclob" type="java.sql.Clob">//這里用的是Clob的另一種方式,有疑問再問

<column name="TCLOB" />

</property>

<property name="tblob" type="java.sql.Blob">//!!!!!注意,這里是java.sql.Blob

<column name="TBLOB" />

</property>

</class>

</hibernate-mapping>


========================以下是bigobject實體類=======================

import java.sql.Blob;

import java.sql.Clob;


/**

* Bigobject entity. @author MyEclipse Persistence Tools

*/


public class Bigobject implements java.io.Serializable {


// Fields


private Integer id;

private Clob tclob;

private Blob tblob;


// Constructors


/** default constructor */

public Bigobject() {

}


/** full constructor */

public Bigobject(Clob tclob, Blob tblob) {

this.tclob = tclob;

this.tblob = tblob;

}


// Property accessors


public Integer getId() {

return this.id;

}


public void setId(Integer id) {

this.id = id;

}


public Clob getTclob() {

return this.tclob;

}


public void setTclob(Clob tclob) {

this.tclob = tclob;

}


public Blob getTblob() {

return this.tblob;

}


public void setTblob(Blob tblob) {

this.tblob = tblob;

}

}


==========================對應的控制台測試代碼===========================


/**

* 講字元串大對象聲明為java.sql.Clob類型,二進制大對象聲明為java.sql.Blob類型

* @author Administrator

*

*/

public class test7 {

Session session=null;

Transaction tx=null;

public void get1(){

try {

session=HibernateSessionFactory.getSession();

//前提是文件必須放在src路徑下

InputStream input=this.getClass().getResourceAsStream("/upload.txt");

//載入任意路徑下的圖片、大文件、視屏等

// InputStream input=new FileInputStream("F:/1.jpg");

tx=session.beginTransaction();

byte[] byteArray=new byte[input.available()];

input.read(byteArray);

input.close();

Bigobject b=new Bigobject();

//依據二進制數據創建一個Blob對象 !!!!!重點 務必看清楚

b.setTblob(Hibernate.createBlob(byteArray));

//依據字元串數據創建一個Clob對象 !!!!!重點務必看清楚

b.setTclob(Hibernate.createClob("上傳圖片"));

session.save(b);

tx.commit();

} catch (HibernateException e) {

// TODO Auto-generated catch block

e.printStackTrace();

} catch (IOException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

}

public void get2(){

session=HibernateSessionFactory.getSession();

Bigobject obj=(Bigobject)session.get(Bigobject.class, 131);

//把Clob對象通過字元流讀入到內存,並輸出


try {

if(obj.getTclob()!=null){

Reader read=obj.getTclob().getCharacterStream();

char[] chArray=new char[1];

StringBuilder sb=new StringBuilder();

while(read.read(chArray)!=-1){

sb.append(new String(chArray));

}

System.out.println(sb.toString().trim());

}

} catch (SQLException e) {

// TODO Auto-generated catch block

e.printStackTrace();

} catch (IOException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

//把Blob對象通過位元組流讀輸出,並保存到當前工程根目錄下,取名為upload.txt

try {

if(obj.getTblob()!=null){

InputStream in=obj.getTblob().getBinaryStream();

FileOutputStream fos=new FileOutputStream("upload.txt");

int b=-1;

while((b=in.read())!=-1){

fos.write(b);

}

fos.close();

in.close();

}

} catch (FileNotFoundException e) {

// TODO Auto-generated catch block

e.printStackTrace();

} catch (SQLException e) {

// TODO Auto-generated catch block

e.printStackTrace();

} catch (IOException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

}

public static void main(String[] args) {

test7 t=new test7();

t.get1();

t.get2();

}

}

++++++++++++++++++++hibernate.cfg.xml同上++++++++++++++++++++++++++++



===================================================================

綜上,Blob與Clob(字元串大對象)的寫入讀出的兩種方法都有了(Clob的兩種方法你自己捎帶看看),都是完整代碼,粘貼即可用,整理了兩個多小時,希望對你有幫助!

Ⅵ hibernate+struts 批量上傳圖片上傳,怎麼做。要插件嗎圖片保存在資料庫中還是項目中。

圖片不是保納鉛和存到數據激岩中,在struts.xml文洞盯件里加個<constant name="struts.multipart.maxSize" value="100000000" />

Ⅶ struts2+Hibernate上傳圖片,如何實現圖片可以放在伺服器上;資料庫保存圖片路徑。

樓主
struts2
上傳代碼會寫嗎?
1.
struts2本身提供了上傳
攔截器
,用struts2實現上傳功能,並獲得保存地址
配置fileUpload的攔截器此瞎歲
2.
獲得文件存森睜儲地址(上傳時指定)+文件神穗名
3.
調用保存方法(
Hibernate
),將文件路徑存入資料庫
在一個事務中完成即可!
如:有哪塊有難點,及時追問。good
luck!

熱點內容
如何識別電腦的網路配置 發布:2025-05-14 22:38:46 瀏覽:847
pipforpython3 發布:2025-05-14 22:38:34 瀏覽:350
如何把迷你世界的伺服器搞崩 發布:2025-05-14 22:37:15 瀏覽:94
如何讓安卓卡死機 發布:2025-05-14 22:36:27 瀏覽:633
wemall微商城源碼 發布:2025-05-14 22:15:20 瀏覽:804
隆地優選交易密碼是什麼 發布:2025-05-14 21:53:23 瀏覽:96
強酸強鹼存儲櫃 發布:2025-05-14 21:45:16 瀏覽:565
車輛參數配置包括什麼 發布:2025-05-14 21:31:03 瀏覽:164
怎麼引入安卓項目 發布:2025-05-14 21:26:39 瀏覽:825
游戲輔編程 發布:2025-05-14 21:18:49 瀏覽:688