hibernate开发步骤
admin
2023-06-04 03:41:19
0

Hibernate框架开发步骤

项目导入需要的jar:

http://pan.baidu.com/s/1eRQ19C2

编写hibernate.cfg.xml文件

xml version='1.0'encoding='UTF-8'?>

DOCTYPE hibernate-configuration PUBLIC

         "-//Hibernate/Hibernate Configuration DTD3.0//EN"

         "http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">

<hibernate-configuration>

    <session-factory>

       

       

        <property name="connection.url">jdbc:mysql://127.0.0.1:3306/testproperty>

       

        <property name="connection.username">rootproperty>

       

        <property name="connection.password">123456property>

       

        <property name="connection.driver_class">com.mysql.jdbc.Driverproperty>   

            

            

             <property name="dialect">org.hibernate.dialect.MySQLDialectproperty>

            

             <property name="show_sql">trueproperty>

            

             <property name="format_sql">trueproperty>

            

             <property name="hbm2ddl.auto">updateproperty>

            

             <mapping resource="com/edu/bean/User.hbm.xml"/>

    session-factory>

hibernate-configuration>

编写实体类,创建表

eg

package com.edu.bean;

 

public class User {

         private intid;

         private String username;

         private String password;

         public intgetId() {

                   return id;

         }

         public voidsetId(int id) {

                   this.id =id;

         }

         public String getUsername() {

                   return username;

         }

         public voidsetUsername(String username) {

                   this.username= username;

         }

         public String getPassword() {

                   return password;

         }

         public voidsetPassword(String password) {

                   this.password= password;

         }

public User(Stringusername, String password) {

                   super();

                   this.username= username;

                   this.password= password;

         }

         public User() {

                   // TODO Auto-generated constructor stub

         }

}

编写映射文件

eg

xml version="1.0"encoding="UTF-8"?>

DOCTYPE hibernate-mapping PUBLIC"-//Hibernate/Hibernate Mapping DTD 3.0//EN"

"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">

<hibernate-mapping>

        

         <class name="com.edu.bean.User"table="user">

                  

                   <id name="id"column="id">

                           

                            <generator class="identity">generator>

                   id>

                   <property name="username"type="string"column="username">property>

                   <property name="password"type="string"column="password">property>

         class>

hibernate-mapping>

将映射文件放入到hibernate.cfg.xml

<mapping resource="com/edu/bean/User.hbm.xml"/>

编写代码:

eg

package com.edu.test;

import org.hibernate.Session;

import org.hibernate.SessionFactory;

import org.hibernate.Transaction;

import org.hibernate.cfg.Configuration;

import org.junit.Test;

import com.edu.bean.User;

public class HibernateTest {

         @Test

         public voidtest(){

                   //读取hibernate.cfg.xml主配置文件

                   Configurationcfg=new Configuration().configure("hibernate.cfg.xml");

                   //创建SessionFactory工厂

                   SessionFactorysf=cfg.buildSessionFactory();

                   //获取session

                   Sessionsession=sf.openSession();

                   //创建事务

                   Transactiontc=session.beginTransaction();

                   //创建User对象

                   Useruser=new User("张三", "123456");

                   //持久化对象

                   try{

                            //保存数据

                            session.save(user);

                            //提交事务(不可少)

                            tc.commit();

                   }catch(Exception e){

                            //数据操作失败,回滚事务

                            tc.rollback();

                   }

                   //关闭session

                   session.close();

         }

}

代码分层优化:
获取SessionHibernateGetSession:

package com.edu.dbconn;

import org.hibernate.Session;

import org.hibernate.SessionFactory;

import org.hibernate.cfg.Configuration;

public class HibernateGetSession {

         //保证SessionFactory工厂只创建一次

         private staticSessionFactory sf;

         static{

                   if(sf==null){

                            //读取hibernate.cfg.xml主配置文件

                            Configurationcfg=new Configuration().configure("hibernate.cfg.xml");

                            //创建SessionFactory工厂

                            sf=cfg.buildSessionFactory();

                   }

         }

         public staticSession getSession(){

                   //创建session

                   Sessionsession=sf.openSession();

                   return session;       

         }

}

Dao层的UserDao:

package com.edu.dao;

import org.hibernate.Session;

import org.hibernate.Transaction;

import com.edu.bean.User;

import com.edu.dbconn.HibernateGetSession;

 

public class UserDao {

         public voidsaveUser(){

                   //获取session

                   Sessionsession=HibernateGetSession.getSession();

                   //创建事务

                   Transactiontc=session.beginTransaction();

                   //创建User对象

                   Useruser=new User("李四", "123456");

                   //持久化对象

                   try{

                            //保存数据

                            session.save(user);

                            //提交事务(不可少)

                            tc.commit();

                   }catch(Exception e){

                            //数据操作失败,回滚事务

                            tc.rollback();

                   }

                   //关闭session

                   session.close();

         }

}

测试层:

package com.edu.test;

import org.junit.Test;

import com.edu.dao.UserDao;

public class HibernateTest {

         @Test

         public voidtest(){

                   UserDaoud=new UserDao();

                   ud.saveUser();

         }

}

实例源码:

http://pan.baidu.com/s/1eRPLFJO


相关内容

热门资讯

“贴耳大吼、扇巴掌”?新生儿入... 近日,四川成都一新生儿入住月子会所仅4天,突发颅内出血被送进ICU一事引发关注。孩子的母亲周女士反映...
特朗普称将就上诉法院涉白宫宴会... △特朗普(资料图)当地时间8月7日,美国总统特朗普在社交平台“真实社交”发文称,将立即就联邦上诉法院...
高景太阳能申请背接触电池前板专... 国家知识产权局信息显示,四川高景太阳能科技有限公司申请一项名为“背接触电池前板、其制备方法及光伏电池...
宿迁市政府领导专题调研江苏省宿... 8月6日,宿迁市副市长陈伟赴江苏省宿迁环境监测中心,专题调研“人工智能+监测”工作开展情况。宿迁市生...
科技改变生活:普通人如何抓住A... 听着, 科技这个词给人的感觉那可是相当的高大上, 就好像它仅仅是属于实验室里头的科学家或者硅谷的那些...
鼓励领导干部带头休假之后又撤回... 近日,河南省委组织部、省人力资源社会保障厅、省商务厅、省文化和旅游厅、省政府国资委、省总工会近日联合...
耗资4亿美元,特朗普的白宫宴会... 据路透社8月7日报道,美国一家联邦上诉法院于本周五下达指令,要求特朗普政府停止在已拆除的白宫东翼旧址...
胡锡进:新西兰外长像只疯狗,竟... 新西兰这几年出了一个对华非常恶毒的外交部长,他叫温斯顿·彼得斯,81岁。他给中新关系带来了与前些年截...
霍尔木兹协议将近达成,美伊正在... 关于霍尔木兹局势有哪些最新消息?凤凰卫视驻伊朗记者李睿从德黑兰发回报道:伊朗与阿曼就霍尔木兹海峡的协...
“新婚前夜输光3000亿”,硅... 文|张雪莹美国加利福尼亚州滨海小镇卡梅尔,终年海雾缭绕的松林海岸间,藏着众多精品艺廊与隐世豪宅,向来...