myeclipse中的一個hibernate例項
首先是pojo類person.java:
package org.jie.hibernate;publicclass person {
private String id;
private String name;
private String password;
private String sex;
private String email;
public person(String name,String sex)
{
System.out.println(name+""+sex);
}
public
return id;
}
publicvoid setId(String id) {
this.id = id;
}
public String getName() {
return name;
}
publicvoid setName(String name) {
this.name = name;
}
public String getPassword() {
return password;
}
this.password = password;
}
public String getSex() {
return sex;
}
publicvoid setSex(String sex) {
this.sex = sex;
}
public String getEmail() {
return email;
}
publicvoid setEmail(String email)
this.email = email;
}
}
接著是對映檔案person.hbm.xml:
<?xml version="1.0" encoding="utf-8"?><!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<!--
Mapping file autogenerated by MyEclipse Persistence Tools
-->
<hibernate-mapping>
<class name="org.jie.hibernate.person" table="person" schema="public">
<id name="id" type="java.lang.String">
<column name="id" length="20"/>
<generator class="assigned"></generator>
</id>
<property name="name" type="java.lang.String">
<column name="name" length="12" not-null="true"/>
</property>
<property name="password" type="java.lang.String">
<column name="password" length="25" not-null="true"/>
</property>
<property name="sex" type="java.lang.String">
<column name="sex" length="20" not-null="true"/>
</property>
<property name="email" type="java.lang.String">
<column name="email" length="20" not-null="true"/>
</property>
</class>
<!-- 命名查詢語句定義的位置是要在class之後的! -->
<query name="person.byId">
<![CDATA[from person where id=?]]>
</query>
</hibernate-mapping>
還有的就是一個定義方法的類PersonOperate.java:
package org.jie.hibernate;import java.util.Iterator;
import java.util.List;
import org.hibernate.Query;
import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.Transaction;
import org.hibernate.cfg.Configuration;
publicclass PersonOperate {
// 在Hibernate中,所有的操作都是通過Session完成
// 此Session不同於JSP的Session
private Session session =null ;
// 在構造方法之中例項化session物件
public PersonOperate()
{
// 找到Hibernate配置
Configuration config =new Configuration().configure() ;
// 從配置中取出SessionFactory
SessionFactory factory = config.buildSessionFactory() ;
// 從SessionFactory中取出一個Session
this.session = factory.openSession() ;
}
// 所有的操作都是通過session進行的
// 向資料庫中增加資料
publicvoid insert(person p)
{
// 開始事務
Transaction tran =this.session.beginTransaction() ;
// 執行語句
this.session.save(p) ;
// 提交事務
tran.commit() ;
// 關閉Session
this.session.close() ;
}
publicvoid update(person p)
{
Transaction tran=session.beginTransaction();
session.update(p);
tran.commit();
session.close();
}
publicvoid queryById(String id)
{
person p=null;
//String hql="from person where id=?";
//Query q=session.createQuery(hql);
Query q=session.getNamedQuery("person.byId"); //這裡採用的是命名查詢的方式來進行查詢的,還有的就是要注意命名查詢在xml檔案中定義時的位置!
q.setString(0, id);
List list=q.list();
Iterator iter=list.iterator();
if(iter.hasNext())
{
p=(person)iter.next();
System.out.println(p.getName());
}
//return p;
}
//這是Hibernate 2 下用的刪除的方法,效率不高!
//它傳入的是一個物件,而且要刪除這個物件前還要通過查詢先找到它先!
publicvoid delete(person p)
{
Transaction tran=session.beginTransaction();
session.delete(p);
tran.commit();
session.close();
}
//這是在Hibernate 3 下用查詢語句來查詢的情況
publicvoid delete2(String id)
{
String hql="delete person where id=?";
Query q=session.createQuery(hql);
q.setString(0, id); //
q.executeUpdate();
session.beginTransaction().commit(); //刪除和更新一樣,只要是有改變到資料表的操作都應該進行事務提交,否則結果不會改變!
}
//查詢全部記錄
public List queryAll()
{
String hql="from person";
Query q=session.createQuery(hql);
//q.setMaxResults(3); //設定輸出來的最大的記錄的條數為3
List l=q.list();
return l;
}
//模糊查詢
public List queryByLike(String str)
{
String hql="from person as p where p.name like :str"; //採用的是命名引數的方法來進行查詢,而且該引數前面的那個冒號是不能去掉的,去掉的話就會出現異常!
Query q=session.createQuery(hql);
q.setString("str", "%"+str+"%"); //
List l=q.list();
相關推薦
myeclipse中的一個hibernate例項
首先是pojo類person.java: package org.jie.hibernate;publicclass person ...{ private String id; private String name; private String p
MyEclipse中的Hibernate搭建
clip 驅動 完成 版本 com 數據庫表 數據庫連接 str window 前提:MySQL中已經創建好相應項目的數據庫和表 第一步: 創建數據庫(MySQL)連接 Window -> Show View -> DB Connector; 右鍵 ->
手把手在MyEclipse中搭建Hibernate開發環境
在MyEclipse中如何搭建Hibernate開發環境?本文講解一個入門級Demo,希望可以幫助更多的初學者。1、下載對應的Hibernate版本hibernate-release-5.0.7.Fin
WPF中一個ListBox例項
<ListBox Height="208" Name="lbStudent" Width="305" HorizontalAlignment="Left" SelectedItem="{Bindi
在myeclipse中拷貝一個工程,修改部署的名字
部署 拷貝 pro 方法 table tab per 右鍵 alt 在MyEclipse中,經常練習的時候需要建立多個工程,但是為了方便,通常的作法是:復制一個工程,然後直接粘貼,但是,部署以後會發現,使用新的工程名訪問不了,報404錯誤。 其原因是
myeclipse中hibernate生成映射文件
database 圖片 config 結果 XML 映射 直接 設置 http 在hibernate中,每個數據表對應的其實是一個實體類,每個實體類有一個對應的hbm.xml配置文件匹配,myeclipse中有個MyEclipse Database Explorer視圖,它
關於Java中timer的一個簡單例項應用
效果展示 核心程式碼: Timer timer = new Timer();//新增定時器 timer.schedule( new TimerTask(){//重寫定時任務 public void run(){ button2.setText("取消"+S
Typedef中一個“PF Register( PF test )”使用例項
#include <stdio.h> //typedef定義一種型別,帶有兩個int型引數並返回int型資料 typedef int (*PF) ( const int * ,const int *); //選出最大的數 int max( const int
一個hibernate中的異常:NonUniqueDiscoveredSqlAliasException
在hibernate中用SQL查詢返回的結果集中,列名或別名必須唯一,否則會報下面的錯誤。返回的結果集中,列名或別名可以沒有,但只能有一列沒有。//空別名重複的情況:org.hibernate.loader.custom.NonUniqueDiscoveredSqlAliasException: Encoun
JPA學習記錄二(搭建一個JPA+hibernate例項)
一:首先開發JPA依賴的jar檔案 二:JPA的配置檔案 JPA規範要求在類路徑的META-INF目錄下放置persistence.xml,檔案的名稱是固定的 <persistence xmlns="http://java.sun.c
Hibernate在MyEclipse中的部署,連線MySQL資料庫
如今,更多的人使用MyEclipse而不再使用eclipse,MyEclipse比eclipse的方便之處我就不說了,但MyEclipse不是免費的,我也是使用破解版的。 在MyEclipse中如何搭建hibernate環境呢?今天學習一點點想與
將原有的MyEclipse中的專案轉成maven專案----新建一個maven專案把原專案按照新專案的框架移植過去
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/PO
Android中 WebView開啟一個網頁例項
佈局介面如下: <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/androi
Myeclipse中Debug時斷點進入另一個相同專案的類中
方法1:debug時候,只打開當前project,關閉其他的。【簡單粗暴,但是每次只能單獨執行一個project】 方法2:新添server,配置後使用新配置的部署專案即可。【myeclipse中配置兩個tomcat(具體配置點選連結),同時使用該配置方式,相同的proje
Confluence 6 從生產環境中恢復一個測試例項
很多 Confluence 的管理員將會使用生產例項執行完整資料和服務的 Confluence 伺服器,同時還會設定一個測試例項來測試升級等。在這種情況下,你的 Confluence 可以回執行 2 個不同的版本,而且也是非常常見的。這個文件將會知道你如何拷貝生產環境中的資料到一個測試例項
java中一個例項化的過程
一個物件例項化過程: eg:Person person = new Person(); 1.JVM會讀取指定路徑下的Person.class檔案並載入進記憶體,如果 並會先載入Person的父類(如果
MyEclipse 中沒有 add hibernate capabilities 的解決方法
今天使用MyEclipse2014版本的時候,在建立反向工程師發現 右鍵工程,MyEclipse選項裡面沒有 add hibernate capabilities選項,如下圖: 但是在低版本的MyEclipse中,如MyEclipse10中是有這個選項的,
一個Hibernate多對多例項
更新:2015-02-11 @ManyToMany(targetEntity = Role.class, fetch = FetchType.EAGER) @JoinTable(name = "T_USERS_ROLES", joinColumns = @JoinCol
hibernate在myeclipse中的配置過程詳解
1、 資料庫設計 建立crud.student資料庫表: 圖1 資料庫表 你可以使用如下語句建立該庫表: create database if not exists `crud`; USE `crud`; DROP TABLE IF EXISTS `student`; CREATE TABL
在myeclipse中如何拷貝一個web工程
在MyEclipse中,經常練習的時候需要建立多個工程,但是為了方便,通常的作法是:複製一個工程,然後直接貼上,但是,部署以後會發現,使用新的工程名訪問不了,報404錯誤。 其原因是沒有修改Web Context-root 修改方法為: 選中專案,點右鍵-->