基于Hibernate实现CRUD

 

使用Hibernate设计通用接口实现对Java对象进行增查改删(CRUD)的工作;

具体要求:实现CRUD接口具有通用性;可以在已有项目中增加相应接口;

 

dao层


    public interface GoodsDao {  
           public void add(Object object);  
           public void delete(Object object);  
           public Object get(Class clas,Integer id);  
           public void update(Object object);  

    }

public class GoodsDaoImp extends HibernateDao implements GoodsDao {
        @Override  
        public void add(Object object)  
        {  
        }  
        @Override  
        public void delete(Object object)  
        {  
        super.delete(object);  
        }  
        @Override  
        public void update(Object object)  
        {  
        super.update(object);  
        }  
        @Override  
        public Object get(Class clas,Integer id)  
        {  
        return super.get(clas, id);  
        }  
     
    }

public class HibernateUtil {
    
    private static Configuration configuration;
    private static SessionFactory sessionFactory=null;

    private HibernateUtil(){
        
    }
    
    public static SessionFactory getSessionFactory(){
        if(sessionFactory==null) {
           configuration=new Configuration();
            configuration.configure();
            sessionFactory=configuration.buildSessionFactory();
        }
        return sessionFactory;
    }
    public static Session getSession(){
        return getSessionFactory().openSession();
    }
    public static void main(String []args){
        System.out.println(getSession());
    }
}

//添加
        try  
        {  
            session = HibernateUtils.getSession();
            transaction = session.beginTransaction();      
             
        session.save(object);  
        transaction.commit();          
        session.close(); 
     
        }catch(Exception e)  
        {  
       e.printStackTrace();  
        }
         } 

   //查询

session = HibernateUtils.getSession();
                
                transaction = session.beginTransaction();      
                  
         object=session.get(clas,id);  
         transaction.commit();
         session.close();  
           }catch(Exception e)  
           {  
         e.printStackTrace();  
           } 
          return object;  
       }   


    //删除
          try  
          {  
              session = HibernateUtils.getSession();
                
                transaction = session.beginTransaction();      
                
         session.delete(object);  
         transaction.commit(); 
         session.close();  
          }catch(Exception e)  
          {  
         e.printStackTrace();  
          }  
         }  
      

 

     //修改
            try  
            {  
                session = HibernateUtils.getSession();
                
                transaction = session.beginTransaction();      
                 
           session.update(object);  
           transaction.commit();  
           session.close();  
            }catch(Exception e)  
            {  
           e.printStackTrace();  
            } 
           }  
    }   

pojo

import java.util.HashSet;
import java.util.Set;
 
public class Goods {
  private int bid;
  private String company_name;
  private Set<User>user=new HashSet<User>();
public int getBid() {
    return bid;
}
public void setBid(int bid) {
    this.bid = bid;
}
public String getCompany_name() {
    return company_name;
}
public void setCompany_name(String company_name) {
    this.company_name = company_name;
}
public Set<User> getUser() {
    return user;
}
public void setUser(Set<User> user) {
    this.user = user;
}
@Override
public String toString() {
    return "goods [bid=" + bid + ", company_name=" + company_name + ", user=" + user + ", getBid()=" + getBid()
            + ", getCompany_name()=" + getCompany_name() + ", getUser()=" + getUser() + ", getClass()=" + getClass()
            + ", hashCode()=" + hashCode() + ", toString()=" + super.toString() + "]";
}
  }

public class Product {
      private int gid;
      private String gname;
      private String gaddress;
      private String gdata;
      private Sequence sequence;
        public int getGid() {
            return gid;
        }
        public void setGid(int gid) {
            this.gid = gid;
        }
        public String getGname() {
            return gname;
        }
        public void setGname(String gname) {
            this.gname = gname;
        }
        public String getGaddress() {
            return gaddress;
        }
        public void setGaddress(String gaddress) {
            this.gaddress = gaddress;
        }
        public String getGdata() {
            return gdata;
        }
        public void setGdata(String gdata) {
            this.gdata = gdata;
        }
        public Sequence getSequence() {
            return sequence;
        }
        public void setSequence(Sequence sequence) {
            this.sequence = sequence;
        }
        public String toString(){
            return "User [gid="+gid+"gdata,="+gdata+",gaddress="+gaddress+",oid="+sequence+"]";
        }
}

public class User {
    private int uid;
    private String uname;
    private int uage;
    private String usex;
    private String ucity;
    private Set<Sequence>sequence=new  HashSet<Sequence>(); 
    public int getUid() {
        return uid;
    }
    public void setUid(int uid) {
        this.uid = uid;
    }
    public String getUname() {
        return uname;
    }
    public void setUname(String uname) {
        this.uname = uname;
    }
    public int getUage() {
        return uage;
    }
    public void setUage(int i) {
        this.uage = i;
    }
    public String getUsex() {
        return usex;
    }
    public void setUsex(String usex) {
        this.usex = usex;
    }
    public String getUcity() {
        return ucity;
    }
    public void setUcity(String ucity) {
        this.ucity = ucity;
    }
    public Set<Sequence> getSequence() {
        return sequence;
    }
    public void setOrder(Set<Sequence> sequence) {
        this.sequence = sequence;
    }
    public String toString(){
        return "User [id="+uid+",uname="+uname+",age="+uage+",sex="+usex+",city="+ucity+"]";
    }
}

User.hbm.xml

<?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.entity.User" table="t_user2">

 
      <id name="uid" column="uid">
      <generator class="native"/>
      </id>
    
<property name="uname" column="uname" type="string"/>
<property name="uage" column="uage" />
<property name="usex" column="usex" type="string"/>
<property name="ucity" column="ucity" type="string"/>
  <set name="order">
            <key column="oid"/>
            <one-to-many class="pojo。Sequence"/>
 </set>
 
</class>
</hibernate-mapping>

hibernate.cfg.xml

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

<!--
  ~ Hibernate, Relational Persistence for Idiomatic Java
  ~
  ~ License: GNU Lesser General Public License (LGPL), version 2.1 or later.
  ~ See the lgpl.txt file in the root directory or <http://www.gnu.org/licenses/lgpl-2.1.html>.
  -->
<!DOCTYPE hibernate-configuration PUBLIC
    "-//Hibernate/Hibernate Configuration DTD 3.0//EN"
    "http://www.hibernate.org/dtd/hibernate-configuration-3.0.dtd">
<hibernate-configuration>
    <session-factory>
        <property name="show_sql">true</property>
        <!--  <property name="hbm2ddl.auto">update</property>-->
        <property name="hibernate.dialect">org.hibernate.dialect.MySQL5Dialect</property>
        <property name="hibernate.connection.driver_class">com.mysql.jdbc.Driver</property>
        <property name="hibernate.connection.url">jdbc:mysql://localhost:3306/hibernate?characterEncoding=utf8</property>
        <property name="hibernate.connection.username">root</property>
        <property name="hibernate.connection.password">此处输入自己数据库的密码</property>
         <property name="format_sql">true</property>
        
        <mapping resource="com/entity/User.hbm.xml"/>
                <mapping resource="com/entity/Order.hbm.xml"/>
                        <mapping resource="com/entity/Goods.hbm.xml"/>
                                <mapping resource="com/entity/Business.hbm.xml"/>
    </session-factory>
</hibernate-configuration>

还有log4j.properties

 将orm框架应用于项目中,基于Hibernate实现增删改查的功能,掌握Hibernate的主要接口使用;设计持久化接口的基本方法;熟悉提高Hibernate使用性能的方法,更加能够综合运用hibernate。

好的,以下是基于 Hibernate 框架创建 Student 类实现 CRUD: 1. 首先创建一个 Student 类,包含 id、name 和 age 三个属性,并在类上添加 `@Entity` 注解,用于将该类映射为数据库表。 ```java @Entity public class Student { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) private int id; private String name; private int age; // 构造方法、getter 和 setter 方法省略 } ``` 2. 在 `hibernate.cfg.xml` 配置文件中配置数据库连接信息和 Hibernate 相关属性。 ```xml <hibernate-configuration> <session-factory> <property name="hibernate.connection.driver_class">com.mysql.jdbc.Driver</property> <property name="hibernate.connection.url">jdbc:mysql://localhost:3306/testdb</property> <property name="hibernate.connection.username">root</property> <property name="hibernate.connection.password">password</property> <property name="hibernate.dialect">org.hibernate.dialect.MySQL5InnoDBDialect</property> <property name="hibernate.show_sql">true</property> <property name="hibernate.hbm2ddl.auto">update</property> </session-factory> </hibernate-configuration> ``` 3. 创建一个 DAO(数据访问对象)类,用于对 Student 对象进行 CRUD 操作。在该类中通过 `SessionFactory` 获取 `Session` 对象,然后通过 `Session` 对象进行数据库操作。 ```java public class StudentDAO { private final SessionFactory sessionFactory; public StudentDAO(SessionFactory sessionFactory) { this.sessionFactory = sessionFactory; } public void save(Student student) { Session session = sessionFactory.openSession(); Transaction transaction = null; try { transaction = session.beginTransaction(); session.save(student); transaction.commit(); } catch (Exception e) { if (transaction != null) { transaction.rollback(); } e.printStackTrace(); } finally { session.close(); } } public Student get(int id) { Session session = sessionFactory.openSession(); Student student = null; try { student = session.get(Student.class, id); } catch (Exception e) { e.printStackTrace(); } finally { session.close(); } return student; } public void update(Student student) { Session session = sessionFactory.openSession(); Transaction transaction = null; try { transaction = session.beginTransaction(); session.update(student); transaction.commit(); } catch (Exception e) { if (transaction != null) { transaction.rollback(); } e.printStackTrace(); } finally { session.close(); } } public void delete(int id) { Session session = sessionFactory.openSession(); Transaction transaction = null; try { transaction = session.beginTransaction(); Student student = session.get(Student.class, id); session.delete(student); transaction.commit(); } catch (Exception e) { if (transaction != null) { transaction.rollback(); } e.printStackTrace(); } finally { session.close(); } } } ``` 4. 在应用程序中使用 StudentDAO 类进行 CRUD 操作。 ```java public class Application { public static void main(String[] args) { Configuration configuration = new Configuration().configure(); SessionFactory sessionFactory = configuration.buildSessionFactory(); StudentDAO studentDAO = new StudentDAO(sessionFactory); // 创建 Student 对象并保存到数据库 Student student = new Student("Tom", 18); studentDAO.save(student); // 根据 id 获取 Student 对象并更新其 age 属性 student = studentDAO.get(1); student.setAge(19); studentDAO.update(student); // 根据 id 删除 Student 对象 studentDAO.delete(1); } } ``` 以上就是使用 Hibernate 框架创建 Student 类实现 CRUD 的过程。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值