zoukankan      html  css  js  c++  java
  • hibernate实战笔记1---初探

    因为在学习Spring的时候学到有关数据库的章节的时候,提及到了hibernate的集成,可是我对hibernate技术差点儿是一点不了解。仅仅是知道它是一个orm对象映射框架,所以在初探的章节做一下hibernate的简单了解,以及应用。顺便提一句,我用的是maven加入的hibernate开发包

    简单使用hibernate的一般步骤

    *创建而且编辑hibernate配置文件

    该配置文件主要是用于链接数据库所用,定义了数据库的驱动程序和映射文件的位置。例如以下是一个简单的配置

    <?xml version="1.0" encoding="utf-8" ?

    > <!DOCTYPE hibernate-configuration PUBLIC "-//Hibernate/Hibernate Configuration DTD//EN" "http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd"> <hibernate-configuration> <session-factory > <property name="show_sql">true</property> <property name="connection.driver_class"> org.gjt.mm.mysql.Driver </property> <property name="connection.url"> jdbc:mysql://localhost:3306/pgwt </property> <property name="connection.username"> root </property> <property name="connection.password"> 1234 </property> <property name="dialect"> org.hibernate.dialect.MySQLDialect </property> <mapping resource="com/springframework/hibernate/test.hbm.xml" /> </session-factory> </hibernate-configuration>


    依据这个配置文件能够看出,全部的配置信息都是包括在<hibernate-configureation>标签之中,该配置文件和Spring的装配bean几乎相同,<session-factory>相应一个SessionFactory对象,期中配置的是对象中的属性,name代表属性的名称<property>标签的内容就是属性值了,逐一了解一下

    show_sql属性是一个boolean值,代表的是在进行数据库操作的时候是否在控制台输出sql语句,在调试的时候很实用

    connection.driver_class代表的是数据库的jdbc驱动程序,我这里使用的是mysql所以就是org.gjt.mm.mysql.Driver

    connection.url代表的是訪问数据库的url

    connection.username 代表的是登录数据库时候的用户名

    connection.password 代表的是登录数据库时候的密码

    dialect代表的是一种数据库的方言。能够为数据库中的属性设置一些默认值(我眼下是这么理解的,以后再深入研究一下)我知道了一个网页内容是数据库相应的方言的类。能够參考一下百度文库地址

    <mapping resource=""/>标签是用来引用映射文件地址的,至于映射文件的内容。下文会做简单的介绍


    *创建数据库表

    简单的创建一个user的数据库表分别有userid,name,password字段


    *创建和数据库表相应的javaBean类

    例如以下是一个简单的javaBean

    package com.springframework.hibernate;
    
    public class User {
    
    	private String userid;
    	private String name;
    	private String password;
    
    	public String getUserid() {
    		return userid;
    	}
    
    	public void setUserid(String userid) {
    		this.userid = userid;
    	}
    
    	public String getName() {
    		return name;
    	}
    
    	public void setName(String name) {
    		this.name = name;
    	}
    
    	public String getPassword() {
    		return password;
    	}
    
    	public void setPassword(String password) {
    		this.password = password;
    	}
    
    }
    

    *创建映射文件

    映射文件里包含了一些配置信息,代码之后会逐一介绍一下配置信息的含义,配置文件例如以下

    <?xml version="1.0"?>
    <!DOCTYPE hibernate-mapping PUBLIC
        "-//Hibernate/Hibernate Mapping DTD//EN"
        "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
    
    <hibernate-mapping>
    	<class name="com.springframework.hibernate.User" table="user">
    		<id name="userid" column="userid">
    			<generator class="assigned" />
    		</id>
    		<property name="name" column="name" />
    		<property name="password" column="password" />
    	</class>
    </hibernate-mapping>


    在上边的数据库表中包含三个字段。期中userid是主键。然后我来逐一说一下配置文件的含义

    全部的配置信息都是写在<hebernate-mapping>标签中,期中能够包括多个<class>标签,目的是为了配置javaBean与数据库表之间的映射关系

    <class>标签中name属性代表的是该class标签相应的javaBean,table属性代表该class标签相应的数据库表

    <id> 标签是用于映射主键的。user表的主键是userid 。name属性是代表javaBean中属性的名称。column属性代表的是数据库表中的字段

    <generator>标签定义了生成主键的方式,叫做生成器。我选择的方式是assigned。是由程序自由生成主键,相对还有其它集中方式,我找了一篇blog里面说的还挺具体blog地址

    <property>也是像Spring注入javaBean一样,定义属性所相应的数据库表字段的引用column属性代表的是数据库表中的字段


    *创建一个场景类(主函数)

    代码例如以下

    package com.springframework.hibernate;
    
    import org.hibernate.Session;
    import org.hibernate.SessionFactory;
    import org.hibernate.Transaction;
    import org.hibernate.cfg.Configuration;
    
    public class Client {
    
    	public static void main(String[] args) {
    		try {
    			SessionFactory sf = new Configuration().configure()
    					.buildSessionFactory();
    			Session session = sf.openSession();
    			Transaction tx = session.beginTransaction();
    
    			for (int i = 0; i < 100; i++) {
    				User newuser = new User();
    				newuser.setUserid("userid" + i);
    				newuser.setName("name" + i);
    				newuser.setPassword("password" + i);
    				session.save(newuser);
    			}
    
    			tx.commit();
    			session.close();
    
    		} catch (Exception e) {
    			e.printStackTrace();
    		}
    	}
    }

    这类似是一个样板是代码,应该是能够由Spring模板来替换的。

    hibernate是通过SessionFactory来启动hibernate(通过配置文件与数据连接)。session对象其中包括一些数据库操作的方法


    以上是一些使用hibernate的基本方法,了解了以上的知识就能够继续往下学习Spring了,以后再来完好有关hibernate的实战笔记。


  • 相关阅读:
    cuda thrust函数首次调用耗费时间比后续调用长原因
    poj2823/hdu3415
    hiho1515
    hiho147周
    hdu1864/2844/2159 背包基础题
    qt + opencv
    Matlab函数编译成dll供c调用
    无处不在的编程思想
    五步使用法——搞定XMLHttpRequest
    AJAX与传统Web开发比较
  • 原文地址:https://www.cnblogs.com/yangykaifa/p/6928173.html
Copyright © 2011-2022 走看看