日期:2014-05-17  浏览次数:20874 次

请大侠帮我理解一下Hibernate误区--初学者,万分感谢
我想在java-web工程下,应用Hibernate,我数据库里没有表。
实例:
我建了个注册页面,输入用户名,密码,性别。点击提交,想通过hibernate存进表里。
问题来了,我是先创建一个表吗?
我点击提交--到一个类里
类中执行hibernate 建表,存储代码吗?那也不能每次提交都建表啊?
我类里的思路
Session session=null;
User user=new User();
user.setname(name);
...
user.setsex(sex);
session=Hibernate.getSession();//Hibernate是我自己建的类,返回 factory.openSession();

Hibernate.creattable();//我是在这里把表建上吗?还是在编写程序前,先建表啊?

session.beginTransaction();
session.save(registrationForm);
session.getTransaction().commit();

------解决方案--------------------
hibernate建表 是在配置文件里面有个hibernate.hbm2ddl.auto配置的
比如hibernate.hbm2ddl.auto=create 每次都重建
hibernate.hbm2ddl.auto=update 只重建更新的或新增的 
一般用update就可以了

如果hibernate单用的话,你加载hibernate的配置文件的时候就建表了
如果是和spring整合了,是你spring容器开启了 就会加载hibernate的配置文件,也就会建表了


------解决方案--------------------
探讨
1.1楼的人说的是中国国情的做法.
按照OO的做法是,先建立实体对象,然后生成表.
2.2楼的方法,基本都是常用方法.