Hibernate学习(一)--Hello Hibernate

Hibernate开发的环境搭建

(一)Hibernate的环境搭建需要引入Hibernate核心包以及Hibernate依赖包即可(附整个工程代码
(二)加入数据库驱动。下面的例子采用Mysql数据库来演示的,所以引入MysqL的JDBC驱动。
(三)提供核心配置文件hibernate.cfg.xml文件(在src文件夹下即可)。
<?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>
    		
    		<!-- 使用SQL语句操作数据库时,将打印SQL语句 -->
    		<property name="show_sql"> true</property>
    		
    		<!-- mysql数据库驱动 -->  
        	<property name="hibernate.connection.driver_class">com.mysql.jdbc.Driver</property>
        	  
       		<!-- mysql数据库名称 -->  
       		<property name="hibernate.connection.url">jdbc:mysql://localhost:3306/bookshop</property>  
    		
        	<!-- 数据库登录用户名 -->
        	<property name="hibernate.connection.username">root</property>
        	
        	<!-- 数据库密码 -->
        	<property name="hibernate.connection.password">数据库密码</property>
        	
          	<!-- 方言:为每一种数据库提供适配器,方便转换 -->  
      		<property name="hibernate.dialect">org.hibernate.dialect.MySQLDialect</property>  
         
         	<!-- 添加新定义的Users ORM映射 -->
        	<mapping resource="Users.hbm.xml"></mapping>
    	</session-factory>
    
    </hibernate-configuration> 

Hello Hibernate项目
目录结构如下:

说明:lib中包含了所有所需的库。

1、新建一个普通的java项目,按照上面步骤,配置好Hibernate的环境;

2、建立Usesr实体类
package dao;

import java.io.Serializable;

public class Users  implements Serializable{
	private Integer id; // 编号
	private String loginName;
	private String loginPwd;
	private String name;
	private String address;
	private String phone;
	private String mail;
	
	
	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;
	}
	public String getName() {
		return name;
	}
	public void setName(String name) {
		this.name = name;
	}
	public String getAddress() {
		return address;
	}
	public void setAddress(String address) {
		this.address = address;
	}
	public String getPhone() {
		return phone;
	}
	public void setPhone(String phone) {
		this.phone = phone;
	}
	public String getMail() {
		return mail;
	}
	public void setMail(String mail) {
		this.mail = mail;
	}
	
	
	
}


3、新建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>
  	
  		<!-- table是数据表名, catalog是数据库名-->
  		<class name="dao.Users" table="users" catalog="bookshop">
	  		<!-- 定义key id -->
	  		<id name="id" type="java.lang.Integer">
	  			<column name="Id"></column>
	  			<generator class="native"></generator>
	  		</id>
	  		
	  		<!-- 设置一般属性的映射 -->
	  		<!-- 类loginName与数据表LoginName属性之间的映射 -->
	  		<property name="loginName" type="java.lang.String">
	  			<column name="LoginName" length="50"></column>
	  		</property>
  		
  			<property name="loginPwd" type="java.lang.String">
  				<column name="LoginPwd" length="50"></column>
  			</property>
  			<property name="name" type="java.lang.String">
  				<column name="Name" length="16"></column>
  			</property>
  			<property name="address" type="java.lang.String">
  				<column name="Address" length="50"></column>
  			</property>
			<property name="phone" type="java.lang.String">
				<column name="Phone" length="16"></column>
			</property>
			<property name="mail" type="java.lang.String">
				<column name="Mail" length="50"></column>
			</property>  		
  		</class>
  	
  	</hibernate-mapping>

其中的property标签是将实体类属性与数据库表中字段对应。

4、在hibernate.cfg.xml中添加配置实体类和数据表的映射的文件;
   <!-- 添加新定义的Users ORM映射 -->
    <mapping resource="Users.hbm.xml"></mapping>


5、测试Hibernate
新建一个类用于测试使用Hibernate,向数据库插入数据;
package test;

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

import dao.Users;

public class HelloHibernate {


	public static void main(String args[]){
		new HelloHibernate().addUser();
	}
	
	private void addUser(){
		Users user = new Users();
		user.setLoginName("Mike");
		user.setLoginPwd("123456");
		user.setName("Mike");
		user.setAddress("Beijing");
		user.setMail("11@sina.com");
		user.setPhone("12345678910");
		
		//默认读取hibernate.cfg.xml文件  
	    Configuration cfg = new Configuration().configure();
	    
	    // 建立会话
	    SessionFactory sf = cfg.buildSessionFactory();
	    Session session = sf.openSession();
	    
	    // 事务处理
	    Transaction tx = null;
	    try{
		    tx = session.beginTransaction();
			session.saveOrUpdate(user);   // 保存或更新数据
			tx.commit();	    	      // 提交事务
	    }catch(Exception e)
	    {
	    	if(tx!=null){
	    		tx.rollback(); // 回滚
	    	}
	    }
	    finally{
	    	sf.close();
	    }
	}
	
}


执行代码后,在数据中查询,发现已经完成数据的插入,结果如下图:



总结
通过上面的代码我们可以看出,在代码中没有涉及到任何有关JDBC的代码,作为开发人员只需要写好相应的实体类,然后通过配置就可以实现了表的建立以及向表中实现数据的插入。
在代码中有许多Hibernate的核心对象,例如Configuration、SessionFactory、Session等等。请先自行查询相关内容。

参考博客: http://blog.csdn.net/aboy123/article/details/10085635
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值