【HIBERNATE框架开发之一】搭建HIBERNATE环境并成功运行第一个项目HELLOHIBERNATE并解决3个常出现的运行问题;

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
RDS MySQL Serverless 高可用系列,价值2615元额度,1个月
简介:
本站文章均为  李华明Himi 原创,转载务必在明显处注明: 
转载自【黑米GameDev街区】 原文链接:  http://www.himigame.com/hibernate/783.html

OK,从这篇开始Himi将与大家一起进入Hibernate框架的学习啦,新手新手的说,希望大家多多指教;

对于Hibernate概述一下:

”  Hibernate是一个开放源代码的对象关系映射框架,它对JDBC进行了非常轻量级的对象封装,使得Java程序员可以随心所欲的使用对象编程思维来操纵数据库。 Hibernate可以应用在任何使用JDBC的场合,既可以在Java的客户端程序使用,也可以在Servlet/JSP的Web应用中使用,最具革命意义的是,Hibernate可以在应用EJB的J2EE架构中取代CMP,完成数据持久化的重任。 ”

本篇则简单介绍大家如何配置我们的第一个Hibernate框架环境和第一个项目,HelloHibernate;

——

准备工作:

1. Himi这里使用的一些开发资源如下:

1.1         hibernate-distribution-3.3.2.GA   (hibernate核心包)

1.2         hibernate-annotations-3.4.0.GA   (annotations核心包)

1.3         slf4j-1.5.8       (slf4j 实现库,虽然hibernate核心包中有slf4j的jar包,但是只是api包没有实现)

1.4          mysql-connector-java-3.1.14    (mysql 驱动)

OK了,关于资源下载,大家百度下,当然Himi这里用的不是最新的,刚上手怕最新的自己玩不转~咳咳、

Elipse 中user lib 配置工作:(这里Himi用的mac的eclipse)

我们添加到新建的一个 Java Project里,这里Himi新建的Java项目名:HelloHibernate;

打开你的Eclipse-偏好设置-User Libraries中:

点击 New… 新建,然后输入自定义名称,然后添加Hibernate所需的jar包,jar包一共8个如下:

如下图:

 

OK,搞定之后,然后右键你的项目,然后->Build Path->Add Libraries ->User Library->选择你新建的包含hibernate8个jar包的library即可;

继续右键你的项目Build Path->Add External Archives 将 mysql-connector-java-3.1.14, mysql驱动导入项目中;

MySQL 准备工作:

这里Himi新建一个数据库“hibernate”,新建表“teacher”;对于MySQL不太了解的,请移步到Himi本博客的MySQL相关博文中学习下吧,这里Himi不再赘述了;这里为了后续讲述便于理解,Himi将建立好的show出来让大家过目下;

其中 id  Himi将其设置为 primary key ;

准备工作完成后,我们首先创建两个类,一个入口函数类:

MainTest:

再创建一个Teacher类:( POJO)ps.  不太了解POJO的请百度下先~

整个项目目录如下图所示:

 

大家先不要在意,  hibernate.cfg.xml 和 Teacher.hbm.xml 这两个文件,下面再详细介绍;

首先我们使用Hibernate就应该先创建Hibernate的配置文件:(这里Himi采用默认此配置名为hibernate.cfg.xml,当然这个配置文件可以自定义名但是这个名字是否采用默认将影响后面我们使用的不同,这个后面将会详细讲解到)

下面是 hibernate.cfg.xml中的内容:

这个配置文件我们不要自己写噢,去Hibernate的API文档中找到copy,然后简单针对项目进行设置即可;

OK,配置好这个文件其实就是对hibrenate进行的一些配置而已;

下面我们来看Teacher.hbm.xml文件:

这个文件的目录与Teacher.java默认放置同一级目录,约定俗成没有什么why;那么这个文件是个映射文件,它的主要作用是告诉hibernate我们Teacher类中的属性与数据库的哪些字段匹配;OK,看下其中的内容;

(注意这个文件,在Hibernate文档中也有例子,我们copy过来进行修改不要自己写!)

 OK, 映射文件写完之后记得要在hibernate的配置文件(hibernate.cfg.xml)中进行声明:

OK,下面我们来测试使用,打开我们的MainTest.java文件,添加内容如下:

OK,运行你的man函数类,运行结果:

然后检验一下数据库中是否正常存入了一条数据:

噢,哈哈,看到一条 Himi 数据正常添加了哈哈~

 

    那么这里再说两点:这里给出3个运行时出现的问题;

 1.  出现 “Host” ‘xxx.xxx.x.xxx’ is not allowed to connect to this mysql server错误;

如下图:

 

解决方法:

允许用户从ip为192.168.1.6的主机连接到mysql服务器,并使用mypassword作为密码

2. 出现 ‘xxx.xxx.x.xxx’ (using password:YES) 错误;

如下图:

解决方法:

Mysql中执行:

注意这里by 后单引号内是电脑的user的名字;

3.可能有童鞋第一次运行正常,但是第二次运行则出现  Duplicate entry ‘1’ for key ‘PRIMARY’ 错误;

这个问题是主健重复了的错误~ 因为主键约束: 主键不能为空,也不能重复 !

如果对Mysql不了解的,可以先采用从mysql ,truncate 掉你table的数据,再运行就好了!或者将Teacher对象的ID不要与已存在数据库中的主建id重复即可;

源码下载: “HelloHibernate.zip”      下载地址:  http://vdisk.weibo.com/s/hq1cA


相关实践学习
基于CentOS快速搭建LAMP环境
本教程介绍如何搭建LAMP环境,其中LAMP分别代表Linux、Apache、MySQL和PHP。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助     相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
相关文章
|
4天前
|
Java 数据库连接 Spring
使用Hibernate JSP 303 整合到SSM项目
使用Hibernate JSP 303 整合到SSM项目
18 0
|
XML Java 关系型数据库
Spring 项目快速整合 Hibernate
前言 Hibernate 作为前些年广为流行的 ORM 框架,Spring 在诞生之初也进行了支持,并且抽象出一个 spring-orm 模块。
435 0
|
12月前
|
Java 数据库连接 Spring
使用Hibernate JSP 303 整合到SSM项目
下面是具体的工具类,当然不一定需要使用ApplicationContextAware进行校验替换,也可以直接作为一个validater的工具使用,但是建议使用bean的形式而不是使用静态方法。
68 0
|
SQL XML 缓存
mybatis与hibernate运行流程比较
mybatis与hibernate运行流程比较
81 0
mybatis与hibernate运行流程比较
|
Java 数据库连接 Spring
使用Hibernate JSP 303 整合到SSM项目
使用Hibernate JSP 303 整合到SSM项目
437 0
|
SQL Java 数据库连接
SSH项目,hibernate的查询操作出错org.hibernate.hql.ast.QuerySyntaxException
SSH项目,hibernate的查询操作出错org.hibernate.hql.ast.QuerySyntaxException
233 0