java使用Myeclipse创建Hibernate项目碰到的诸多问题总结

这两天一直在搞Myeclipse创建Hibernate的1对多映射。

由于缺乏经验,可算是把我坑惨了。控制台是不停地报错啊~~~~我差点就崩溃了。

1.看的是慕课网的Hibernate一对多映射教程,由于老师Myeclipse的Hibernate高版本是3.3,于是老师就自己

下载了4.3版本,拖拽到项目中,然后所有的文件(hibernate.cfg.xml;**.hbm.xml;sessionFactory工具类以

及持久化类和SQL生成表的代码)都是手写~~~

2.然后我稍微看了一下马士兵老师的Hibernate讲解,看了一章:到底是先创建类还是先创建表。得出的结论是:

理论上是先创建类然后再创建表,但是实际项目开发几乎都会先建表然后再建类。

而且Myeclipse是可以根据表反向生成持久化类的(以及各种配置文件和工具类),大大地简化了工作量。

3.于是,先为项目添加Hibernate规则,自动生成了hibernate.cfg.xml工具类,然后建表grade和student,

grade的主键是student的外键,然后Myeclipse连接上数据库,点击表右键,选择Hibernate***,选择生成

持久类的位置,然后选择主键生成机制:这里注意一下,虽然说native会根据底层数据库自动选择生成机

制,但是,最好还是显式地选择机制(assigned:手动添加;increment:自动递增;等等)。

然后选择表的关联:

这里注意上面两个框要是打钩的话,会同时帮你生成与此表有关联的表的持久化类和配置文件,我们打钩!省得表

多的话要多操作几次。

4.好,这样就已经生成了数据库表对应的持久化类和配置文件

-----------------------------------------------------------------------------------------------

------------------------------------------------------------------------------------------------

但是问题就会出现在这里,我们做的是一对多的映射,Grade.hbm.xml有  <one-to-many class="file.Student" />属

性是正常的,因为班级要对应多名学生,可是Myeclipse为我们生成Student.hbm.xml文件时,自动添加了

<many-to-one name="grade" class="file.Grade" fetch="select">
<column name="gid" />
</many-to-one>

我们的这个demo是不需要many-to-one的,所以这个文件的这个属性字段应该删除。

5.我们再来看Student.java这个持久化类:

1     private Integer sid;
2     private Grade grade;
3     private String sname;
4     private String sex;

我们为student表添加了一个外键(对应grade表的主键),但是Myeclipse生成持久化类的时候却为这个类添加了一

个Grade类的属性grade,并为其配置了getter、setter方法,这是不需要的!立马删除!构造方法里面的Grade参数

也要删除!

6.如此一来,我们可以安心地写测试类了

 1 public class TTest {
 2     private Session session;
 3     private Transaction transaction;
 4
 5     @Before
 6     public void init() {
 7         session = HibernateSessionFactory.getSession();
 8         transaction = session.beginTransaction();
 9     }
10
11     @After
12     public void distory() {
13         transaction.commit();
14         session.close();
15     }
16
17     @Test
18     public void todo() {
19         Grade g = new Grade(104, "java", "java学习1班");
20         Student s = new Student(12, "桔子桑", "男");
21         g.getStudents().add(s);
22         session.save(g);
23         session.save(s);
24     }
25 }

这是用JUnit单元测试工具写的测试类,前面两个方法就是一些初始化,销毁操作,真正的操作细节在todo()方法

里,我们来看一下这个方法:

首先建一个班级,班级号(gid)也就是student表的外键为104;

再建一个学生学号为12,注意这里是没有外键字段gid的,学生表的持久类Student里面也是没有的;

然后取得班级的Students属性(持久化类是就已经生成,类型是个Set表,用于存储班级的学生),并为其添加这

个学生s,然后save,save。

接下来看生成的数据库表:

------------------------------------------------------------------------------------------------------

------------------------------------------------------------------------------------------------------

-----------------------------------------------------------------------------------------------------

就这样,在为班级表添加学生的时候,也就自动匹配了学生表的gid字段值。

完结撒花~~~~~~~~~

时间: 2024-08-29 02:15:57

java使用Myeclipse创建Hibernate项目碰到的诸多问题总结的相关文章

Rhythmk 学习 Hibernate 01 - maven 创建Hibernate 项目之 增删改查入门

1.环境: Maven :3.1.1 开发工具:Spring Tool Suite 数据库 : Mysql  5.6 2.项目文件结构 文件代码: 2.1 .pom.xml <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.ap

如何在浏览器中输入(myeclipse创建的项目的)地址访问JSP页面

如何在浏览器中输入(myeclipse创建的项目的)地址访问JSP页面 可以在Tomcat项目里面查看你的JSP页面在哪里,具体的路径为: tomcat--work--localhost--项目名称, 在浏览器的地址栏中可以http://localhost:端口号/项目名称即可. 原文地址:https://www.cnblogs.com/s1-myblog/p/10464602.html

Maven3路程(五)用Maven创建Hibernate项目

本文将用Maven3.Hibernate3.6.Oracle10g整合,作为例子. 环境清单: 1.Maven3.0.5 2.Hibernate3.6.5 Final 3.JDK1.7.0.11 4.Oracle10g 一.首先创建表BDUSER create table DBUSER ( user_id NUMBER(5) not null, username VARCHAR2(20), created_by VARCHAR2(20), created_date DATE ) 二.用Maven

Intellij Idea 用Maven 创建Hibernate 项目

第一步:创建maven项目 2. 3. 4.第三步保存之后进行下一步 到此点击finish maven项目创建成功,点击完成后会进行一系列jar包的下载 maven 仓库的默认存储位置 第二步:连接数据库 我用的是mysql 接下来点击绿色加号 选择Data Source  选择自己的数据库 我用的是mysql 到第五步的时候 点击 跳转页面 上面的测试成功后会弹出一下的页面 三,导入hibernate的包在pom.xml <dependency> <groupId>org.hib

myEclipse创建maven项目

一.创建maven项目 1:myEclipse中创建maven项目 2:点击next 3:选maven-archetype-webapp后,next 4:填写相应的信息,Packaged是默认创建一个包,不写也可以 5:创建好项目后,目录如下: 至此,项目已经创建完毕,下边可是配置. 二.项目配置 1.添加Source Folder Maven规定,必须创建以下几个Source Folder src/main/resources src/main/java src/test/resources

【SpringMVC】使用Myeclipse创建SpringMVC项目【超详细教程】

之前一直是使用Eclipse创建Web项目,用IDEA和MyEclipse的创建SpringMVC项目的时候时不时会遇到一些问题,这里把这个过程记录一下,希望能帮助到那些有需要的朋友.我是用的是MyEclipse2017 CI 3,相近版本应该都差不多.至于其他版本找到类似操作即可. 1.新建web项目 然后点击finish完成web项目创建. 2.安装Spring框架 此时,项目结构如图: 3.创建xml文件 内容如下: <?xml version="1.0" encoding

007Maven_在Myeclipse创建web项目

创建Web项目 l  选择创建一个普通的web工程 l  如果采用src缺省的包结构,则pom.xml中需要指定编译和调试的目录. <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 ht

MiniDao_1.6.4 版本发布,轻量级Java持久化框架,Hibernate项目辅助利器

MiniDao 简介及特征 MiniDao 是一款超轻量的JAVA持久层框架,具备Mybatis一样的SQL能力: 支持SQL分离.支持标签.支持注解.MiniDao产生的初衷是为了解决Hibernate项目对复杂SQL支持能力,具备Mybatis一样的灵活性,同时支持事务同步. 具有以下特征: O/R mapping不用设置xml,零配置便于维护 不需要了解JDBC的知识 SQL语句和java代码的分离 只需接口定义,无需接口实现 SQL支持脚本语言(强大脚本语言,freemarker语法)

idea创建Hibernate项目

idea 是个强大的Java IDE,Hibernate是开源的Java连接数据库框架,免去了写sql语句的烦恼. idea包含Hibernate配置文件模板,可以很方便地生成配置文件. 1,添加Hibernate模块.在  File--Project Structure--Modules 中点击绿色加号,添加Hibernate. 2,添加Hibernate配置文件.点击右边绿色+号, 创建 hibernate.cfg.xml 3,修改配置文件,添加属性,包括:connection.url