Hibernate 框架基本的数据库增删改查操作

转自https://blog.csdn.net/linhaiyun_ytdx/article/details/54946714#commentBox

hibernate.cfg.xml(Hibernate与数据库连接操作的文档)

<?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">
<hibernate-configuration>
<session-factory>
	<property name="show_sql">true</property>
	<property name="myeclipse.connection.profile">bookshop</property>
	<property name="connection.url">
		jdbc:mysql://localhost:3306/bookshop
	</property>
	<property name="connection.username">root</property>
	<property name="connection.password">1234</property>
	<property name="connection.driver_class">
		com.mysql.jdbc.Driver
	</property>
	<property name="dialect">
		org.hibernate.dialect.MySQLDialect
	</property>
	<mapping resource="com/hibtest1/entity/Users.hbm.xml" />
</session-factory>
</hibernate-configuration>

Users.java

package com.hibtest1.entity;
 
import java.io.Serializable;
 
public class Users implements Serializable {
	private Integer id;         //编号
	private String loginName;   //用户名
	private String loginPwd;    //密码
	//默认构造方法
	public Users() {		
	}
	public Integer getId() {
		return id;
	}
	public void setId(Integer id) {
		this.id = id;
	}
	public String getLoginName() {
		return loginName;
	}
	public void setLoginName(String loginName) {
		this.loginName = loginName;
	}
	public String getLoginPwd() {
		return loginPwd;
	}
	public void setLoginPwd(String loginPwd) {
		this.loginPwd = loginPwd;
	}
	
}

Users.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.hibtest1.entity.Users" table="users" catalog="bookshop">     
     <id name="id" type="java.lang.Integer">
         <column name="Id" />
         <generator class="native"></generator>
     </id>
     <property name="loginName" type="java.lang.String">
         <column name="LoginName" length="50" />
     </property>
     <property name="loginPwd" type="java.lang.String">
         <column name="LoginPwd" length="16" />
     </property>
 </class>
</hibernate-mapping>

TestAdd.java(添加用户)

package com.hibtest1;
import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.Transaction;
import org.hibernate.cfg.Configuration;
 
import com.hibtest1.entity.Users;
 
public class TestAdd {
	public static void main(String[] args) {
		new TestAdd().addUser();
	}	
	private void addUser(){
		//建立持久化对象
		Users user=new Users();
		user.setLoginName("Haige");
		user.setLoginPwd("123456");
		//1.初始化,读取配置文件hibernate.cfg.xml
		Configuration config=new Configuration().configure();
		//2.读取并解析映射文件(Users.hbm.xml),创建sessionFactory
		SessionFactory sessionFactory=config.buildSessionFactory();
		//3.打开session
		Session session=sessionFactory.openSession();
		Transaction tx=null;
		try {			
			tx=session.beginTransaction();    //4.开始一个事务			
			session.save(user);		 //5.持久化操作	
			tx.commit();    //6.提交事务
		} catch (Exception e) {
			if(tx!=null){
				tx.rollback();  //事务回滚																			
			}	
			e.printStackTrace();
		}finally{
			session.close();   //7.关闭session
		}		
	}
}

 TestDelete.java(删除用户)

package com.hibtest1;
 
import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.Transaction;
import org.hibernate.cfg.Configuration;
 
import com.hibtest1.entity.Users;
 
public class TestDelete {
	public static void main(String[] args) {
		new TestDelete().testDelete();
	}
	private void testDelete(){
		//初始化,读取配置文件hibernate.cfg.xml
		Configuration config=new Configuration().configure();
		//读取并解析映射文件(Users.hbm.xml),创建sessionFactory
		SessionFactory sessionFactory=config.buildSessionFactory();
		//打开session
		Session session=sessionFactory.openSession();
		Transaction tx=null;
		//加载要删除的数据
		Users user=(Users)session.get(Users.class, new Integer(1));
		try {
			tx=session.beginTransaction();    //开始一个事务			
			session.delete(user);             //执行删除	
			tx.commit();                      //提交事务
		} catch (Exception e) {
			if(tx!=null){
				tx.rollback();       //事务回滚				
			}
			e.printStackTrace();
		}finally{
			session.close();   //关闭session
		}	
		
	}
 
}

TestLoad(控制台输出用户数据)

package com.hibtest1;
 
import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.cfg.Configuration;
 
import com.hibtest1.entity.Users;
 
public class TestLoad {
	public static void main(String[] args) {
		new TestLoad().testLoad();
	}
	
	private void testLoad(){
		//1.初始化,读取配置文件hibernate.cfg.xml
		Configuration config=new Configuration().configure();
		//2.读取并解析映射文件(Users.hbm.xml),创建sessionFactory
		SessionFactory sessionFactory=config.buildSessionFactory();
		//3.打开session
		Session session=sessionFactory.openSession();
		//4.加载数据
		Users user=(Users)session.get(Users.class, new Integer(1));
		//在控制台输出用户名和密码
		System.out.println(user.getLoginName()+" "+user.getLoginPwd());
	}
 
}

TestUpdate.java(修改用户数据)

package com.hibtest1;
 
import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.Transaction;
import org.hibernate.cfg.Configuration;
 
import com.hibtest1.entity.Users;
 
public class TestUpdate {
	public static void main(String[] args) {
		new TestUpdate().testUpdate();
	}
	private void testUpdate(){
		//初始化,读取配置文件hibernate.cfg.xml
		Configuration config=new Configuration().configure();
		//读取并解析映射文件(Users.hbm.xml),创建sessionFactory
		SessionFactory sessionFactory=config.buildSessionFactory();
		//打开session
		Session session=sessionFactory.openSession();
		Transaction tx=null;
		//加载要修改的数据
		Users user=(Users)session.get(Users.class, new Integer(2));
		//修改数据
		user.setLoginName("popopo");
		try {
			tx=session.beginTransaction();    //开始一个事务			
			session.update(user);             //执行更新
			tx.commit();                      //提交事务
		} catch (Exception e) {
			if(tx!=null){
				tx.rollback();       //事务回滚				
			}
			e.printStackTrace();
		}finally{
			session.close();   //关闭session
		}
	}
 
}

总结:Hibernate框架基本的数据库操作,其较JDBC更简洁更方便,大大减少了代码量,把对数据库表的操作变成对用户对象的操作。

猜你喜欢

转载自blog.csdn.net/qq_21225505/article/details/81739103