首頁 資料庫 mysql教程 hibernate对大数据资源的处理操作

hibernate对大数据资源的处理操作

Jun 07, 2016 pm 03:23 PM
bean hibernate 處理 操作 數據 資源

bean文件 package tk.blank_hibernate.bean;import java.io.Serializable;import java.sql.Blob;public class Image implements Serializable{/** * */private static final long serialVersionUID = 1L;private Integer id;private Blob image;public Image

bean文件

package tk.blank_hibernate.bean;

import java.io.Serializable;
import java.sql.Blob;

public class Image implements Serializable{
	/**
	 * 
	 */
	private static final long serialVersionUID = 1L;
	private Integer id;
	private Blob image;
	public Image() {
		super();
		// TODO Auto-generated constructor stub
	}
	public Image(Integer id, Blob image) {
		super();
		this.id = id;
		this.image = image;
	}
	public Integer getId() {
		return id;
	}
	public void setId(Integer id) {
		this.id = id;
	}
	public Blob getImage() {
		return image;
	}
	public void setImage(Blob image) {
		this.image = image;
	}
	@Override
	public String toString() {
		return "Image [id=" + id + ", image=" + image + "]";
	}
	

}
登入後複製
映射文件的书写
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE hibernate-mapping PUBLIC 
    "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
    "http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd">
<hibernate-mapping package="tk.blank_hibernate.bean">
	<class name="Image" table="image" catalog="hiber_jd">
		<!-- 映射符主键 -->
		<id name="id" column="id">
			<generator class="native"/>
		</id>
		<property name="image" column="image" type="blob" />
	</class>
</hibernate-mapping>
登入後複製
处理所有共同操作的基础dao接口
package tk.blank_hibernate.dao;

import java.io.Serializable;
import java.util.List;
import java.util.Set;

public interface BaseDao {
	/**
	 * 增加数据
	 * 
	 * @param entity
	 * @return
	 */
	void saveObject(Object entity);

	/**
	 * 删除数据
	 * 
	 * @param entity
	 */
	void deleteObject(Object entity);

	/**
	 * 根据ID删除数据
	 * 
	 * @param clazz
	 * @param id
	 */
	void deleteObject(Class clazz, Serializable id);

	/**
	 * 更改数据
	 * 
	 * @param entity
	 */
	void updateObject(Object entity);

	/**
	 * 根据ID查询数据
	 * 
	 * @param clazz
	 * @param id
	 * @return
	 */
	Object getObject(Class clazz, Serializable id);

	/**
	 * 根据ID查询数据
	 * 
	 * @param clazz
	 * @param id
	 * @return
	 */
	Object loadObject(Class clazz, Serializable id);

	/**
	 * 查询数据表的所有数据
	 * @param clazz
	 * @return
	 */
	List getObjectAll(Class clazz);
	

}

处理图片的接口  
登入後複製
package tk.blank_hibernate.dao;

public interface ImageDao extends BaseDao {

}
登入後複製
实现处理方法的类
package tk.blank_hibernate.dao.impl;

import java.io.Serializable;
import java.util.HashSet;
import java.util.List;
import java.util.Set;

import org.hibernate.Session;
import org.hibernate.Transaction;

import tk.blank_hibernate.bean.Goods;
import tk.blank_hibernate.dao.BaseDao;
import tk.blank_hibernate.util.BaseHibernateDaoImpl;

public class BaseDaoImpl extends BaseHibernateDaoImpl implements BaseDao {

	@Override
	public void saveObject(Object entity) {
		System.out
				.println("开始执行BaseDaoImpl中的方法=======================saveObject");
		Session session = getSessionObject();
		Transaction transaction = session.beginTransaction();
		session.save(entity);
		transaction.commit();
	}

	@Override
	public void deleteObject(Object entity) {
		System.out
				.println("开始执行BaseDaoImpl中的方法=======================deleteObject");
		Session session = getSessionObject();
		Transaction transaction = session.beginTransaction();
		session.delete(entity);
		transaction.commit();
	}

	@Override
	public void deleteObject(Class clazz, Serializable id) {
		System.out
				.println("开始执行BaseDaoImpl中的方法=======================deleteObject");
		Session session = getSessionObject();
		Transaction transaction = session.beginTransaction();
		session.delete(getObject(clazz, id));
		transaction.commit();
	}

	@Override
	public void updateObject(Object entity) {
		System.out
				.println("开始执行BaseDaoImpl中的方法=======================updateObject");
		Session session = getSessionObject();
		Transaction transaction = session.beginTransaction();
		session.update(entity);
		transaction.commit();
	}

	@Override
	public Object getObject(Class clazz, Serializable id) {
		System.out
				.println("开始执行BaseDaoImpl中的方法=======================getObject");
		Session session = getSessionObject();
		Transaction transaction = session.beginTransaction();
		Object object= session.get(clazz, id);
		return object;
	}

	@Override
	public Object loadObject(Class clazz, Serializable id) {
		System.out
				.println("开始执行BaseDaoImpl中的方法=======================loadObject");
		return null;
	}

	@Override
	public List getObjectAll(Class clazz) {
		System.out
				.println("开始执行BaseDaoImpl中的方法=======================getObjectAll");
		Transaction transaction = getSessionObject().beginTransaction();

		List list = getSessionObject().createQuery("from "+clazz.getName()).list();
		transaction.commit();
		return list;
	}



}
登入後複製

处理图片的类实现
package tk.blank_hibernate.dao.impl;

import tk.blank_hibernate.dao.ImageDao;

public class ImageDaoImpl extends BaseDaoImpl implements ImageDao {

}
登入後複製

处理所有共同操作的service的接口
package tk.blank_hibernate.service;

import java.io.Serializable;
import java.util.List;

public interface BaseService {
	/**
	 * 增加数据
	 * 
	 * @param entity
	 * @return
	 */
	void saveObject(Object entity);

	/**
	 * 删除数据
	 * 
	 * @param entity
	 */
	void deleteObject(Object entity);

	/**
	 * 根据ID删除数据
	 * 
	 * @param clazz
	 * @param id
	 */
	void deleteObject(Class clazz, Serializable id);

	/**
	 * 更改数据
	 * 
	 * @param entity
	 */
	void updateObject(Object entity);

	/**
	 * 根据ID查询数据
	 * 
	 * @param clazz
	 * @param id
	 * @return
	 */
	Object getObject(Class clazz, Serializable id);

	/**
	 * 根据ID查询数据
	 * 
	 * @param clazz
	 * @param id
	 * @return
	 */
	Object loadObject(Class clazz, Serializable id);

	/**
	 * 查询数据表的所有数据
	 * 
	 * @param clazz
	 * @return
	 */
	List getObjectAll(Class clazz);
}
登入後複製
处理图片的service的接口
package tk.blank_hibernate.service;

public interface ImageService extends BaseService {

}处理所有共同方法的service的实现  
登入後複製
package tk.blank_hibernate.service.impl;

import java.io.Serializable;
import java.util.List;

import tk.blank_hibernate.dao.BaseDao;
import tk.blank_hibernate.dao.impl.BaseDaoImpl;
import tk.blank_hibernate.service.BaseService;

public class BaseServiceImpl  implements BaseService {

	BaseDao baseDao =new BaseDaoImpl();

	@Override
	public void saveObject(Object entity) {
		System.out.println("开始执行BaseServiceImpl中的方法==============saveObject");
		baseDao.saveObject(entity);
	}

	@Override
	public void deleteObject(Object entity) {
		System.out.println("开始执行BaseServiceImpl中的方法==============deleteObject");
		baseDao.deleteObject(entity);
	}

	@Override
	public void deleteObject(Class clazz, Serializable id) {
		System.out.println("开始执行BaseServiceImpl中的方法==============deleteObject");
		baseDao.deleteObject(clazz, id);
	}

	@Override
	public void updateObject(Object entity) {
		System.out.println("开始执行BaseServiceImpl中的方法==============updateObject");
		baseDao.updateObject(entity);
	}

	@Override
	public Object getObject(Class clazz, Serializable id) {
		System.out.println("开始执行BaseServiceImpl中的方法==============getObject");
		return baseDao.getObject(clazz, id);
	}

	@Override
	public Object loadObject(Class clazz, Serializable id) {
		System.out.println("开始执行BaseServiceImpl中的方法==============loadObject");
		return baseDao.loadObject(clazz, id);
	}

	@Override
	public List getObjectAll(Class clazz) {
		System.out.println("开始执行BaseServiceImpl中的方法==============getObjectAll");
		return baseDao.getObjectAll(clazz);
	}

}
登入後複製
处理图片的service的实现
package tk.blank_hibernate.service.impl;

import tk.blank_hibernate.service.ImageService;

public class ImageServiceImpl extends BaseServiceImpl implements ImageService {

}
登入後複製

单独产生session的接口

package tk.blank_hibernate.util;

import org.hibernate.Session;

public interface IHibernateConnection {
public Session getSessionObject();
}


单独产生session的实现类

package tk.blank_hibernate.util;

import org.hibernate.Session;

public class BaseHibernateDaoImpl implements IHibernateConnection {

@Override
public Session getSessionObject() {
return HiberUtil.openSession();
}

}

产生session的实质方法

package tk.blank_hibernate.util;

import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.boot.registry.StandardServiceRegistryBuilder;
import org.hibernate.cfg.Configuration;
import org.hibernate.service.ServiceRegistry;

public class HiberUtil {
	static Configuration cfg;
	static ServiceRegistry serviceRegistry;
	static SessionFactory sessionFactory;
	
	static{
		cfg=new Configuration().configure();
		serviceRegistry=new StandardServiceRegistryBuilder().applySettings(cfg.getProperties()).build();
		sessionFactory =cfg.buildSessionFactory(serviceRegistry);
	}
	
	
	public static Session openSession(){
		//返回当前的session的连接对象
		return sessionFactory.getCurrentSession();
	}
}
登入後複製
配置hibernate与数据库连接的入口文件hibernate.cfg.xml
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE hibernate-configuration PUBLIC "-//Hibernate/Hibernate Configuration DTD 3.0//EN" 
			"http://www.hibernate.org/dtd/hibernate-configuration-3.0.dtd">
<hibernate-configuration>
<session-factory>
	<property name="connection.driver_class">
		com.mysql.jdbc.Driver
	</property>
	<property name="connection.url">
		jdbc:mysql://localhost:3306/hiber_jd
	</property>
	<property name="connection.username">root</property>
	<property name="connection.password">admin</property>
	<!-- 数据库的方言 -->
	<property name="hibernate.dialect">
		org.hibernate.dialect.MySQLDialect
	</property>
	<!-- Enable Hibernate&#39;s automatic session context management -->
	<property name="current_session_context_class">thread</property>

	<!-- 显示操作的sql语句 -->
	<property name="hibernate.show_sql">true</property>
	<!-- 格式sql语句 -->
	<property name="hibernate.format_sql">false</property>
	<!-- 自动创建和更新表结构 -->
	<property name="hibernate.hbm2ddl.auto">update</property>
	<mapping resource="tk/blank_hibernate/bean/Image.hbm.xml" />
</session-factory>
</hibernate-configuration>
登入後複製

测试代码

package tk.blank_hibernate.junit;

import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.FilterInputStream;
import java.io.IOException;
import java.io.InputStream;
import java.sql.Blob;
import java.sql.SQLException;

import org.hibernate.Hibernate;
import org.junit.Test;

import tk.blank_hibernate.bean.Image;
import tk.blank_hibernate.service.ImageService;
import tk.blank_hibernate.service.impl.ImageServiceImpl;
import tk.blank_hibernate.util.HiberUtil;

public class ImageTest {

	// 创建ImageService处理对象
	ImageService imageService = new ImageServiceImpl();

	@Test
	public void save() {
		// 创建img对象
		Image image = new Image();
		// 读取文件
		File file = new File("F:\\webprogect\\hibernate_jd\\src\\ni.jpg");
		try {
			// 创建文件的输入流,将文件加载到流中
			FileInputStream fis = new FileInputStream(file);
			// 创建blob大数据对象|||||在4之后要用这样的方式获取
			Blob blob = Hibernate.getLobCreator(HiberUtil.openSession())
					.createBlob(fis, file.length());

			//将大数据存储到 
			image.setImage(blob);
			imageService.saveObject(image);

		} catch (FileNotFoundException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
	}

	@Test
	public void getImage() throws SQLException {
		Image image = (Image) imageService.getObject(Image.class, 1);

		// 判断得到得数据是否为空
		if (image != null) {
			InputStream is = image.getImage().getBinaryStream();
			File file = new File("D:\\a.jpg");
			try {
				FileOutputStream fos = new FileOutputStream(file);
				byte buffer[] = new byte[1024];

				int len = 0;
				while ((len = is.read(buffer)) != -1) {
					fos.write(buffer, 0, len);
				}
				fos.close();
				is.close();

			} catch (FileNotFoundException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			} catch (IOException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}

		}

	}

}
登入後複製
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

AI Hentai Generator

AI Hentai Generator

免費產生 AI 無盡。

熱門文章

R.E.P.O.能量晶體解釋及其做什麼(黃色晶體)
3 週前 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.最佳圖形設置
3 週前 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.如果您聽不到任何人,如何修復音頻
3 週前 By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25:如何解鎖Myrise中的所有內容
3 週前 By 尊渡假赌尊渡假赌尊渡假赌

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

使用ddrescue在Linux上恢復數據 使用ddrescue在Linux上恢復數據 Mar 20, 2024 pm 01:37 PM

DDREASE是一種用於從檔案或區塊裝置(如硬碟、SSD、RAM磁碟、CD、DVD和USB儲存裝置)復原資料的工具。它將資料從一個區塊設備複製到另一個區塊設備,留下損壞的資料區塊,只移動好的資料區塊。 ddreasue是一種強大的恢復工具,完全自動化,因為它在恢復操作期間不需要任何干擾。此外,由於有了ddasue地圖文件,它可以隨時停止和恢復。 DDREASE的其他主要功能如下:它不會覆寫恢復的數據,但會在迭代恢復的情況下填補空白。但是,如果指示工具明確執行此操作,則可以將其截斷。將資料從多個檔案或區塊還原到單

開源!超越ZoeDepth! DepthFM:快速且精確的單目深度估計! 開源!超越ZoeDepth! DepthFM:快速且精確的單目深度估計! Apr 03, 2024 pm 12:04 PM

0.這篇文章乾了啥?提出了DepthFM:一個多功能且快速的最先進的生成式單目深度估計模型。除了傳統的深度估計任務外,DepthFM還展示了在深度修復等下游任務中的最先進能力。 DepthFM效率高,可以在少數推理步驟內合成深度圖。以下一起來閱讀這項工作~1.論文資訊標題:DepthFM:FastMonocularDepthEstimationwithFlowMatching作者:MingGui,JohannesS.Fischer,UlrichPrestel,PingchuanMa,Dmytr

WIN10服務主機太佔cpu的處理操作過程 WIN10服務主機太佔cpu的處理操作過程 Mar 27, 2024 pm 02:41 PM

1.首先我們右鍵點選任務列空白處,選擇【任務管理器】選項,或右鍵開始徽標,然後再選擇【任務管理器】選項。 2.在開啟的任務管理器介面,我們點選最右邊的【服務】選項卡。 3.在開啟的【服務】選項卡,點選下方的【開啟服務】選項。 4.在開啟的【服務】窗口,右鍵點選【InternetConnectionSharing(ICS)】服務,然後選擇【屬性】選項。 5.在開啟的屬性窗口,將【開啟方式】修改為【禁用】,點選【應用程式】後點選【確定】。 6.點選開始徽標,然後點選關機按鈕,選擇【重啟】,完成電腦重啟就行了。

Google狂喜:JAX性能超越Pytorch、TensorFlow!或成GPU推理訓練最快選擇 Google狂喜:JAX性能超越Pytorch、TensorFlow!或成GPU推理訓練最快選擇 Apr 01, 2024 pm 07:46 PM

谷歌力推的JAX在最近的基準測試中表現已經超過Pytorch和TensorFlow,7項指標排名第一。而且測試並不是JAX性能表現最好的TPU上完成的。雖然現在在開發者中,Pytorch依然比Tensorflow更受歡迎。但未來,也許有更多的大型模型會基於JAX平台進行訓練和運行。模型最近,Keras團隊為三個後端(TensorFlow、JAX、PyTorch)與原生PyTorch實作以及搭配TensorFlow的Keras2進行了基準測試。首先,他們為生成式和非生成式人工智慧任務選擇了一組主流

iPhone上的蜂窩數據網路速度慢:修復 iPhone上的蜂窩數據網路速度慢:修復 May 03, 2024 pm 09:01 PM

在iPhone上面臨滯後,緩慢的行動數據連線?通常,手機上蜂窩互聯網的強度取決於幾個因素,例如區域、蜂窩網絡類型、漫遊類型等。您可以採取一些措施來獲得更快、更可靠的蜂窩網路連線。修復1–強制重啟iPhone有時,強制重啟設備只會重置許多內容,包括蜂窩網路連線。步驟1–只需按一次音量調高鍵並放開即可。接下來,按降低音量鍵並再次釋放它。步驟2–過程的下一部分是按住右側的按鈕。讓iPhone完成重啟。啟用蜂窩數據並檢查網路速度。再次檢查修復2–更改資料模式雖然5G提供了更好的網路速度,但在訊號較弱

超級智能體生命力覺醒!可自我更新的AI來了,媽媽再也不用擔心資料瓶頸難題 超級智能體生命力覺醒!可自我更新的AI來了,媽媽再也不用擔心資料瓶頸難題 Apr 29, 2024 pm 06:55 PM

哭死啊,全球狂煉大模型,一網路的資料不夠用,根本不夠用。訓練模型搞得跟《飢餓遊戲》似的,全球AI研究者,都在苦惱怎麼才能餵飽這群資料大胃王。尤其在多模態任務中,這問題尤其突出。一籌莫展之際,來自人大系的初創團隊,用自家的新模型,率先在國內把「模型生成數據自己餵自己」變成了現實。而且還是理解側和生成側雙管齊下,兩側都能產生高品質、多模態的新數據,對模型本身進行數據反哺。模型是啥?中關村論壇上剛露面的多模態大模型Awaker1.0。團隊是誰?智子引擎。由人大高瓴人工智慧學院博士生高一鑷創立,高

美國空軍高調展示首個AI戰鬥機!部長親自試駕全程未乾預,10萬行代碼試飛21次 美國空軍高調展示首個AI戰鬥機!部長親自試駕全程未乾預,10萬行代碼試飛21次 May 07, 2024 pm 05:00 PM

最近,軍事圈被這個消息刷屏了:美軍的戰鬥機,已經能由AI完成全自動空戰了。是的,就在最近,美軍的AI戰鬥機首次公開,揭開了神秘面紗。這架戰鬥機的全名是可變穩定性飛行模擬器測試飛機(VISTA),由美空軍部長親自搭乘,模擬了一對一的空戰。 5月2日,美國空軍部長FrankKendall在Edwards空軍基地駕駛X-62AVISTA升空注意,在一小時的飛行中,所有飛行動作都由AI自主完成! Kendall表示——在過去的幾十年中,我們一直在思考自主空對空作戰的無限潛力,但它始終顯得遙不可及。然而如今,

阿里7B多模態文件理解大模型拿下新SOTA 阿里7B多模態文件理解大模型拿下新SOTA Apr 02, 2024 am 11:31 AM

多模態文件理解能力新SOTA!阿里mPLUG團隊發布最新開源工作mPLUG-DocOwl1.5,針對高解析度圖片文字辨識、通用文件結構理解、指令遵循、外部知識引入四大挑戰,提出了一系列解決方案。話不多說,先來看效果。複雜結構的圖表一鍵識別轉換為Markdown格式:不同樣式的圖表都可以:更細節的文字識別和定位也能輕鬆搞定:還能對文檔理解給出詳細解釋:要知道,“文檔理解”目前是大語言模型實現落地的一個重要場景,市面上有許多輔助文檔閱讀的產品,有的主要透過OCR系統進行文字識別,配合LLM進行文字理

See all articles