首页 > 代码库 > Hibernate_简单实用流程
Hibernate_简单实用流程
Hibernate:
使用步骤:
将\hibernate-release\lib\required添置构建路径
将sqljdbc添加构建路径
在src下创建hibernate.cfg.xml(有模板)在hibernate开发包下
hibernate-release-4.3.6.Final\project\documentation\src\main\
docbook\quickstart\tutorials\basic\src\test\resources下面的hibernate.cfg.xml作例子
主要有如下四部分配置 :
(1)与DB的连接
(2)可选配置
(3)资源文件注册
(4)二级缓存
示例如下:
1 <?xml version=‘1.0‘ encoding=‘gb2312‘?> 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 <!--显示执行的SQL语句--> 8 <property name="show_sql">true</property> 9 <!--连接地址-->10 <property name="connection.url">jdbc:sqlserver://127.0.0.1:1433;DatabaseName=hibernate</property>11 <property name="connection.username">sa</property><!--连接数据库的用户名-->12 <property name="connection.password">ea1111111111_</property><!--数据库用户密码-->13 14 <!--数据库驱动-->15 <property name="connection.driver_class">com.microsoft.sqlserver.jdbc.SQLServerDriver</property>16 <!--JDBC连接池(使用内置的连接池)-->17 <property name="connection.pool_size">1</property>18 <!--设置Hibernate自动管理上下文的策略-->19 <property name="current_session_context_class">thread</property>20 <!--选择使用的方言-->21 <property name="dialect">org.hibernate.dialect.SQLServer2005Dialect</property>22 <!--在启动时删除并重新创建数据库-->23 <property name="hbm2ddl.auto">create</property>24 25 <mapping resource="com/base/model/Student.hbm.xml"/> 26 </session-factory>27 </hibernate-configuration>
修改数据库连接地址,用户名,密码,与使用的方言
创建model层
创建model映射配置文件**.hbm.xml
1:与被描述的类同名 ,如:UserModel.hbm.xml
2:存放位置与所描述类存放在同一文件夹下
3:主要有如下四部分配置 :
(1)类和表的映射
(2)主键的映射
(3)类的属性和DB中字段的映射
(4)关系的映射
在hibernate开发包下:hibernate-release-4.3.6.Final\project\documentation\src\main\
docbook\quickstart\tutorials\basic\src\test\java\org\hibernate\tutorial\hbm
下面的Event.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="org.hibernate.tutorial.hbm"> <!-- 包名 --> 7 8 <class name="Event" table="EVENTS"> <!-- 类名与对应的数据表名 --> 9 <id name="id" column="EVENT_ID"> <!-- 设置主键, 对应model与数据库中名称 -->10 <generator class="increment"/> <!-- 设置自增-->11 </id>12 <property name="date" type="timestamp" column="EVENT_DATE"/> <!--普通字段 -->13 <property name="title"/> 14 </class>15 16 </hibernate-mapping>
测试类: test
1 public class StudentTest { 2 3 /** 4 * @param args 5 */ 6 public static void main(String[] args) { 7 // TODO 自动生成的方法存根 8 Configuration configuration = new Configuration(); //实例化配置文件 9 ServiceRegistry serviceRegistry = //实例化服务登记10 new StandardServiceRegistryBuilder().applySettings(configuration.getProperties()).build();11 //applySettings(12 //configuration.getProperties()).build();13 // SessionFactory sessionFactory = configuration.buildSessionFactory(serviceRegistry); //获取session工厂(出错,原因未明)14 15 SessionFactory sessionFactory = null; //获取session工厂16 final ThreadLocal<Session> threadLocal = new ThreadLocal<Session>(); 17 try { 18 sessionFactory = new AnnotationConfiguration().configure().buildSessionFactory(); 19 } catch (Throwable ex) { 20 // Log the exception. 21 System.err.println("对不起数据工厂构建失败." + ex); 22 throw new ExceptionInInitializerError(ex); 23 } 24 25 26 //只有通过session才能进行对象的操作, 获得持久化27 Session session = sessionFactory.openSession(); //生成一个新的session28 session.beginTransaction(); //开启事物29 30 Student s = new Student(); //创建一个学生31 s.setName("张三"); //设置名称32 session.save(s); //保存学生33 ...34 35 session.getTransaction().commit(); //提交事务36 session.close(); //关闭session37 sessionFactory.close(); //关闭session工厂38 }39 }
Hibernate_简单实用流程