[Hibernate] - Study 1

1)解压Hibernate,在eclipse中导入jar包,其中lib\required里的jar包是必需包括在里头的。这里用的是sql server,所以要导入sqljdbc4.jar

2)在src根目录下新建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">
<hibernate-configuration>
    <session-factory>
        <property name="connection.driver_class">com.microsoft.sqlserver.jdbc.SQLServerDriver</property>
        <property name="connection.url">jdbc:sqlserver://127.0.0.1;DatabaseName=DBNAME;integratedSecurity=True;</property>  
        <property name="connection.username"></property>
        <property name="connection.password"></property>

        <property name="connection.pool_size">2</property>
        <property name="dialect">org.hibernate.dialect.SQLServer2008Dialect</property>
        <property name="show_sql">true</property>

        <mapping resource="com/my/test/mapping/Account.hbm.xml" />
    </session-factory>
</hibernate-configuration>

 

3)加入Account.hbm.xml:

<?xml version="1.0" ?>
<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<hibernate-mapping>
    <class name="com.my.bean.Account" table="PPM_Account">
        <id name="accountId" type="java.lang.String">
            <column name="AccountId" />
            <generator class="assigned" />
        </id>
        <property name="targetType" type="java.lang.String" length="30">
            <column name="TargetType" />
        </property>
    </class>
</hibernate-mapping>

 

4)加入bean:Account.java

package com.my.bean;

public class Account {
    
    private int id;
    public int getId() {
        return id;
    }

    public void setId(int id) {
        this.id = id;
    }
    
    public String accountId;
    public String getAccountId() {
        return accountId;
    }

    public void setAccountId(String accountId) {
        this.accountId = accountId;
    }

    private String targetType;
    public String getTargetType() {
        return targetType;
    }

    public void setTargetType(String targetType) {
        this.targetType = targetType;
    }

}

 

5)测试Hibernate:

package com.my.test;

import java.util.List;

import org.hibernate.Query;
import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.cfg.Configuration;

import com.my.bean.Account;

public class TestHibernate {

    @SuppressWarnings("unchecked")
    public static void main(String[] args) {
        Configuration cfg = new Configuration();
        @SuppressWarnings("deprecation")
        SessionFactory factory = cfg.configure().buildSessionFactory();
        Session session = factory.openSession();
        org.hibernate.Transaction trans = session.beginTransaction();

        String hql = "from Account";
        Query query = session.createQuery(hql);
        List<Account> list = query.list();

        trans.commit();
        session.close();

        for (Account account : list) {
            System.out.println(account.getTargetType());
        }

    }

}

 

也可以使用HSQL的Select来写:

package com.my.test;

import java.util.List;

import org.hibernate.Query;
import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.cfg.Configuration;

import com.my.bean.Account;

public class TestHibernate {

    @SuppressWarnings("unchecked")
    public static void main(String[] args) {
        Configuration cfg = new Configuration();
        @SuppressWarnings("deprecation")
        SessionFactory factory = cfg.configure().buildSessionFactory();
        Session session = factory.openSession();
        org.hibernate.Transaction trans = session.beginTransaction();

        String hql = "select new Account(accountId, targetType) from Account";
        Query query = session.createQuery(hql);
        List<Account> list = query.list();

        trans.commit();
        session.close();

        for(Account account : list){
            System.out.println(account.getAccountId());
        }

    }

}

 

HSQL的Where条件可以这样写:

        String hql = "select new Account(accountId, targetType) from Account where accountId=:accountId";
        Query query = session.createQuery(hql);
        query.setParameter("accountId", "7AC8352C-9F6B-4B06-A481-FFEFAC7B3E7D");
        List<Account> list = query.list();

 

posted @ 2014-04-25 12:19  横渡  阅读(261)  评论(0编辑  收藏  举报