(一)问候Hibernate4
第一节:Hibernate 简介
官网:http://hibernate.org/
Hibernate 是一个开放源代码的对象关系映射框架,它对JDBC 进行了非常轻量级的对象封装,使得Java程序员可以随心所欲的使用对象编程思维来操纵数据库。
Hibernate 可应用在任何使用JDBC 的场合,既可以在Java 的客户端程序使用,也可以在Servlet/JSP 的Web 应用中使用,最具革命意义的是,Hibernate可以在应用EJB 的J2EE 架构中取代CMP,完成数据持化的重任。
学习重点:
ORM 框架,对象关系映射(Object/Relation Mapping)
最新版本已经是hibernate5了,我们这里学习hibernate4。
百度云下载:http://pan.baidu.com/s/1i531wjV
密码:j7rw
核心jar包:
mysql驱动包:
百度云下载 :http://pan.baidu.com/s/1qXG4ec8
密码:q0pm
第二节:Hibernate4 版Hello World 实现
hibernate.cfg.xml
1 <?xml version='1.0' encoding='utf-8'?> 2 <!DOCTYPE hibernate-configuration PUBLIC 3 "-//Hibernate/Hibernate Configuration DTD 3.0//EN" 4 "http://www.hibernate.org/dtd/hibernate-configuration-3.0.dtd"> 5 6 <hibernate-configuration> 7 8 <session-factory> 9 10 <!--数据库连接设置 --> 11 <property name="connection.driver_class">com.mysql.jdbc.Driver</property> 12 <property name="connection.url">jdbc:mysql://localhost:3306/hibernate</property> 13 <property name="connection.username">root</property> 14 <property name="connection.password">123456</property> 15 16 17 <!-- 方言 --> 18 <property name="dialect">org.hibernate.dialect.MySQL5Dialect</property> 19 20 <!-- 控制台显示SQL --> 21 <property name="show_sql">true</property> 22 23 <!-- 自动更新表结构 --> 24 <property name="hbm2ddl.auto">update</property> 25 26 <mapping resource="com/wishwzp/model/Student.hbm.xml"/> 27 28 </session-factory> 29 30 </hibernate-configuration>
Student.java
1 package com.wishwzp.model; 2 3 public class Student { 4 5 private long id; 6 private String name; 7 8 public long getId() { 9 return id; 10 } 11 public void setId(long id) { 12 this.id = id; 13 } 14 public String getName() { 15 return name; 16 } 17 public void setName(String name) { 18 this.name = name; 19 } 20 21 22 }
Student.hbm.xml
1 <?xml version="1.0"?> 2 <!DOCTYPE hibernate-mapping PUBLIC 3 "-//Hibernate/Hibernate Mapping DTD 3.0//EN" 4 "http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd"> 5 6 <hibernate-mapping package="com.wishwzp.model"> 7 8 <class name="Student" table="t_student"> 9 <id name="id" column="stuId"> 10 <generator class="native"></generator> 11 </id> 12 13 <property name="name"></property> 14 </class> 15 16 </hibernate-mapping>
StudentTest.java
1 package com.wishwzp.service; 2 3 import org.hibernate.Session; 4 import org.hibernate.SessionFactory; 5 import org.hibernate.boot.registry.StandardServiceRegistryBuilder; 6 import org.hibernate.cfg.Configuration; 7 import org.hibernate.service.ServiceRegistry; 8 9 import com.wishwzp.model.Student; 10 11 public class StudentTest { 12 13 public static void main(String[] args) { 14 15 // 实例化配置文件 16 Configuration configuration=new Configuration().configure(); 17 // 实例化服务登记 18 ServiceRegistry serviceRegistry=new StandardServiceRegistryBuilder().applySettings(configuration.getProperties()).build(); 19 // 获取Session工厂 20 SessionFactory sessionFactory=configuration.buildSessionFactory(serviceRegistry); 21 // 生成一个session 22 Session session=sessionFactory.openSession(); 23 // 开启事务 24 session.beginTransaction(); 25 26 Student s=new Student(); 27 s.setName("张三"); 28 session.save(s); 29 30 // 提交事务 31 session.getTransaction().commit(); 32 // 关闭session 33 session.close(); 34 // 关闭session工厂 35 sessionFactory.close(); 36 } 37 }
结果显示:
控制台显示: