1. 程式人生 > >myeclipse中的一個hibernate例項

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
 String getId() {
        
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;
    }

    
publicvoid setPassword(String 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

MyEclipseHibernate搭建

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錯誤。 其原因是

myeclipsehibernate生成映射文件

database 圖片 config 結果 XML 映射 直接 設置 http 在hibernate中,每個數據表對應的其實是一個實體類,每個實體類有一個對應的hbm.xml配置文件匹配,myeclipse中有個MyEclipse Database Explorer視圖,它

關於Javatimer的一個簡單例項應用

效果展示 核心程式碼: 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

HibernateMyEclipse的部署,連線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

MyeclipseDebug時斷點進入另一個相同專案的類

方法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

hibernatemyeclipse的配置過程詳解

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 修改方法為:     選中專案,點右鍵-->