【hibernate实例】赵雅智_增删改查

来源:互联网 发布:怎么找淘宝店铺微淘 编辑:程序博客网 时间:2024/05/22 21:22

 User.hbm.xml

  1. <?xml version="1.0"?>  
  2. <!DOCTYPE hibernate-mapping PUBLIC  
  3.       "-//Hibernate/Hibernate Mapping DTD 3.0//EN"  
  4.           "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">  
  5.   
  6.   
  7. <hibernate-mapping package="www.hbsi.com.domain">  
  8.     <!-- 主键 -->  
  9.     <class name="User" >  
  10.         <id name="id">  
  11.             <generator class="increment" />  
  12.         </id>  
  13.         <!-- 属性 -->  
  14.         <property name="name" />  
  15.         <!-- type属性为通过hibernate的某个类型知道把java里的类型映射到数据库里的类型  
  16.         date类型默认为TIMESTAMP,有时间也有日期  
  17.                    如果想要只有日期的就要设置一下  
  18.          -->  
  19.         <property name="birthday" type="date"/>  
  20.           
  21.     </class>  
  22.   
  23. </hibernate-mapping>  

新建一个工具类:HibernateUtil.java

  1. package www.hbsi.com.utils;  
  2.   
  3. import org.hibernate.Session;  
  4. import org.hibernate.SessionFactory;  
  5. import org.hibernate.cfg.Configuration;  
  6.   
  7. public class HibernateUtil {  
  8.     private static Session session;  
  9.   
  10.     static {  
  11.         //加载配置文件  
  12.         Configuration config = new Configuration().configure();  
  13.         //session工厂  
  14.         SessionFactory sf = config.buildSessionFactory();  
  15.         session = sf.openSession();  
  16.     }  
  17.   
  18.     public static Session getSession() {  
  19.         return session;  
  20.     }  
  21. }  

编写增删改查:crud.java

  1. package www.hbsi.com.demo;  
  2.   
  3. import java.util.Date;  
  4. import java.util.List;  
  5.   
  6. import org.hibernate.Query;  
  7. import org.hibernate.Session;  
  8. import org.hibernate.Transaction;  
  9. import org.junit.Test;  
  10.   
  11. import www.hbsi.com.domain.User;  
  12. import www.hbsi.com.utils.HibernateUtil;  
  13.   
  14. public class curd {  
  15.     Transaction tx = null;  
  16.     Session session = null;  
  17.   
  18.     /* 
  19.      * 增加用户 
  20.      */  
  21.     @Test  
  22.     public void addUser() {  
  23.         User user = new User();  
  24.         user.setName("Linda");  
  25.         user.setBirthday(new Date());  
  26.   
  27.         // 获取session  
  28.         try {  
  29.             session = HibernateUtil.getSession();  
  30.             session.beginTransaction();  
  31.             // 增加  
  32.             session.save(user);  
  33.             session.getTransaction().commit();  
  34.         } catch (Exception e) {  
  35.             if (tx != null)  
  36.                 tx.rollback();  
  37.             // throw new RuntimeException(e);//扔出异常  
  38.             e.printStackTrace();// 打印轨迹,打印异常  
  39.         } finally {  
  40.             if (session != null)  
  41.                 session.close();  
  42.         }  
  43.   
  44.     }  
  45.       
  46.     /* 
  47.      * 根据id查找用户 
  48.      */  
  49.     @Test  
  50.     public void findUser() {  
  51.   
  52.         Session session = HibernateUtil.getSession();  
  53.         User user = (User) session.get(User.class1);  
  54.         System.out.println(user.getName() + "---" + user.getBirthday());  
  55.         session.close();  
  56.   
  57.     }  
  58.       
  59.     /* 
  60.      * load方式查找用户 
  61.      * 和get方法区别,load属于懒加载 
  62.      * 如果没有输出语句,get运行时控制台输出sql语句,load运行不输出sql语句 
  63.      * load在调用的时候才加载sql语句 
  64.      */  
  65.     @Test  
  66.     public void loadFindTest() {  
  67.         Session session = HibernateUtil.getSession();  
  68.         User user = (User) session.load(User.class2); // 懒加载,延迟加载  
  69.         System.out.println(user.getName()+"---"+user.getBirthday());  
  70.         session.close();  
  71.     }  
  72.       
  73.     /* 
  74.      * 根据id删除用户 
  75.      */  
  76.   
  77.     @Test  
  78.     public void deleteUser() {  
  79.   
  80.         /*找到之后删除 
  81.          
  82.          Session session = HibernateUtil.getSession(); 
  83.          session.beginTransaction();  
  84.          User user = (User)session.get(User.class, 3);  
  85.          session.delete(user); 
  86.          session.getTransaction().commit();  
  87.          session.close(); 
  88.          */  
  89.            
  90.         //直接删除  
  91.         Session session = HibernateUtil.getSession();  
  92.         session.beginTransaction();  
  93.         User user = new User();  
  94.         user.setId(1);  
  95.         session.delete(user);  
  96.         session.getTransaction().commit();  
  97.         session.close();  
  98.   
  99.     }  
  100.       
  101.     /* 
  102.      * 修改用户 
  103.      */  
  104.   
  105.     @Test  
  106.     public void updateUser() {  
  107.          //找到修改  
  108.         /* Session session = HibernateUtil.getSession(); 
  109.          session.beginTransaction(); 
  110.           
  111.          User user = (User) session.get(User.class,1); 
  112.          user.setName("Tom"); 
  113.          session.update(user); 
  114.           
  115.          session.getTransaction().commit(); session.close(); 
  116.          */  
  117.            
  118.         //直接修改  
  119.         //如果不给birthday复制,birthday值为空  
  120.         Session session = HibernateUtil.getSession();  
  121.         session.beginTransaction();  
  122.   
  123.         User user = new User();  
  124.         user.setId(1);  
  125.         user.setName("Tom");  
  126.         session.update(user);  
  127.   
  128.         session.getTransaction().commit();  
  129.         session.close();  
  130.   
  131.     }  
  132.       
  133.     /* 
  134.      * 查找所有 
  135.      */  
  136.     @Test  
  137.     public void getAll() {  
  138.         Session session = HibernateUtil.getSession();  
  139.         Query query = session.createQuery("from User"); // HQL;针对实体类  
  140.         List<User> users = query.list();  
  141.         for (User user : users) {  
  142.             System.out.println(user.getId() + ":" + user.getName() + ":"  
  143.                     + user.getBirthday());  
  144.         }  
  145.     }  
  146. }  

查找


根据id删除



直接删除

修改,直接修改

修改,查找后修改

查询所有

load方式查询

原创粉丝点击