因为在学习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代表的是一种数据库的方言。能够为数据库中的属性设置一些默认值(我眼下是这么理解的,以后再深入研究一下)我知道了一个网页内容是数据库相应的方言的类。能够參考一下

url=iAtJN4kmEiQC1lt5ftCVhBoRUEsDf4YZ4jUaq9zuJDSjmnoVoPUWrEJ4hznScezJksTzlznOjYySoV4XBj7564m3EMAtwAguSjTwNmtLEoe">百度文库地址

<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的实战笔记。

hibernate实战笔记1---初探的更多相关文章

  1. Tars | 第0篇 腾讯犀牛鸟开源人才培养计划Tars实战笔记目录

    腾讯犀牛鸟开源人才培养计划Tars实战笔记目录 前言 在2021年夏,笔者参加了腾讯首届开源人才培养计划的Tars项目,负责Subset流量管理规则的Java语言JDK实现.其中写作几篇开源实战笔记, ...

  2. hibernate关联关系笔记

    Hibernate关联关系笔记 单向N:1 *  有连接表:在N方使用<join>/<many-to-one>.1方无需配置与之关联的持久化类. *  没有连接表:在N方使用& ...

  3. Hibernate学习笔记(二)

    2016/4/22 23:19:44 Hibernate学习笔记(二) 1.1 Hibernate的持久化类状态 1.1.1 Hibernate的持久化类状态 持久化:就是一个实体类与数据库表建立了映 ...

  4. Hibernate学习笔记(一)

    2016/4/18 19:58:58 Hibernate学习笔记(一) 1.Hibernate框架的概述: 就是一个持久层的ORM框架. ORM:对象关系映射.将Java中实体对象与关系型数据库中表建 ...

  5. Hibernate 学习笔记一

    Hibernate 学习笔记一 今天学习了hibernate的一点入门知识,主要是配置domain对象和表的关系映射,hibernate的一些常用的配置,以及对应的一个向数据库插入数据的小例子.期间碰 ...

  6. mysql颠覆实战笔记(五)--商品系统设计(二):定时更新商品总点击量

    继续回到沈老师的MYSQL颠覆实战,首先回顾下上一节课的内容,请大家会看下上节课写的存储过程. 打开prod_clicklog表, 我们只要把日期(不含时分秒)的部分存在数据库中, 如果同一日期有相同 ...

  7. mysql颠覆实战笔记(四)--商品系统设计(一):商品主表设计

    版权声明:笔记整理者亡命小卒热爱自由,崇尚分享.但是本笔记源自www.jtthink.com(程序员在囧途)沈逸老师的<web级mysql颠覆实战课程 >.如需转载请尊重老师劳动,保留沈逸 ...

  8. mysql颠覆实战笔记(一)--设计一个项目需求,灌入一万数据先

    版权声明:笔记整理者亡命小卒热爱自由,崇尚分享.但是本笔记源自www.jtthink.com(程序员在囧途)沈逸老师的<web级mysql颠覆实战课程 >.如需转载请尊重老师劳动,保留沈逸 ...

  9. mysql颠覆实战笔记(七)--白话理解事务

    今天我们学习web开发级mysql颠覆实战课程第9课没MYSQL事务(一):白话理解事务.前面有两节课第7讲:商品系统设计(四):商品属性设计之自定义属性,第8讲:商品系统设计(五):一维属性的商品价 ...

随机推荐

  1. 涨知识III - 百度2016校园招聘——移动软件研发工程师

    1.列关于线程调度的叙述中,错误的是(). 正确答案 :BE A调用线程的sleep()方法,可以使比当前线程优先级低的线程获得运行机会 B调用线程的yeild()方法,只会使与当前线程相同优先级的线 ...

  2. 【Leetcode】115. Distinct Subsequences

    Description: Given two string S and T, you need to count the number of T's subsequences appeared in ...

  3. cocos2d-x 不规则碰撞检测 【转载】

    原文:http://www.2cto.com/kf/201401/272331.html //判断有没有点到有材质的部分, p_point相对, CCSprite坐标  (p_point是相对 Spr ...

  4. Linq学习(四)-联合查询

    一.本将主要介绍 Union.Concat.Intersect.Except的使用操作 1.Union 查询昵称中带有Friend和带有Lee的用户 Linq (from a in Blog_User ...

  5. MyBatis分页组件--PageHelper

    一.介绍 PageHelper是国内非常优秀的一款开源的 mybatis 分页插件,它支持基本主流与常用的数据库,例如 Oracle.Mysql.MariaDB.SQLite.Hsqldb 等. 官网 ...

  6. Android 微信SDK图片分享(checkArgs fail, thumbData is invalid)

    微信官网给的Demo中.图片的分享例子他是这么描述的: String url = "http://pic2.nipic.com/20090506/1478953_125254084_2.jp ...

  7. Android进入一个新页面,EditText失去焦点并禁止弹出键盘

    android在进入一个新页面后,edittext会自动获取焦点并弹出软键盘,这样并不符合用户操作习惯. 在其父控件下,添加如下的属性,就可以完美解决,使其进入页面后不主动获取焦点,并且不弹出软键盘: ...

  8. Java_Web三大框架之Hibernate+jsp+selvect+HQL注册用户

    Hibernate比SQL语句简单多了,代码冗余少,切方便简洁明了.下面用Hibernate+jsp+selvect+HQL来实现注册用户. 第一步:编写用户实体类和Users2.hbm.xml映射. ...

  9. PHP 之base16加密解密封装

    /** * @Description: base16加密 * @Author: Yang * @param $data * @return string */ function base16_enco ...

  10. WinForm窗体中窗口控件的生成

    1:button控件的生成方式 Button button = new Button(); button.Size = new Size(80, 80); button.Location = new ...