首页 > 代码库 > Hibernate4Maven

Hibernate4Maven

How to create a Maven project with Hibernate libs?

This blog will be a demo to describe this issue.

 

Using tools:

1. eclipse

2. maven

 

Now, we should look at the project structure :

the result at the console :

[INFO] Scanning for projects...[INFO] [INFO] Using the builder org.apache.maven.lifecycle.internal.builder.singlethreaded.SingleThreadedBuilder with a thread count of 1[INFO]                                                                         [INFO] ------------------------------------------------------------------------[INFO] Building hibernate-4-maven 0.0.1-SNAPSHOT[INFO] ------------------------------------------------------------------------[INFO] [INFO] --- maven-clean-plugin:2.5:clean (default-clean) @ hibernate-4-maven ---[INFO] Deleting D:\Development\j2ee\workspace\hibernate-4-maven\target[INFO] [INFO] --- maven-resources-plugin:2.6:resources (default-resources) @ hibernate-4-maven ---[INFO] Using ‘UTF-8‘ encoding to copy filtered resources.[INFO] Copying 2 resources[INFO] [INFO] --- maven-compiler-plugin:2.5.1:compile (default-compile) @ hibernate-4-maven ---[INFO] Compiling 2 source files to D:\Development\j2ee\workspace\hibernate-4-maven\target\classes[INFO] [INFO] --- maven-resources-plugin:2.6:testResources (default-testResources) @ hibernate-4-maven ---[INFO] Using ‘UTF-8‘ encoding to copy filtered resources.[INFO] skip non existing resourceDirectory D:\Development\j2ee\workspace\hibernate-4-maven\src\test\resources[INFO] [INFO] --- maven-compiler-plugin:2.5.1:testCompile (default-testCompile) @ hibernate-4-maven ---[INFO] Compiling 1 source file to D:\Development\j2ee\workspace\hibernate-4-maven\target\test-classes[INFO] [INFO] --- maven-surefire-plugin:2.12.4:test (default-test) @ hibernate-4-maven ---[INFO] Surefire report directory: D:\Development\j2ee\workspace\hibernate-4-maven\target\surefire-reports------------------------------------------------------- T E S T S-------------------------------------------------------Running com.b510.hongten.hibernate4maven.TestUserSLF4J: Failed to load class "org.slf4j.impl.StaticLoggerBinder".SLF4J: Defaulting to no-operation (NOP) logger implementationSLF4J: See http://www.slf4j.org/codes.html#StaticLoggerBinder for further details.Hibernate:     select        user0_.id as id0_,        user0_.age as age0_,        user0_.email as email0_,        user0_.gender as gender0_,        user0_.name as name0_     from        tab_user user0_Id : 1 Name : Hongten  Gender : M  Age : 18 email : hongtenzone@foxmail.comHibernate:     insert     into        tab_user        (age, email, gender, name)     values        (?, ?, ?, ?)Tests run: 2, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 1.298 secResults :Tests run: 2, Failures: 0, Errors: 0, Skipped: 0[INFO] ------------------------------------------------------------------------[INFO] BUILD SUCCESS[INFO] ------------------------------------------------------------------------[INFO] Total time: 3.151 s[INFO] Finished at: 2014-11-01T23:32:56+08:00[INFO] Final Memory: 11M/27M[INFO] ------------------------------------------------------------------------

the result at the database :

==========================================================

// Source Code:

==========================================================

/hibernate-4-maven/src/main/java/com/b510/hongten/hibernate4maven/User.java

/** *  */package com.b510.hongten.hibernate4maven;import javax.persistence.Column;import javax.persistence.Entity;import javax.persistence.GeneratedValue;import javax.persistence.Id;import javax.persistence.Table;/** * @author Hongten * @created 2014年11月1日 */@Entity@Table(name = "tab_user")public class User {    @Id    @GeneratedValue    private Integer id;    private String name;    @Column(columnDefinition = "int default 0")    private Integer age;    private String gender;    private String email;    public Integer getId() {        return id;    }    public void setId(Integer id) {        this.id = id;    }    public String getName() {        return name;    }    public void setName(String name) {        this.name = name;    }    public Integer getAge() {        return age;    }    public void setAge(Integer age) {        this.age = age;    }    public String getGender() {        return gender;    }    public void setGender(String gender) {        this.gender = gender;    }    public String getEmail() {        return email;    }    public void setEmail(String email) {        this.email = email;    }}

/hibernate-4-maven/src/main/java/com/b510/hongten/hibernate4maven/util/HibernateUtil.java

/** *  */package com.b510.hongten.hibernate4maven.util;import org.hibernate.Session;import org.hibernate.SessionFactory;import org.hibernate.cfg.AnnotationConfiguration;/** * @author Hongten * @created 2014年11月1日 */public class HibernateUtil {    private static final SessionFactory sessionFactory;    static {        sessionFactory = new AnnotationConfiguration().configure()                .buildSessionFactory();    }    public static Session getOpenSession() {        return sessionFactory.openSession();    }    public static Session getCurrentSession() {        return sessionFactory.getCurrentSession();    }}

/hibernate-4-maven/src/test/java/com/b510/hongten/hibernate4maven/TestUser.java

/** *  */package com.b510.hongten.hibernate4maven;import java.util.List;import java.util.Random;import junit.framework.Assert;import org.hibernate.Query;import org.hibernate.Session;import org.junit.Test;import com.b510.hongten.hibernate4maven.util.HibernateUtil;/** * @author Hongten * @created 2014年11月1日 */public class TestUser {    @Test    public void testSave() {        Session session = HibernateUtil.getOpenSession();        session.beginTransaction();        User user = new User();        user.setAge(new Random().nextInt(22));        user.setName("Hongten");        user.setGender("M");        user.setEmail("hongtenzone@foxmail.com");        session.save(user);        Assert.assertEquals(true, user.getId() > 0);        session.getTransaction().commit();    }    @Test    public void testUpdate() {        Session session = HibernateUtil.getOpenSession();        session.beginTransaction();        Query query = session.createQuery("from User");        List<User> list = query.list();        for (User u : list) {            System.out.println("Id : " + u.getId() + " Name : " + u.getName()                    + "  Gender : " + u.getGender() + "  Age : " + u.getAge()                    + " email : " + u.getEmail());        }        session.getTransaction().commit();    }}

/hibernate-4-maven/src/main/resources/hibernate.cfg.xml

<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE hibernate-configuration PUBLIC          "-//Hibernate/Hibernate Configuration DTD 3.0//EN"          "http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd"><hibernate-configuration>    <session-factory>        <property name="dialect">            org.hibernate.dialect.MySQLDialect        </property>        <property name="connection.url">            jdbc:mysql://localhost:3306/users        </property>        <property name="connection.username">root</property>        <property name="connection.password">root</property>        <property name="connection.driver_class">            com.mysql.jdbc.Driver        </property>        <property name="show_sql">true</property>        <property name="format_sql">true</property>        <property name="current_session_context_class">thread</property>        <property name="hbm2ddl.auto">update</property>                <!-- Add POJO to here -->        <mapping class="com.b510.hongten.hibernate4maven.User" />    </session-factory></hibernate-configuration>

/hibernate-4-maven/src/main/resources/log4j.properties

 log4j.rootLogger=debug,consolelog4j.appender.console=org.apache.log4j.ConsoleAppender log4j.appender.console.layout=org.apache.log4j.PatternLayout log4j.appender.console.layout.ConversionPattern=%r  [%t]    %p - %c - %l - %m%n

/hibernate-4-maven/pom.xml

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"    xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">    <modelVersion>4.0.0</modelVersion>    <groupId>com.b510.hongten</groupId>    <artifactId>hibernate-4-maven</artifactId>    <version>0.0.1-SNAPSHOT</version>    <packaging>jar</packaging>    <name>hibernate-4-maven</name>    <url>http://maven.apache.org</url>    <properties>        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>    </properties>    <dependencies>        <!-- Configuration for Hibernate -->        <dependency>            <groupId>org.hibernate</groupId>            <artifactId>hibernate-core</artifactId>            <version>3.6.10.Final</version>        </dependency>        <dependency>            <groupId>org.javassist</groupId>            <artifactId>javassist</artifactId>            <version>3.18.1-GA</version>        </dependency>        <!-- Configuration for mysql -->        <dependency>            <groupId>mysql</groupId>            <artifactId>mysql-connector-java</artifactId>            <version>5.1.33</version>        </dependency>        <!-- Configuration for log4j -->        <dependency>            <groupId>log4j</groupId>            <artifactId>log4j</artifactId>            <version>1.2.17</version>        </dependency>        <!-- Configuration for junit -->        <dependency>            <groupId>junit</groupId>            <artifactId>junit</artifactId>            <version>4.10</version>            <scope>test</scope>        </dependency>    </dependencies></project>

 

Source Code Download: http://files.cnblogs.com/hongten/hibernate-4-maven.rar 

 

========================================================

More reading,and english is important.

I‘m Hongten

hongten

 

E | hongtenzone@foxmail.com  B | http://www.cnblogs.com/hongten

========================================================

Hibernate4Maven