项目结构图如下

一,首先是添加依赖pom.xml

<?xml version="1.0" encoding="UTF-8"?>
<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/maven-v4_0_0.xsd"> <modelVersion>4.0.0</modelVersion>
<packaging>war</packaging> <name>Hibernate</name>
<groupId>com.cyf</groupId>
<artifactId>Hibernate</artifactId>
<version>1.0-SNAPSHOT</version> <build>
<plugins>
<plugin>
<groupId>org.mortbay.jetty</groupId>
<artifactId>maven-jetty-plugin</artifactId>
<version>6.1.7</version>
<configuration>
<connectors>
<connector implementation="org.mortbay.jetty.nio.SelectChannelConnector">
<port>8888</port>
<maxIdleTime>30000</maxIdleTime>
</connector>
</connectors>
<webAppSourceDirectory>${project.build.directory}/${pom.artifactId}-${pom.version}</webAppSourceDirectory>
<contextPath>/</contextPath>
</configuration>
</plugin>
</plugins>
<!--把xml文件也编译-->
<resources>
<resource>
<directory>src/main/java</directory>
<includes>
<include>**/*.xml</include>
</includes>
</resource>
<resource>
<directory>src/main/resources</directory>
<includes>
<include>**/*.xml</include>
</includes>
</resource>
</resources>
</build> <!-- 属性配置 -->
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties> <dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.10</version>
<scope>test</scope>
</dependency> <!-- 添加Hibernate依赖 -->
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-core</artifactId>
<version>3.6.5.Final</version>
</dependency> <!-- 添加Log4J依赖 -->
<dependency>
<groupId>log4j</groupId>
<artifactId>log4j</artifactId>
<version>1.2.16</version>
</dependency> <dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-api</artifactId>
<version>1.6.1</version>
</dependency> <dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-nop</artifactId>
<version>1.6.4</version>
</dependency> <!-- 添加javassist -->
<dependency>
<groupId>javassist</groupId>
<artifactId>javassist</artifactId>
<version>3.11.0.GA</version>
</dependency>
<dependency>
<groupId>org.junit.jupiter</groupId>
<artifactId>junit-jupiter-api</artifactId>
<version>RELEASE</version>
</dependency>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.12</version>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.0.8</version>
</dependency>
</dependencies> </project>

二,hibernate.cfg.xml

<?xml version="1.0" encoding="UTF-8"?>
<!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>
<!-- Database connection settings -->
<property name="connection.driver_class">com.mysql.jdbc.Driver</property>
<property name="connection.url">jdbc:mysql://localhost:3306/test</property>
<property name="connection.username">root</property>
<property name="connection.password">root</property>
<!--显示生成的sql语句-->
<property name="show_sql">true</property>
<property name="format_sql">true</property>
<!-- 禁用了javaEE6的bean-validate -->
<property name="javax.persistence.validation.mode">none</property>
<property name="dialect">org.hibernate.dialect.SQLServerDialect</property>
<!-- 即可通过getCurrentSession 获取线程唯一的session -->
<property name="current_session_context_class">thread</property> <!--在数据库中自动创建表-->
<!--<property name="hbm2ddl.auto">update</property>-->
<!-- 指定ddl的生成方式 -->
<!--<property name="hibernate.hbm2ddl.auto">create</property>--> <mapping resource="com/deppon/test03/entity/PersonEntity.hbm.xml"/>
</session-factory>
</hibernate-configuration>

三,PersonEntity.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 package="com.deppon.test03.entity">
<class name="PersonEntity" table="t_person">
<id name="id" column="id" type="int">
<generator class="native"/>
</id>
<property name="name" type="string" column="name"/>
</class>
</hibernate-mapping>

四,PersonEntity.java

package com.deppon.test03.entity;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.Id;
import javax.persistence.Table; @Entity
@Table(name = "t_person")
public class PersonEntity implements java.io.Serializable {
private static final long serialVersionUID = -4376187124011546736L; private Integer id;
private String name; @Id
public Integer getId() {
return id;
} public void setId(Integer id) {
this.id = id;
} @Column(length = 50 , nullable = false , unique = true)
public String getName() {
return name;
} public void setName(String name) {
this.name = name;
} @Override
public String toString() {
return "PersonEntity [id=" + id + ", name=" + name + "]";
} }

五,HibernateUtil.java

package com.deppon.test03.util;

import org.apache.log4j.Logger;
import org.hibernate.HibernateException;
import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.cfg.Configuration; public class HibernateUtil {
/** ThreadLocal Session Map */
public static final ThreadLocal<Session> SESSIONMAP = new ThreadLocal<Session>();
private static final SessionFactory sessionFactory;
private static final Logger LOGGER = Logger.getLogger(HibernateUtil.class); static {
try {
LOGGER.debug("HibernateUti.static - loading cofig");
sessionFactory = new Configuration().configure("hibernate.cfg.xml")
.buildSessionFactory();
LOGGER.debug("HibernateUtil.static - end");
} catch (Throwable ex) {
ex.printStackTrace();
LOGGER.error("HibernateUti error : ExceptionInInitializerError");
throw new ExceptionInInitializerError(ex);
}
} private HibernateUtil() { } public static Session getSession() throws HibernateException {
Session session = SESSIONMAP.get(); if(session == null) {
session = sessionFactory.openSession();
SESSIONMAP.set(session);
} return session;
} public static void closeSession() throws HibernateException {
Session session = SESSIONMAP.get();
SESSIONMAP.set(null); if(session != null) {
session.close();
}
} }

六,ModelTest.java

package com.deppon.test03.model;

import java.util.List;

import org.hibernate.Session;
import org.hibernate.Transaction;
import org.hibernate.cfg.Configuration;
import org.hibernate.tool.hbm2ddl.SchemaExport;
import org.junit.Assert;
import org.junit.Test; import com.deppon.test03.entity.PersonEntity;
import com.deppon.test03.util.HibernateUtil; public class ModelTest { @Test
public void testGetSession() {
Session session = HibernateUtil.getSession(); Assert.assertNotNull(session); HibernateUtil.closeSession();
} @Test
public void testExport() {
new SchemaExport(new Configuration().configure()).create(true , true);
} @Test
public void testSave() {
PersonEntity person = new PersonEntity();
// person.setId(2);
person.setName("ccc"); Session session = HibernateUtil.getSession();
Transaction tx = session.beginTransaction(); session.save(person); tx.commit();
HibernateUtil.closeSession();
} @Test
public void testQuery() {
Session session = HibernateUtil.getSession();
session.beginTransaction(); @SuppressWarnings("unchecked")
List<PersonEntity> personList = session.createQuery("select p from PersonEntity p").list(); for(PersonEntity eachPerson : personList) {
System.out.println(eachPerson);
} session.getTransaction().commit();
HibernateUtil.closeSession();
} }

七,sql语句

/*
Navicat MySQL Data Transfer Source Server : test
Source Server Version : 50717
Source Host : localhost:3306
Source Database : test Target Server Type : MYSQL
Target Server Version : 50717
File Encoding : 65001 Date: 2018-04-07 19:54:35
*/ SET FOREIGN_KEY_CHECKS=0; -- ----------------------------
-- Table structure for `t_person`
-- ----------------------------
DROP TABLE IF EXISTS `t_person`;
CREATE TABLE `t_person` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`name` varchar(255) DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=4 DEFAULT CHARSET=utf8 ROW_FORMAT=DYNAMIC;

最新文章

  1. log4net使用手册
  2. ibatis #于 $区别
  3. Canvas之打字机游戏
  4. ClassLoader 详解及用途(写的不错)
  5. AgileEAS.NET SOA 中间件2013第四季度发布&amp;部分功能开源预告
  6. 异步SRAM控制器的Verilog建模
  7. 实战 SQL Server 2008 数据库误删除数据的恢复
  8. (转)Docker常用命令
  9. 【JavaScript】HTML5/CSS3实现五彩进度条应用
  10. x86 构架的 Arduino 开发板Intel Galileo
  11. C primer plus 读书笔记第四章
  12. UBUNTU系统root帐号解锁
  13. 浅谈分析表格布局与Div+CSS布局的区别
  14. ajax请求 readyState为0 可能原因之一
  15. OpenStack_I版 2.keystone部署
  16. 大数据利器Hive
  17. fzu1062 洗牌问题(思路模拟)
  18. docker + nginx 部署vuejs3.0项目
  19. Owin+ASP.NET Identity浅析系列(二)扩展用户属性
  20. Android中android:layout_alignParentBottom标签不生效

热门文章

  1. 双拓扑排序 HDOJ 5098 Smart Software Installer
  2. 浅析String
  3. Git命令---递归克隆
  4. Hadoop工作流不足(六)
  5. window上安装MySQL
  6. AJPFX关于JAVA多线程实现的三种方式
  7. 基于udp协议的套接字及udp协议粘包问题
  8. SQLite-删除查询
  9. java工作流activiti的步骤
  10. python之字符串str操作方法