• Maven+Hibernate4注解0配置示例


    工程使用Maven来 管理依赖,Hibernate版本4.2.0.Final。

    工程结构图:

    pom.xml文件:

     1 <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
     2   xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
     3   <modelVersion>4.0.0</modelVersion>
     4 
     5   <groupId>com.purple_river.itat.maven.demo.user.dao</groupId>
     6   <artifactId>user-dao</artifactId>
     7   <version>0.0.1-SNAPSHOT</version>
     8   <packaging>jar</packaging>
     9 
    10   <name>user-dao</name>
    11   <url>http://maven.apache.org</url>
    12 
    13   <properties>
    14     <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    15   </properties>
    16 
    17   <dependencies>
    18     <dependency>
    19       <groupId>junit</groupId>
    20       <artifactId>junit</artifactId>
    21       <version>4.10</version>
    22       <scope>test</scope>
    23     </dependency>
    24     <dependency>
    25         <groupId>org.hibernate</groupId>
    26         <artifactId>hibernate-core</artifactId>
    27         <version>4.2.0.Final</version>
    28     </dependency>
    29     <dependency>
    30         <groupId>mysql</groupId>
    31         <artifactId>mysql-connector-java</artifactId>
    32         <version>5.1.27</version>
    33     </dependency>
    34   </dependencies>
    35 </project>

    hibernate.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         <!--显示执行的SQL语句 -->
     8         <property name="show_sql">true</property>
     9         <!-- 格式化输出 -->
    10         <property name="format_sql">true</property>
    11         <!--连接字符串 -->
    12         <property name="connection.url">jdbc:mysql://localhost:3306/test</property>
    13         <!--连接数据库的用户名 -->
    14         <property name="connection.username">root</property>
    15         <!--数据库用户密码 -->
    16         <property name="connection.password">soft</property>
    17         <!--数据库驱动 -->
    18         <property name="connection.driver_class">com.mysql.jdbc.Driver</property>
    19         <!--选择使用的方言 -->
    20         <property name="dialect">org.hibernate.dialect.MySQLDialect</property>
    21         <property name="hibernate.hbm2ddl.auto">update</property>
    22         <property name="configurationClass">org.hibernate.cfg.AnnotationConfiguration</property>
    23         <mapping class="com.purple_river.itat.maven.demo.bean.user.User" />
    24     </session-factory>
    25 </hibernate-configuration> 

    User类:

      1 package com.purple_river.itat.maven.demo.bean.user;
      2 
      3 import java.io.Serializable;
      4 import java.util.Date;
      5 
      6 import javax.persistence.Column;
      7 import javax.persistence.Entity;
      8 import javax.persistence.GeneratedValue;
      9 import javax.persistence.Id;
     10 import javax.persistence.Table;
     11 
     12 import org.hibernate.annotations.GenericGenerator;
     13 
     14 @Entity
     15 @Table(name="user")
     16 public class User implements Serializable
     17 {
     18     private static final long    serialVersionUID    = -2602075959996355784L;
     19     @Id
     20     @GenericGenerator(name="generator",strategy="increment")
     21     @GeneratedValue(generator="generator")
     22     @Column(name="id",nullable=false,unique=true)
     23     private long id;
     24     /**
     25      * @return the id
     26      */
     27     public long getId() {
     28         return id;
     29     }
     30 
     31     /**
     32      * @param id the id to set
     33      */
     34     public void setId(long id) {
     35         this.id = id;
     36     }
     37 
     38     @Column(name="username",nullable=false)
     39     private String username;
     40     @Column(name="age")
     41     private int age;
     42     @Column(name="birthday")
     43     private Date birthday;
     44     
     45     /**
     46      * @return the username
     47      */
     48     public String getUsername() {
     49         return username;
     50     }
     51 
     52     /**
     53      * @param username the username to set
     54      */
     55     public void setUsername(String username) {
     56         this.username = username;
     57     }
     58 
     59     /**
     60      * @return the age
     61      */
     62     public int getAge() {
     63         return age;
     64     }
     65 
     66     /**
     67      * @param age the age to set
     68      */
     69     public void setAge(int age) {
     70         this.age = age;
     71     }
     72 
     73     /**
     74      * @return the birthday
     75      */
     76     public Date getBirthday() {
     77         return birthday;
     78     }
     79 
     80     /**
     81      * @param birthday the birthday to set
     82      */
     83     public void setBirthday(Date birthday) {
     84         this.birthday = birthday;
     85     }
     86 
     87     /**
     88      * 
     89      */
     90     public User() {
     91         super();
     92         // TODO Auto-generated constructor stub
     93     }
     94 
     95     /**
     96      * @param username
     97      * @param age
     98      * @param birthday
     99      */
    100     public User(String username, int age, Date birthday) {
    101         super();
    102         this.username = username;
    103         this.age = age;
    104         this.birthday = birthday;
    105     }
    106 
    107     /* (non-Javadoc)
    108      * @see java.lang.Object#toString()
    109      */
    110     @Override
    111     public String toString() {
    112         return "User [username=" + username + ", age=" + age + ", birthday="
    113                 + birthday + "]";
    114     }
    115     
    116     
    117 }

     HibernateUtil类:

     1 /*
     2  * @packageName:com.purple_river.itat.maven.demo.user.dao.util
     3  * @fileName:HibernateUtil.java
     4  * @description:Hibernate操作工具类
     5  * @author:luckystar2010
     6  * @date:2013-11-28
     7  */
     8 package com.purple_river.itat.maven.demo.user.dao.util;
     9 
    10 import org.hibernate.SessionFactory;
    11 import org.hibernate.cfg.Configuration;
    12 import org.hibernate.service.ServiceRegistry;
    13 import org.hibernate.service.ServiceRegistryBuilder;
    14 
    15 public final class HibernateUtil {
    16     private static SessionFactory factory = null;
    17     
    18     public static SessionFactory getSessionFactory() {
    19         if (factory == null) {
    20             Configuration conf = new Configuration().configure();
    21             ServiceRegistry serviceRegistry = new ServiceRegistryBuilder().applySettings(conf.getProperties()).buildServiceRegistry();
    22             factory = conf.buildSessionFactory(serviceRegistry);
    23         }
    24         
    25         return factory;
    26     }
    27     
    28     /*public static void main(String[] args) {
    29         SessionFactory sf = HibernateUtil.getSessionFactory();
    30         System.out.println(sf.toString());
    31     }*/
    32 }

     IUserDao类 :

     1 /*
     2  * @packageName:com.purple_river.itat.maven.demo.user.dao
     3  * @fileName:IUserDao.java
     4  * @description:用户管理数据库操作接口
     5  * @author:luckystar2010
     6  * @date:2013-11-28
     7  */
     8 package com.purple_river.itat.maven.demo.user.dao;
     9 
    10 import java.util.List;
    11 
    12 import com.purple_river.itat.maven.demo.bean.user.User;
    13 
    14 public interface IUserDao {
    15 
    16     public void addUser(User user);
    17     public User getUser(String name);
    18     public List<User> getAll();
    19 }

     UserDao类:

     1 /*
     2  * @packageName:com.purple_river.itat.maven.demo.user.dao
     3  * @fileName:UserDao.java
     4  * @description:用户管理数据库操作接口
     5  * @author:luckystar2010
     6  * @date:2013-11-28
     7  */
     8 package com.purple_river.itat.maven.demo.user.dao;
     9 
    10 import java.util.List;
    11 
    12 import org.hibernate.HibernateException;
    13 import org.hibernate.Session;
    14 import org.hibernate.SessionFactory;
    15 
    16 import com.purple_river.itat.maven.demo.bean.user.User;
    17 import com.purple_river.itat.maven.demo.user.dao.util.HibernateUtil;
    18 
    19 public class UserDao implements IUserDao {
    20 
    21     /* (non-Javadoc)
    22      * @see com.purple_river.itat.maven.demo.user.dao.IUserDao#addUser(com.purple_river.itat.maven.demo.bean.user.User)
    23      */
    24     public void addUser(User user) {
    25         if (user == null) {
    26             throw new NullPointerException("the entity[user] which to be saved is null!");
    27         }
    28         
    29         Session session = null;
    30         try {
    31             SessionFactory factory = HibernateUtil.getSessionFactory();
    32             session = factory.openSession();
    33             session.beginTransaction();
    34             session.save(user);
    35             session.getTransaction().commit();
    36         } catch (HibernateException e) {
    37             session.getTransaction().rollback();
    38             e.printStackTrace();
    39         } finally {
    40             if (session != null) {
    41                 session.close();
    42             }
    43         }
    44         
    45     }
    46 
    47     /* (non-Javadoc)
    48      * @see com.purple_river.itat.maven.demo.user.dao.IUserDao#getUser(java.lang.String)
    49      */
    50     public User getUser(String name) {
    51         User user = null;
    52         Session session = null;
    53         try {
    54             SessionFactory factory = HibernateUtil.getSessionFactory();
    55             session = factory.openSession();
    56             user = (User) session.createQuery("from User where username = ?").setParameter(0, name).uniqueResult();
    57         } catch (HibernateException e) {
    58             e.printStackTrace();
    59         } finally {
    60             if (session != null) {
    61                 session.close();
    62             }
    63         }
    64         
    65         return user;
    66     }
    67 
    68     /* (non-Javadoc)
    69      * @see com.purple_river.itat.maven.demo.user.dao.IUserDao#getAll()
    70      */
    71     public List<User> getAll() {
    72         List<User> list = null;
    73         try {
    74             list = HibernateUtil.getSessionFactory().openSession().createCriteria(User.class).list();
    75         } catch (HibernateException e) {
    76             // TODO Auto-generated catch block
    77             e.printStackTrace();
    78         }
    79         return list;
    80     }
    81 
    82 }

     TestUserDao类:

     1 /*
     2  * @packageName:com.purple_river.itat.maven.demo.user.dao
     3  * @fileName:TestUserDao.java
     4  * @description:Test Case for UserDao
     5  * @author:luckystar2010
     6  * @date:2013-11-28
     7  */
     8 package com.purple_river.itat.maven.demo.user.dao;
     9 
    10 import java.util.Calendar;
    11 import java.util.List;
    12 
    13 import org.jboss.logging.Logger;
    14 import org.junit.After;
    15 import org.junit.Assert;
    16 import org.junit.Before;
    17 import org.junit.Test;
    18 
    19 import com.purple_river.itat.maven.demo.bean.user.User;
    20 
    21 public class TestUserDao {
    22     public final static org.jboss.logging.Logger logger = Logger.getLogger(TestUserDao.class);
    23     
    24     private IUserDao userDao ;
    25     
    26     @Before
    27     public void setUp() {
    28         userDao = new UserDao();
    29     }
    30     
    31     @Test
    32     public void testAddUser() {
    33         logger.info("Test [UserDao.addUser].");
    34         Calendar c = Calendar.getInstance();
    35         c.set(2012, 01,01);
    36         User user = new User("admin",1,c.getTime());
    37         
    38         userDao.addUser(user);
    39     }
    40     
    41     @Test
    42     public void testGetUser() {
    43         logger.info("Test [UserDao.getUser].");
    44         
    45         User user = userDao.getUser("admin");
    46         logger.info(user);
    47         Assert.assertEquals(user.getUsername(),"admin");
    48         Assert.assertEquals(user.getAge(),1);
    49     }
    50     
    51     @Test
    52     public void testGetAll() {
    53         logger.info("Test [UserDao.listAll].");
    54         
    55         List<User> userList = userDao.getAll();
    56         Assert.assertTrue(userList.size() == 1);
    57         logger.info(userList.get(0));
    58     }
    59     
    60     @After
    61     public void tearDown() {
    62         userDao = null;
    63     }
    64 }

     之所以记录下来,是因为搭建环境时遇到了一些错误,所以这里记录对以后有个参考。

    下载地址:http://files.cnblogs.com/luckystar2010/user-dao.rar

  • 相关阅读:
    java连接oracle
    用js实现登录的简单验证
    合并链表,按主键升序
    Jquery中.ajax和.post详解
    简洁的Jquery弹出窗插件
    服务端缓存页面及IIS缓存设置
    C#托管代码、非托管代码及回收机制
    页面滑动底部自动加载下一页信息
    EF各版本增删查改及执行Sql语句
    Node.Js and Mongoose
  • 原文地址:https://www.cnblogs.com/luckystar2010/p/3449184.html
Copyright © 2020-2023  润新知