Hibernate初学者第一篇,,,小白一枚,不喜勿喷。

hibernate 1

    开博原因

    这学期我们开设了框架的课程,因为课时原因,框架老师只是粗略的讲了Struts2、spring的入门知识,hibernate则是由ORM课负责讲解,在上ORM课之前我是准备学习mybatis的,今天听了ORM老师讲课,他说hibernate学会了,再转mybatis会很容易,所以准备在这里记录我学习hibernate的路程以及以后要转学mybatis的学习之路。

     我们用的参考书籍是传智播客高教产品研发部编著的清华大学出版社出版的《ssh框架整合实战教程》,有些知识会参照操烤熟,如有文章里侵权,请联系我,我会删除。

        学习hibernate,首先要知道hibernate有什么好处:“hibernate是一个开源框架,对JDBC进行了轻量级(比mybatis重)地封装,使java程序员可以用面向对象的编程思想来操作数据库。”   我对这句话的理解就是在你的java代码中,可以不必再去操纵sql语句了,所有的跟sql有关的东西,都在框架中,你只需要在配置文件中配置就可以了,避免了在写java代码的同时还要操作数据库的麻烦,而且传统的JDBC代码是比较麻烦的。就那查询举例,一个表中的列少时还可以,要是十多个列,那每条在java中的sql语句就要多写很多代码,很容易出错。所以使用框架会让你的程序变得更加的简洁更具有操作性,方便后期代码维护与复用。

    第一个hibernate程序

我们第一个程序就简单的做一个查询吧。

首先要下载hibernate的jar包,在hibernate官网就可以下载。http://hibernate.org

下载教程:点击more

下载5.2的就可以了



点击以后鼠标下滑,找到releases,然后挑一个下载。

点击下载之后会跳出这样一个界面,等待10s左右就跳出来你要下载的文件了


只是可能下载速度比较慢,不过多等一会也没什么。


下载结束解压后是这样一个文件夹

doc: hibernate提供的帮助文档,一般只要看懂这个文档就可以完全自学了。

lib: hibernate的所有jar包。

pro: 这是hibernate自带的一下样例。


以上我们下载完hibernate对应的jar包了,下面就要开始使用hibernate了。


首先我们要建立一个数据库,数据库软件就用MYSQL。工具用sqlyog。

创建一个名叫person的数据库

然后在这个数据库里创建一个p_stu的表

CREATE TABLE `p_stu` (
  `s_id` int(10) DEFAULT NULL,
  `s_name` varchar(20) DEFAULT NULL,
  `s_sex` varchar(5) DEFAULT NULL,
  `s_gra` int(5) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8

随意插入几条数据。

然后打开myeclipse:创建一个java项目,在项目根目录下创建一个lib文件夹


这时,我们将所需要的jar包导入lib中,粘贴后别忘了build path


然后建立java pojo。   student类

package com.hust.hibernateDemo;

public class Student {
    private int id;
    private String name;
    private String sex;
    private int gra;
    
    public int getId() {
        return id;
    }
    public void setId(int 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 int getGra() {
        return gra;
    }
    public void setGra(int gra) {
        this.gra = gra;
    }
    
}


配置hibernate.cfg.xml

<?xml version='1.0' encoding='UTF-8'?>
<!DOCTYPE hibernate-configuration PUBLIC
          "-//Hibernate/Hibernate Configuration DTD 3.0//EN"
          "http://www.hibernate.org/dtd/hibernate-configuration-3.0.dtd">
<!-- Generated by MyEclipse Hibernate Tools.                   -->
<hibernate-configuration>

    <session-factory>
        <property name="dialect">org.hibernate.dialect.MySQLDialect</property>
        <property name="connection.url">jdbc:mysql://127.0.0.1:3306/person?serverTimezone=UTC</property>
        <property name="connection.username">root</property>
        <property name="connection.password">root</property>
        <property name="connection.driver_class">com.mysql.jdbc.Driver</property>
    <mapping resource="com/hust/jayson/Student.hbm.xml"/> 
    </session-factory>

</hibernate-configuration>

编写映射文件 student.hbm.xml

<?xml version="1.0"?>
<!--
  ~ Hibernate, Relational Persistence for Idiomatic Java
  ~
  ~ License: GNU Lesser General Public License (LGPL), version 2.1 or later.
  ~ See the lgpl.txt file in the root directory or <http://www.gnu.org/licenses/lgpl-2.1.html>.
  -->
<!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.hust.jayson.Student" table="p_stu" lazy="false">
        <id name="id" column="s_id" >
            <generator class="native"/>
        </id>

     <property name="name" column="s_name" type="string" />
     <property name="sex" column="s_sex" type="string" />
     <property name="gra" column="s_gra" type="int" />
    </class>

</hibernate-mapping>
 

注意:配置文件中的属性类型和java中的属性类型可能不一样,就拿字符串来说,在java中就是String,而在这个配置文件中去却是小写的“string” 小弟就掉进了这个坑,爬了好久才爬出来。

最后建立测试类

package com.hust.jayson;


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


public class TestDemo {
	@Test
		public void selectStu(){
			
			Configuration  cig = new Configuration().configure();
			SessionFactory sessionFactory = cig.buildSessionFactory();
			 Session session = sessionFactory.openSession();
			  Transaction t = session.beginTransaction();
			  Student s = (Student) session.get(Student.class, 1);
			  
			  System.out.println(s.toString());
			  t.commit();
			  session.close();
			  sessionFactory.close();
		}
}

输出结果


总结:

         嗯,,,第一次试用hibernate可谓是经历了千辛万苦,一堆BUG,比如myeclipse的jdk版本过低,比如String和string的区别等等等等。不过也成长了许多,顺带学到了怎么去更改myeclipse里的jdk版本。反正不会的就百度,多看大佬们是怎么处理这些问题的好了。

如有问题,留言私信都可以,以后会不定时更新学到的知识,小白一枚,一些无知的地方望请见谅。


1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值