hibernate-4.3.5安裝配置

來源:互聯網
上載者:User

標籤:hibernate

起初照著官方文檔配,一直出錯,貌似官方的文檔時錯的,查了很多資料,綜合整理了一個可行的方案,如下:

0.1包結構

test.demo

test.domain  //實體類

test.util//工具類


0.2導如的jar包

hibernate-4.3.5的required包中的所有

optional包中的c3p0中的所有

下載slf4j,匯入slf4j-api.jar 和 slf4j-log4j.jar

下載log4j, 匯入log4j.jar

匯入mysql-connector-java.jar


Log4j和slf4j的關係:http://blog.csdn.net/lifuxiangcaohui/article/details/7278595

apache-log4j-1.2.17         http://pan.baidu.com/share/link?shareid=121565833&uk=2047106924

slf4j-1.7.7                            http://pan.baidu.com/share/link?shareid=123250651&uk=2047106924



1.POJO如下

package test.domain;public class Message {private Long id;private String text;private Message nextMessage;public Message(String text){this.text = text;}public Long getId() {return id;}public void setId(Long id) {this.id = id;}public String getText() {return text;}public void setText(String text) {this.text = text;}public Message getNextMessage() {return nextMessage;}public void setNextMessage(Message nextMessage) {this.nextMessage = nextMessage;}}


2.與之對應的對應檔Message.hbm.xml,注意,要與POJO放在一起


<?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><class name="test.domain.Message" table="MESSAGES"><id name="id" column="MESSAGE_ID"><generator class="increment"></generator></id><property name="text" column="MESSAGE_TEXT"></property><many-to-one name="nextMessage" cascade="all" column="NEXT_MESSAGE_ID"foreign-key="FK_NEXT_MESSAGE"></many-to-one></class></hibernate-mapping>

3.hibernate.cfg.xml,即hibernate的設定檔,放在src的根目錄下

<?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><!-- Database connection settings --><property name="connection.driver_class">com.mysql.jdbc.Driver</property><property name="connection.url">jdbc:mysql://127.0.0.1:3306/hibernate</property><property name="connection.username">root</property><property name="connection.password">1234</property><!-- Use the c3p0 connection pool provider --><property name="hibernate.c3p0.min_size">5</property><property name="hibernate.c3p0.max_size">20</property><property name="hibernate.c3p0.timeout">300</property><property name="hibernate.c3p0.max_statements">50</property><property name="hibernate.c3p0.idle_test_period">3000</property><!-- Show and print nice SQL on stdout --><property name="show_sql">true</property><property name="format_sql">true</property><property name="hibernate.dialect">org.hibernate.dialect.MySQLDialect</property><property name="hbm2ddl.auto">update</property><!-- List of XML mapping files --><mapping resource="test/domain/Message.hbm.xml" /></session-factory></hibernate-configuration>

4.HibernateUtil.java工具類

package test.util;import org.hibernate.SessionFactory;import org.hibernate.boot.registry.StandardServiceRegistryBuilder;import org.hibernate.cfg.Configuration;import org.hibernate.service.ServiceRegistry;public class HibernateUtil {private static final SessionFactory sessionFactory = buildSessionFactory();private static SessionFactory buildSessionFactory() {try {Configuration configuration = new Configuration().configure();ServiceRegistry serviceRegistry = new StandardServiceRegistryBuilder().applySettings(configuration.getProperties()).build();SessionFactory sessionFactory = configuration.buildSessionFactory(serviceRegistry);return sessionFactory;} catch (Throwable ex) {System.err.println("Initial SessionFactory creation failed." + ex);throw new ExceptionInInitializerError(ex);}}public static SessionFactory getSessionFactory() {return sessionFactory;}}

5.測試

package test.demo;import org.hibernate.Session;import test.domain.Message;import test.util.HibernateUtil;public class HelloWorld {public static void main(String[] args) {Session session = HibernateUtil.getSessionFactory().openSession();        session.beginTransaction();        Message message = new Message("Hello,world");session.save(message);session.getTransaction().commit();}}


聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.