`

初识hibernate

 
阅读更多
hibernate接口关系:




代码结构:



hibernate.cfg.xml代码:
<!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/hibernate</property>
		<property name="connection.username">root</property>
		<property name="connection.password">admin</property>
		<property name="connection.driver_class">com.mysql.jdbc.Driver</property>
		<property name="format_sql">true</property>
		<property name="show_sql">true</property>
		<mapping resource="com/hibernate/beans/User.hbm.xml" />
	</session-factory>
</hibernate-configuration>

HibernateSessionFactory.java代码:
package com.hibernate.util;

import org.hibernate.HibernateException;
import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.cfg.Configuration;

public class HibernateSessionFactory {

	private static String CONFIG_FILE_LOCATION="/hibernate.cfg.xml";
	
	private static final ThreadLocal threadLocal = new ThreadLocal();
	
	private static final Configuration cfg = new Configuration();
	
	private static SessionFactory sessionFactory;
	
	public static Session currentSession() throws HibernateException{
		Session session = (Session)threadLocal.get();
		if(session == null){
			if(sessionFactory == null){
				try{
				cfg.configure(CONFIG_FILE_LOCATION);
				sessionFactory = cfg.buildSessionFactory();
				}catch(Exception e){
					e.printStackTrace();
				}
			}
			session = sessionFactory.openSession();
			threadLocal.set(session);
		}
		return session;
	}
	
	public static void closeSession() throws HibernateException{
		Session session = (Session)threadLocal.get();
		threadLocal.set(null);
		if(session!=null){
			session.close();
		}
	}
	
}



User.java代码:
package com.hibernate.beans;

public class User {
	
	private int id;

	private String username;

	private String password;

	private String email;
	
	public User(){
		
	}

	public int getId() {
		return id;
	}

	public void setId(int id) {
		this.id = id;
	}

	public String getUsername() {
		return username;
	}

	public void setUsername(String username) {
		this.username = username;
	}

	public String getPassword() {
		return password;
	}

	public void setPassword(String password) {
		this.password = password;
	}

	public String getEmail() {
		return email;
	}

	public void setEmail(String email) {
		this.email = email;
	}

}


User.hbm.xml代码:
<?xml version="1.0"?>
<!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.hibernate.beans.User" table="t_user">
    <id name="id" column="id" type="integer">
       <generator class="increment"/>
    </id>
    <property  name="username" column="username" type="string"/>
    <property  name="password" column="password" type="string"/>
    <property  name="email" column="email" type="string"/>
  </class>
</hibernate-mapping>


UserDAO.java代码:
package com.hibernate.dao;

import java.util.List;

import org.hibernate.Criteria;
import org.hibernate.HibernateException;
import org.hibernate.Query;
import org.hibernate.Session;
import org.hibernate.Transaction;

import com.hibernate.beans.User;
import com.hibernate.util.HibernateSessionFactory;

public class UserDAO {

	public User getUser(String username) throws HibernateException{
		Session session = null;
		Transaction tx = null;
		User user = null;
		try{
			session = HibernateSessionFactory.currentSession();
			tx = session.beginTransaction();
			Query query = session.createQuery("from User where username=?");
			query.setString(0, username.trim());
			user = (User)query.uniqueResult();
			query = null;
			tx.commit();
		}catch(HibernateException e){
			e.printStackTrace();
		}finally{
			if(tx!=null){
				//tx.rollback();
			}
			HibernateSessionFactory.closeSession();
		}
		return user;
	}
	
	public void saveUser(User user) throws HibernateException{
		Session session = null;
		Transaction tx = null;
		try{
			session = HibernateSessionFactory.currentSession();
			tx = session.beginTransaction();
			session.save(user);
			tx.commit();
		}catch(Exception e){
			e.printStackTrace();
		}finally{
			if(tx!=null){
				//tx.rollback();
			}
			HibernateSessionFactory.closeSession();
		}
	}
	
	public List<User> getUsers(){
		Session session = null;
		Transaction tx = null;
		List users = null;
		try{
			session = HibernateSessionFactory.currentSession();
			tx = session.beginTransaction();
			Criteria criteria = session.createCriteria(User.class);
			criteria.setMaxResults(50);
			users = criteria.list();
			tx.commit();
		}catch(HibernateException e){
			e.printStackTrace();
		}finally{
			HibernateSessionFactory.closeSession();
		}
		return users;
	}
}



UserService.java代码:
package com.hibernate.service;

import com.hibernate.beans.User;
import com.hibernate.dao.UserDAO;

public class UserService {
	
	public boolean valid(String username,String password){
		UserDAO userDao = new UserDAO();
		User user = userDao.getUser(username);
		if(user.getPassword().equals(password)){
			return true;
		}else{
			return false;
		}
	}
	
	public void saveUser(User user){
		UserDAO userDao = new  UserDAO();
		userDao.saveUser(user);
	}
	
	public int  getUserCount(){
		UserDAO userDao = new UserDAO();
		return userDao.getUsers().size();
	}
	
	public static void main(String[] args) {
		UserService userService = new UserService();
		User user = new User();
		user.setUsername("yangjianzhou");
		user.setPassword("123456");
		user.setEmail("yangjianzhouctgu@126.com");
		userService.saveUser(user);
		boolean bool = userService.valid("yangjianzhou", "123456");
		System.out.println("验证结果:"+bool);
		int count = userService.getUserCount();
		System.out.println("用户数为:"+count);
	}

}


运行结果:
Hibernate: 
    select
        max(id) 
    from
        t_user
Hibernate: 
    insert 
    into
        t_user
        (username, password, email, id) 
    values
        (?, ?, ?, ?)
Hibernate: 
    select
        user0_.id as id0_,
        user0_.username as username0_,
        user0_.password as password0_,
        user0_.email as email0_ 
    from
        t_user user0_ 
    where
        user0_.username=?
验证结果:true
Hibernate: 
    select
        this_.id as id0_0_,
        this_.username as username0_0_,
        this_.password as password0_0_,
        this_.email as email0_0_ 
    from
        t_user this_ limit ?
用户数为:1

  • 大小: 60.8 KB
  • 大小: 23.4 KB
分享到:
评论

相关推荐

    Hibernate(3.6)之初识

    这篇文章将带你初识Hibernate 3.6,了解其基本概念、配置以及如何进行简单的数据操作。 1. **对象关系映射(ORM)**:ORM 是一种编程技术,用于将关系数据库的数据映射到面向对象的模型中。通过ORM,开发人员可以...

    hibernate权威整理文档!

    二、初识Hibernate 1. Hibernate环境搭建 要开始使用Hibernate,首先需要下载Hibernate的开发包(如3.6.10版本)以及相关的依赖库,包括Slf4j和Log4j。将必要的jar包添加到项目构建路径中,包括Hibernate核心库、...

    beginning hibernate 源代码

    《初识Hibernate源码》是针对Java开发人员深入理解Hibernate框架的一款学习资源。Hibernate作为一款强大的对象关系映射(ORM)框架,它极大地简化了数据库操作,使得开发者能够以面向对象的方式处理数据。源码分析有...

    hibernatetools-Update-4.1.1.zip

    《Hibernate Tools 4.1.1:提升数据库与对象映射的效率》 Hibernate Tools是...无论你是初识Hibernate的新手还是经验丰富的老手,这个工具都能为你的开发工作带来实质性的帮助,降低项目复杂度,提升开发速度。

    Beginning Hibernate For Hibernate 5 (4th Edition) + Source Code

    《初识Hibernate:针对Hibernate 5的指南》(第四版)是专为深入理解Hibernate ORM框架而编写的一本详尽教程。这本书不仅提供了全面的理论知识,还包含了配套的源代码,使得读者能够通过实践更好地掌握Hibernate的...

    深入浅出Hibernate

    总之,《深入浅出Hibernate》是一本全面而深入的Hibernate教程,它将带领读者从初识Hibernate到精通使用,是Java开发者的宝贵学习资料。通过阅读本书,你将能够熟练掌握Hibernate框架,提升数据库操作的效率,更好地...

    beginning.hibernate.from.novice.to.professional

    《初识Hibernate:从新手到专业》是一本深入浅出介绍Hibernate框架的书籍,适合对Java编程有一定基础但对Hibernate不熟悉的读者。Hibernate是Java领域中广泛应用的对象关系映射(ORM)框架,它极大地简化了数据库...

    hibernate 详解

    - "hibernate_day02_pm.zip"可能包含了初识Hibernate的基础知识,如环境搭建、基本操作等。 - "hibernate_day03_pm.zip"可能涉及到SessionFactory和Session的使用,以及实体类的创建。 - "hibernate_day04_pm.zip...

    HIBERNATE - 符合Java习惯的关系数据库持久化.doc

    总体而言,《Hibernate - 符合Java习惯的关系数据库持久化》为Java后端开发人员提供了一套全面的指南,涵盖了从初识Hibernate到高级特性的所有关键点,对于希望掌握和使用Hibernate进行数据库操作的开发者来说,是一...

    hibernate开发文档

    1. **初识Hibernate**:这部分介绍Hibernate的基本概念,包括它在Java应用程序中的作用,以及如何通过配置文件(如hibernate.cfg.xml)来设置数据源和连接参数。文档可能还涉及了SessionFactory和Session的创建与...

    hibernate参考手册

    一、引言与初识Hibernate 1. **引言**:本手册旨在提供Hibernate框架的全面指南,适合初学者和有经验的开发者使用。Hibernate是一个开源的对象关系映射(ORM)框架,用于Java应用程序与数据库交互。 2. **第一部分...

    Hibernate之API初识及增删改查实现案例hibernate003

    **标题:“Hibernate之API初识及增删改查实现案例hibernate003”** 在Java开发中,Hibernate是一个非常流行的持久化框架,它简化了数据库操作,提供了对象关系映射(ORM)功能,使得开发者可以使用面向对象的方式来...

    BeginningHibernate_英文版

    《初识Hibernate:深入浅出的Java ORM框架指南》 Hibernate是Java开发中广泛使用的对象关系映射(ORM)框架,它为Java开发者提供了一种高效、便捷的方式来管理数据库操作,将复杂的SQL语句和数据库交互转化为面向...

    Java_Web程序设计教程_范立峰第8章习题答案

    本章节主要介绍了初识Hibernate框架的相关知识点。 1. Hibernate框架简介 Hibernate是一个对象关系映射(ORM)框架,它允许Java开发者使用面向对象的方式来操作数据库。它通过XML配置文件或注解将Java类与数据库表...

    hibernate第一个hibernate

    《Hibernate入门:初识与实践》 在Java开发领域,Hibernate作为一款强大的对象关系映射(ORM)框架,极大地简化了数据库操作。本教程将带领初学者深入理解Hibernate的第一个项目,帮助你快速入门并掌握其核心概念。...

    hibernate-examples:简单的Hibernate示例

    **初识Hibernate示例** 在`hibernate-examples-master`这个项目中,可以看到一系列关于Hibernate基础操作的示例。这些示例可能包括了实体类的定义、配置文件的设置、以及如何在Java代码中进行CRUD操作的演示。通过...

Global site tag (gtag.js) - Google Analytics