hibernate初涉
Posted tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了hibernate初涉相关的知识,希望对你有一定的参考价值。
好久都不曾写写总结一些东西了,惰性真的是令人难以克制!虽然和许多北漂族一样,艰苦而又迷茫,但是我总能找到一些方向,一点期盼,因为你就我的目标。我会坚持下去,重拾青春的热血,既然人生如戏,那我不当猪脚。我要当导演!
Action!
在eclipse的market中安装hibernate tools插件
测试是否安装成功
这里我们采用的hibernate Jar包是hibernate-release-4.2.4.Final版本的(lib中有required必备包)
其他jar包如junit和mysql驱动包直接配置到eclipse的userlib中即可(新建一个java project并配置以上内库即可)
1.创建hibernate配置文件(自动提示需要配置对应的dtd文档支持)
在以下的文件中寻找(hibernate-release-4.2.4.Final\\project\\hibernate-core\\src\\main\\resources\\org\\hibernate\\hibernate-mapping-3.0.dtd)
新建一个Hibernate Configuration File(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://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd"> 5 <hibernate-configuration> 6 <session-factory> 7 <property name="connection.username">root</property> 8 <property name="connection.password">root</property> 9 <property name="connection.driver_class">com.mysql.jdbc.Driver</property> 10 <!-- 三个斜杠为简写方式 --> 11 <property name="connection.url">jdbc:mysql:///hibernate?userUnicode=true& 12 characterEncoding=UTF-8</property> 13 <property name="dialect">org.hibernate.dialect.MySQLDialect</property> 14 15 <property name="show_sql">true</property> 16 <property name="format_sql">true</property> 17 18 <!-- 生成表结构策略 --> 19 <!--create:表示启动的时候先drop,再create 20 create-drop: 也表示创建,只不过再系统关闭前执行一下drop 21 update: 这个操作启动的时候会去检查schema是否一致,如果不一致会做scheme更新 22 validate: 启动时验证现有schema与你配置的hibernate是否一致,如果不一致就抛出异常,并不做更新 23 --> 24 <property name="hbm2ddl.auto">update</property> 25 26 <!-- 默认的数据库 --> 27 <property name="hibernate.default_schema">hibernate</property> 28 </session-factory> 29 </hibernate-configuration>
2.新建一个持久化类Students(JavaBean设计原则 1.公有类 2.提供不带参的共有的构造方法 3.属性必须私有 4.set、get方法封装)
3.创建对象-关系映射文件
生成Students类对应配置如下:
1 <?xml version="1.0"?> 2 <!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN" 3 "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd"> 4 <!-- Generated 2016-11-12 23:40:02 by Hibernate Tools 3.4.0.CR1 --> 5 <hibernate-mapping> 6 <class name="Students" table="STUDENTS"> 7 <id name="sid" type="int"> 8 <column name="SID" /> 9 <generator class="assigned" /> 10 </id> 11 <property name="sname" type="java.lang.String"> 12 <column name="SNAME" /> 13 </property> 14 <property name="gender" type="java.lang.String"> 15 <column name="GENDER" /> 16 </property> 17 <property name="birthday" type="java.util.Date"> 18 <column name="BIRTHDAY" /> 19 </property> 20 <property name="address" type="java.lang.String"> 21 <column name="ADDRESS" /> 22 </property> 23 </class> 24 </hibernate-mapping>
将Student.hbm.xml配置到hibernate.cfg.xml中
1 <session-factory> 2 ... 3 <mapping resource="Students.hbm.xml"/> 4 </session-factory>
新建数据库(Student)
4.利用Junit,通过hibernate API编写访问数据库代码
1 import java.util.Date; 2 import org.hibernate.Session; 3 import org.hibernate.SessionFactory; 4 import org.hibernate.Transaction; 5 import org.hibernate.cfg.Configuration; 6 import org.hibernate.service.ServiceRegistry; 7 import org.hibernate.service.ServiceRegistryBuilder; 8 import org.junit.After; 9 import org.junit.Before; 10 import org.junit.Test; 11 12 public class StudentsTest { 13 private SessionFactory sessionFactory; 14 private Session session; 15 private Transaction transaction; 16 17 @Before 18 public void init() { 19 //创建配置对象 20 Configuration config = new Configuration().configure(); 21 22 //创建服务注册对象 23 ServiceRegistry serviceRegistry = new ServiceRegistryBuilder().applySettings( 24 config.getProperties()).buildServiceRegistry(); 25 26 //创建会话工厂对象 27 sessionFactory = config.buildSessionFactory(serviceRegistry); 28 29 //回话对象 30 session = sessionFactory.openSession(); 31 32 //打开事物 33 transaction = session.beginTransaction(); 34 } 35 36 @After 37 public void destory() { 38 transaction.commit(); 39 session.close(); 40 sessionFactory.close(); 41 } 42 43 @Test 44 public void TestSaveStudents() { 45 Students students = new Students(3, "小白", "男", new Date(), "武当山"); 46 session.save(students); 47 } 48 }
以上是关于hibernate初涉的主要内容,如果未能解决你的问题,请参考以下文章