首页 技术 正文
技术 2022年11月9日
0 收藏 613 点赞 4,399 浏览 3899 个字

起初照着官方文档配,一直出错,貌似官方的文档时错的,查了非常多资料,综合整理了一个可行的方案,例如以下:

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();
}
}
相关推荐
python开发_常用的python模块及安装方法
adodb:我们领导推荐的数据库连接组件bsddb3:BerkeleyDB的连接组件Cheetah-1.0:我比较喜欢这个版本的cheeta…
日期:2022-11-24 点赞:878 阅读:9,082
Educational Codeforces Round 11 C. Hard Process 二分
C. Hard Process题目连接:http://www.codeforces.com/contest/660/problem/CDes…
日期:2022-11-24 点赞:807 阅读:5,556
下载Ubuntn 17.04 内核源代码
zengkefu@server1:/usr/src$ uname -aLinux server1 4.10.0-19-generic #21…
日期:2022-11-24 点赞:569 阅读:6,406
可用Active Desktop Calendar V7.86 注册码序列号
可用Active Desktop Calendar V7.86 注册码序列号Name: www.greendown.cn Code: &nb…
日期:2022-11-24 点赞:733 阅读:6,179
Android调用系统相机、自定义相机、处理大图片
Android调用系统相机和自定义相机实例本博文主要是介绍了android上使用相机进行拍照并显示的两种方式,并且由于涉及到要把拍到的照片显…
日期:2022-11-24 点赞:512 阅读:7,815
Struts的使用
一、Struts2的获取  Struts的官方网站为:http://struts.apache.org/  下载完Struts2的jar包,…
日期:2022-11-24 点赞:671 阅读:4,898