hibernate 入门案例

时间:2023-03-10 03:20:41
hibernate 入门案例

1,创建工程,导入jar

ojdbc14.jar 数据库驱动包,我用的是oracle数据库,根据实际的数据库选择驱动包

hibernate 入门案例

创建java类,并利用bibernate插件完成orm映射,创建hbm.xml  cfg.xml

调整下表名称和主键生成方式

hibernate 入门案例

创建测试代码

hibernate 入门案例

 package com.lxl.it.vo;

 public class Student {
private String name;
private int age;
private int id;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
@Override
public String toString() {
return "Student [name=" + name + ", age=" + age + ", id=" + id + "]";
} }

java类

 <?xml version="1.0"?>
<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<!-- Generated 2016-9-5 14:36:05 by Hibernate Tools 3.4.0.CR1 -->
<hibernate-mapping>
<class name="com.lxl.it.vo.Student" table="STUDENT">
<id name="id" type="int">
<column name="ID"/>
<generator class="sequence">
<param name="sequence">SEQ_LXL_TEST</param>
</generator>
</id>
<property generated="never" lazy="false" name="name" type="java.lang.String">
<column name="NAME"/>
</property>
<property generated="never" lazy="false" name="age" type="int">
<column name="AGE"/>
</property>
</class>
</hibernate-mapping>

类的映射文件

 <?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="hibernate.connection.driver_class">oracle.jdbc.driver.OracleDriver</property>
<property name="hibernate.connection.password">bspdev</property>
<property name="hibernate.connection.url">jdbc:oracle:thin:@10.202.6.37:1521:bspdev1</property>
<property name="hibernate.connection.username">bsp</property>
<property name="hibernate.dialect">org.hibernate.dialect.Oracle10gDialect</property>
<!-- 执行操作时是否在控制台打印 SQL -->
<property name="show_sql">true</property>
<!-- 是否对 SQL 进行格式化 -->
<property name="format_sql">true</property>
<!-- 生成数据表的策略 -->
<property name="hbm2ddl.auto">update</property>
<!-- 指定自动生成数据表的策略 -->
<property name="cache.provider_class">org.hibernate.cache.NoCacheProvider</property>
<!-- 指定关联的 .hbm.xml 文件 -->
<mapping resource="com/atguigu/hibernate/helloworld/News.hbm.xml"/>
<mapping resource="com/lxl/it/vo/Student.hbm.xml"/>
</session-factory>
</hibernate-configuration>

hibernate主配置文件

 package com.lxl.it.vo;

 import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.Transaction;
import org.hibernate.cfg.Configuration;
import org.hibernate.service.ServiceRegistry;
import org.hibernate.service.ServiceRegistryBuilder;
import org.junit.After;
import org.junit.Before;
import org.junit.Test; public class StudentTest {
private SessionFactory sessionFactory;
private Session session;
private Transaction transaction; @Before
public void init() {
Configuration configuration = new Configuration().configure();
ServiceRegistry serivceRegistry = new ServiceRegistryBuilder()
.applySettings(configuration.getProperties())
.buildServiceRegistry();
sessionFactory=configuration.buildSessionFactory(serivceRegistry);
session =sessionFactory.openSession();
transaction=session.beginTransaction();
}
@After
public void destory(){
transaction.commit();
session.close();
sessionFactory.close();
}
@Test
public void testSessionCache(){
Student s=(Student)session.get(Student.class, 1);
System.out.println(s);
Student s2=(Student)session.get(Student.class, 1);
System.out.println(s);
} @Test
public void test() {
Configuration configuration = new Configuration().configure();
ServiceRegistry serviceRegistry = new ServiceRegistryBuilder()
.applySettings(configuration.getProperties())
.buildServiceRegistry();
SessionFactory sessionFactory = configuration
.buildSessionFactory(serviceRegistry);
Session session = sessionFactory.openSession();
Transaction transcation = session.beginTransaction();
Student s = new Student();
s.setAge(10);
s.setName("lxl");
session.save(s);
transcation.commit();
session.close();
sessionFactory.close();
}
}

测试类