0
点赞
收藏
分享

微信扫一扫

Eclipse+hibernate5+jdk8(第一课)


1.导入hibernate中的required包


2.核心配置文件

<?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>
<property name="hbm2ddl.auto">update</property>
<property name="dialect">
org.hibernate.dialect.Oracle9Dialect
</property>
<property name="connection.url">
jdbc:oracle:thin:@127.0.0.1:1521:orcl
</property>
<property name="connection.username">scott</property>
<property name="connection.password">tiger</property>
<property name="connection.driver_class">
oracle.jdbc.driver.OracleDriver
</property>
<property name="myeclipse.connection.profile">oracle</property>
<property name="show_sql">true</property>
<property name="format_sql">true</property>

<!-- 本地事务 -->
<!-- <property name="current_session_context_class">thread</property> -->
<mapping class="com.wxh.dto.People"/>

</session-factory>
</hibernate-configuration>


3.dto(使用注解的方式)

package com.wxh.dto;

import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.SequenceGenerator;

@Entity
public class People {


private Integer pid;


private String name;

private String sex;
private String phone;
private String address;

public People() {
}

public People(String name, String sex, String phone, String address) {
super();
this.name = name;
this.sex = sex;
this.phone = phone;
this.address = address;
}

@Id
@GeneratedValue(strategy=GenerationType.AUTO,generator="mygen")
@SequenceGenerator(name="mygen",sequenceName="auto_pid")
public Integer getPid() {
return pid;
}
public void setPid(Integer pid) {
this.pid = pid;
}

public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getSex() {
return sex;
}
public void setSex(String sex) {
this.sex = sex;
}
public String getPhone() {
return phone;
}
public void setPhone(String phone) {
this.phone = phone;
}
public String getAddress() {
return address;
}
public void setAddress(String address) {
this.address = address;
}

}



4.hibernatesessionfactory(获取session的工具类)

package com.wxh.sessionfactory;

import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.boot.MetadataSources;
import org.hibernate.boot.registry.StandardServiceRegistry;
import org.hibernate.boot.registry.StandardServiceRegistryBuilder;

public class HibernateSessionFactory {
private static Session session;

private static SessionFactory sessionFactory;

static{

StandardServiceRegistry reg=new StandardServiceRegistryBuilder().configure().build();

sessionFactory=new MetadataSources(reg).buildMetadata().buildSessionFactory();

}

//返回session对象
public static Session getSession(){
if(session==null || !session.isOpen()){
if(sessionFactory==null){
rebuildSessionFactory();
}
session=(sessionFactory!=null)?sessionFactory.openSession():null;
}
return session;
}

//重构sessionFactory
private static void rebuildSessionFactory() {
StandardServiceRegistry reg=new StandardServiceRegistryBuilder().configure().build();
sessionFactory=new MetadataSources(reg).buildMetadata().buildSessionFactory();
}

//返回sessionFactory
public static SessionFactory getSessionFactory(){
if(sessionFactory==null){
rebuildSessionFactory();
}
return sessionFactory;
}
}


5.测试类

package test;

import org.hibernate.Session;

import com.wxh.dto.People;
import com.wxh.sessionfactory.HibernateSessionFactory;

public class Test {

public static void main(String[] args) {
People p=new People("张三", "男", "123456","武汉");

Session session=HibernateSessionFactory.getSession();

session.beginTransaction();
session.save(p);
session.getTransaction().commit();
session.close();
}

}



举报

相关推荐

0 条评论