`

初识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之API初识及增删改查实现案例hibernate003

    参考博文:http://blog.csdn.net/u011638419/article/details/41980311

    Hibernate(3.6)之初识

    NULL 博文链接:https://liuzidong.iteye.com/blog/960322

    精通Java Web整合开发(第2版)

    12.1 初识annotation522 12.2 亲身体验annotation的威力524 12.3 struts 2.x的annotation插件convention-plugin528 12.4 hibernate 3.x的annotation解决之道532 12.4.1 为hibernate应用添加annotation支持532 12.4.2...

    低清版 大型门户网站是这样炼成的.pdf

    2.1 初识mvc新秀struts 2 33 2.1.1 mvc概述 33 .2.1.2 struts 2的mvc实现 35 2.1.3 struts 2的基本组成 36 2.1.4 struts 2的常用类介绍 38 2.1.5 struts 2的业务控制器action实现 39 2.1.6 struts 2的处理...

    零基础学Java Web开发

     第1章 初识Java语言  第2章 Java基础语法  第3章 Java面向对象编程  第二篇 JSP基本知识  第4章 JSP基本语法  第5章 JSP内置对象  第6章 JSP与JavaBean  第7章 JSP与JDBC  第8章 Servlet编程  ...

    java从入门到精通70个PPT

    1.初识java 2.变量、数据类型和运算符和表达式 3运算符和程序流程结构 4.数组 5.类和对象 6.字符串 7.封装,继承,多肽 8.接口与抽象类 9.java集合类 10.jdbc 11 html简介与js的基本语法 12 javascript内置对象和...

    北大青鸟spring最后一本书的 第五章

    北大青鸟spring最后一本书的 第五章,青鸟(国际)器材销售系统网站--(struts+Hibernate+Spring+Ajax版)【外加自己写的一个简单的,包括数据库】 我把jar包删了 !你需要自己加,就能运行!

    JAVA程序开发大全---上半部分

    第1章 初识MyEclipse 1 1.1 MyEclipse简介 1 1.2 MyEclipse的安装 1 1.2.1 JDK的安装与配置 1 1.2.2 MyEclipse 7.0的安装和运行 4 1.3 获取和阅读MyEclipse帮助文档 5 1.4 本章小结 5 第2章 MyEclipse集成开发环境的...

    Spring Data JPA 原理与实战2021年

    │ 01 Spring Data JPA 初识.mp4 │ 02 Spring Data Common 之 Repoitory 如何全面掌握?.mp4 │ 04 如何利用 Repoitory 中的方法返回值解决实际问题?.mp4 │ 05 @Query 解决了什么问题?什么时候应该选择它?....

    Java Web编程宝典

    第1篇为技能学习篇,主要包括Java Web开发环境、JSP语法、JSP内置对象、Java Bean技术、Servlet技术、EL与JSTL标签库、数据库应用开发、初识Struts2基础、揭密Struts2高级技术、Hib锄劬e技术入门、Hibernate高级应用...

    ASP.NET编程宝典光盘源码

    第1篇为技能学习篇,主要包括Java Web开发环境、JSP语法、JSP内置对象、Java Bean技术、Servlet技术、EL与JSTL标签库、数据库应用开发、初识Struts2基础、揭密Struts2高级技术、Hib锄劬e技术入门、Hibernate高级应用...

    ASP.NET编程宝典(十年典藏版)》光盘源码1

    第1篇为技能学习篇,主要包括Java Web开发环境、JSP语法、JSP内置对象、Java Bean技术、Servlet技术、EL与JSTL标签库、数据库应用开发、初识Struts2基础、揭密Struts2高级技术、Hib锄劬e技术入门、Hibernate高级应用...

    《Java Web编程宝典(十年典藏版)》光盘源码

    第1篇为技能学习篇,主要包括Java Web开发环境、JSP语法、JSP内置对象、Java Bean技术、Servlet技术、EL与JSTL标签库、数据库应用开发、初识Struts2基础、揭密Struts2高级技术、Hib锄劬e技术入门、Hibernate高级应用...

    《ASP.NET编程宝典(十年典藏版)》光盘源码2

    第1篇为技能学习篇,主要包括Java Web开发环境、JSP语法、JSP内置对象、Java Bean技术、Servlet技术、EL与JSTL标签库、数据库应用开发、初识Struts2基础、揭密Struts2高级技术、Hib锄劬e技术入门、Hibernate高级应用...

    Maven2 的新特性.7z

    Maven 出现到现在也有很长时间了,初识它的感觉至今仍清晰的印在脑海中。现在想来,当时从 Ant 移情 Maven 的想法其实很朴素,就是因为 Maven 可以以网站的形式展现与项目相关的信息,如开发人员列表、各种 Report。...

    精通JSP-Web开发技术与典型应用 光盘代码

    \ch01\* 第1章 初识JSP所有例程代码 \ch02\* 第2章 HTTP和Servlet基础 所有例程代码 \ch03\* 第3章 JSP基本语法所有例程代码 \ch04\* 第4章 JSP内置对象所有例程代码 \ch05\* 第5章 JavaBean在JSP中的应用所有...

Global site tag (gtag.js) - Google Analytics