首页 > 代码库 > Rhythmk 学习 Hibernate 01 - maven 创建Hibernate 项目之 增删改查入门
Rhythmk 学习 Hibernate 01 - maven 创建Hibernate 项目之 增删改查入门
1、环境:
Maven :3.1.1
开发工具:Spring Tool Suite
数据库 : Mysql 5.6
2、项目文件结构
文件代码:
2.1 、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>hibernate</groupId> <artifactId>hibernate</artifactId> <version>0.0.1-SNAPSHOT</version> <packaging>jar</packaging> <name>hibernate</name> <url>http://maven.apache.org</url> <properties> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> </properties> <dependencies> <dependency> <groupId>log4j</groupId> <artifactId>log4j</artifactId> <version>1.2.17</version> </dependency> <dependency> <groupId>org.hibernate</groupId> <artifactId>hibernate-core</artifactId> <version>4.3.5.Final</version> </dependency> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <version>5.1.30</version> </dependency> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>3.8.1</version> <scope>test</scope> </dependency> </dependencies> </project>
2.2 、HibernateUtil.java
?
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 | package com.rhythmk.hibernate01; import javax.imageio.spi.ServiceRegistry; import org.hibernate.SessionFactory; import org.hibernate.boot.registry.StandardServiceRegistryBuilder; import org.hibernate.cfg.Configuration; import org.hibernate.service.ServiceRegistryBuilder; /* * 参考 URL: * http://docs.jboss.org/hibernate/orm/4.2/manual/en-US/html_single/ * */ public class HibernateUtil { // By : rhythmk.cnblogs.com private static final SessionFactory sessionFactory = buildSessionFactory(); private static SessionFactory buildSessionFactory() { try { Configuration configuration= new Configuration().configure(); return configuration.buildSessionFactory( new ServiceRegistryBuilder().applySettings(configuration.getProperties()).build()); } catch (Throwable ex) { System.err.println( "Initial SessionFactory creation failed." + ex); throw new ExceptionInInitializerError(ex); } } public static SessionFactory getSessionFactory() { return sessionFactory; } } |
2.3、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"> <!-- Generated by MyEclipse Hibernate Tools. --> <hibernate-configuration> <session-factory> <property name="dialect">org.hibernate.dialect.MySQLDialect</property> <property name="connection.url">jdbc:mysql://localhost:3306/shishuocms</property> <property name="connection.username">root</property> <property name="connection.password">wangkun</property> <property name="connection.driver_class">com.mysql.jdbc.Driver</property> <property name="myeclipse.connection.profile">com.mysql.jdbc.Driver</property> <!--是否在后台显示Hibernate用到的SQL语句,开发时设置为true,便于差错,程序运行时可以在Eclipse的控制台显示Hibernate的执行Sql语句。项目部署后可以设置为false,提高运行效率 --> <property name="hibernate.show_sql">true </property> <mapping resource="com/rhythmk/model/user.hbm.xml" /> </session-factory> </hibernate-configuration>
2.4 User.java
?
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 | package com.rhythmk.model; import java.util.Date; public class User { public Integer getUserId() { return userId; } public void setUserId(Integer userId) { this .userId = userId; } public Integer getOpenId() { return openId; } public void setOpenId(Integer openId) { this .openId = openId; } @Override public String toString() { return "User [userId=" + userId + ", openId=" + openId + ", type=" + type + ", name=" + name + ", createTime=" + createTime + "]" ; } public String getType() { return type; } public void setType(String type) { this .type = type; } public String getName() { return name; } public void setName(String name) { this .name = name; } public Date getCreateTime() { return createTime; } public void setCreateTime(Date createTime) { this .createTime = createTime; } public Integer userId; public Integer openId; public String type; public String name; public Date createTime; } |
2.5 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.rhythmk.model.User" table="user"> <id name="userId" type="int"> <column name="userId" /> <generator class="native" /> </id> <property name="openId" type="int"> <column name="openId" not-null="true" /> </property> <property name="type" type="string"> <column name="type" not-null="true" /> </property> <property name="name" type="string"> <column name="name" length="45" not-null="true" /> </property> <property name="createTime" type="timestamp"> <column name="createTime" not-null="true" /> </property> </class> </hibernate-mapping>
3、测试代码(hibernatedemo1.java):
插入:
?
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 | @Test public void InsertUser() { SessionFactory sessionfac = HibernateUtil.getSessionFactory(); Session session = null ; org.hibernate.Transaction tran = null ; try { sessionfac.openSession(); User entity = new User(); tran = session.beginTransaction(); entity.setType( "管理员" ); entity.setName( "rhythmk" ); entity.setOpenId( 1 ); entity.setCreateTime( new Date()); session.save(entity); tran.commit(); System.out.println( "Insert into OK!" ); } catch (Exception e) { if (tran != null ) { tran.rollback(); } e.printStackTrace(); } finally { if (session != null ) session.close(); } } |
修改:
?
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 | @Test public void UpdateUser() { Session session = null ; org.hibernate.Transaction tran = null ; try { session = HibernateUtil.getSessionFactory().openSession(); tran = session.beginTransaction(); User entity = (User) session.load(User. class , 2 ); entity.setName( "Update" ); session.save(entity); tran.commit(); entity = (User) session.load(User. class , 2 ); System.out.println(entity.toString()); } catch (Exception e) { if (tran != null ) { tran.rollback(); } // TODO: handle exception e.printStackTrace(); } finally { if (session != null ) session.close(); } } |
删除:
?
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 | @Test public void DelUser() { Session session = null ; org.hibernate.Transaction tran = null ; try { session = HibernateUtil.getSessionFactory().openSession(); tran = session.beginTransaction(); Object obj = session.load(User. class , 4 ); User entity = null ; if (obj != null ) { entity = (User) obj; } if (entity != null ) { session.delete(entity); System.out.println( "删除成功!" ); tran.commit(); } } catch (Exception e) { if (tran != null ) { tran.rollback(); } // TODO: handle exception e.printStackTrace(); } finally { if (session != null ) session.close(); } } |
单对象查询
?
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | @Test public void SelectUser() { Session session = null ; try { session = HibernateUtil.getSessionFactory().openSession(); User entity = (User) session.load(User. class , 2 ); System.out.println(entity.toString()); } catch (Exception e) { // TODO: handle exception e.printStackTrace(); } finally { if (session != null ) session.close(); } } |
List查询
?
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 | @Test public void SelectListUser() { Session session = null ; try { session = HibernateUtil.getSessionFactory().openSession(); Query query= session.createQuery( "from User " ); List<User> list=(List<User>)query.list(); for (User user : list) { System.out.println(user); } } catch (Exception e) { e.printStackTrace(); } finally { if (session != null ) session.close(); } } |
分页查询:
?
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 | @Test public void SelectPageListUser() { // 获取分页数据 Session session = null ; try { session = HibernateUtil.getSessionFactory().openSession(); Query query= session.createQuery( "from User " ); List<User> list=(List<User>)query .setFirstResult( 0 ) //从0项开始 .setMaxResults( 3 ) //每页三条数据 .list(); for (User user : list) { System.out.println(user); } } catch (Exception e) { e.printStackTrace(); } finally { if (session != null ) session.close(); } } |
代码包:http://pan.baidu.com/s/1hq1esh2
备注:
添加 JBOOS TOOL路径
http://download.jboss.org/jbosstools/updates/stable/helios/
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。