hibernate 入门操作----实现crud 操作(一)

2014-11-24 03:32:08 · 作者: · 浏览: 2

一hibernate 是什么?

Hibernate是一个开放源代码的对象关系映射框架,它对JDBC进行了非常轻量级的对象封装,使得Java程序员可以随心所欲的使用对象编程思维来操纵数据库。 Hibernate可以应用在任何使用JDBC的场合,既可以在Java的客户端程序使用,也可以在Servlet/JSP的Web应用中使用,最具革命意义的是,Hibernate可以在应用EJB的J2EE架构中取代CMP,完成数据持久化的重任。

二:核心接口:

Hibernate的核心接口一共有6个,分别为:Session、SessionFactory、Transaction、Query、Criteria和Configuration。这6个核心接口在任何开发中都会用到。通过这些接口,不仅可以对持久化对象进行存取,还能够进行事务控制

session

Session接口负责执行被持久化对象的CRUD操作(CRUD的任务是完成与数据库的交流,包含了很多常见的SQL语句。)。但需要注意的是Session对象是非线程安全的。同时,Hibernate的session不同于JSP应用中的HttpSession。这里当使用session这个术语时,其实指的是Hibernate中的session,而以后会将HttpSession对象称为用户session。

SessionFactory

SessionFactory接口负责初始化Hibernate。它充当数据存储源的代理,并负责创建Session对象。这里用到了工厂模式。需要注意的是SessionFactory并不是轻量级的,因为一般情况下,一个项目通常只需要一个SessionFactory就够,当需要操作多个数据库时,可以为每个数据库指定一个SessionFactory。

hibernate 入门学习

下载所依赖的jar 包

hibernate 官方网站:
http://hibernate.org/orm/

个人测试的只需引导requerd 下的jar 文件

\\

一: 开发文档的引导使用

\

\

\

\


根据以上信息可以写出--连接数据库的配置文件---此处以 xml 为例

二: 配置文件的书写--为了方便此处命名规范-------hibernate.cfg.xml--存放在src 文件目录下(也可更改)

文件稍加改动


  

  


  
  
   

    
     
    
      com.
     mysql.jdbc.Driver 
     
    
      jdbc:mysql://localhost:3306/hiber 
     
    
     root
     
    
     199358
     
     
    
     true
     
     
     
    
   


  

三:实体bean

package www.csdn.net.hiber2.bean;

public class User {

	private Integer id;
	private String name;
	
	private String sex;
	
	private Integer age;

	public User() {
		super();
		// TODO Auto-generated constructor stub
	}

	public User(Integer id, String name, String sex, Integer age) {
		super();
		this.id = id;
		this.name = name;
		this.sex = sex;
		this.age = age;
	}

	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 String getSex() {
		return sex;
	}

	public void setSex(String sex) {
		this.sex = sex;
	}

	public Integer getAge() {
		return age;
	}

	public void setAge(Integer age) {
		this.age = age;
	}

	@Override
	public String toString() {
		return User [id= + id + , name= + name + , sex= + sex + , age=
				+ age + ];
	}
	
	
	
}

四: 实体bean 的映射文件---文件名称User.hbm.xml(为规范命名)

五:接口方法:

package www.csdn.net.hiber2.dao;

import java.util.List;

public interface BaseDao
  
    {

	T findById(PK id);
	void deleteById(PK id)throws Exception;
	void delete(T entity)throws Exception;
	
	void deletes(String ids[])throws Exception;
	
	void update(T entity)throws Exception;
	void insert(T entity)throws Exception;
	
	List
   
     findAll(); } 
   
  

package www.csdn.net.hiber2.dao;

import www.csdn.net.hiber2.bean.User;

public interface UserDao extends BaseDao
  
    {
   

}

六 : 接口的实现类

package www.csdn.net.hiber2.dao.impl;

import java.util.List;

import org.hibernate.Session;
import org.hibernate.Transaction;

import www.csdn.net.hiber2.bean.User;
import www.csdn.net.hiber2.dao.UserDao;
import www.csdn.net.hiber2.util.HibernateSessionFactory;

public class UserDaoImpl implements UserDao {

	@Override
	public User findById(Integer id) {
		
		return (User) HibernateSessionFactory.getSession().get(User.class, id);
		
	}

	@Override
	public void deleteById(Integer id) throws Exception {
		Session session=HibernateSessionFactory.getSession();
		Transaction ts=session.beginTransaction();
		session.delete(fin