hibernate如何根据需要创建新表

我有一个需求,当一个用户注册的时候,我需要为这个用户创建一个新表来存放与这个用户相关的信息。如何使用hibernate实现呢?我想了很久都没有结果,请高手帮忙!谢谢!问题... 我有一个需求,当一个用户注册的时候,我需要为这个用户创建一个新表来存放与这个用户相关的信息。如何使用hibernate实现呢?我想了很久都没有结果,请高手帮忙!谢谢!问题解决了再加分。
我的需求是这样的,我需要在网站上保存每个用户的消费信息,如果把所有人的消费信息都放在一张表里的话,那么表的容量会很大,不方便管理,同时,当在线用户人数太多的时候会很慢,没法对表进行并发操作,我需要为每个用户创建一个消费信息表来存储每个用户的消费信息。请问高手,这样的需求应该如何解决?
展开
 我来答
可以叫我表哥
推荐于2017-09-19 · 知道合伙人数码行家
可以叫我表哥
知道合伙人数码行家
采纳数:25897 获赞数:1464988
2010年毕业于北京化工大学北方学院计算机科学与技术专业毕业,学士学位,工程电子技术行业4年从业经验。

向TA提问 私信TA
展开全部
方案一 :
在hibernate.cfg.xml中添加:

<properties>
<property name="hibernate.hbm2ddl.auto" value="create" />
</properties>

value的值可选项如下:

* validate 加载hibernate时,验证创建数据库表结构
* create 每次加载hibernate,重新创建数据库表结构。
* create-drop 加载hibernate时创建,退出是删除表结构
* update 加载hibernate自动更新数据库结构

方案二 :
用自动生成代码后,在/src下面有一个jdbc.properties文件,这里加一句hibernate.hbm2ddl.auto=update。值的可选项同上。
望远镜里的星星
推荐于2017-09-15 · TA获得超过399个赞
知道小有建树答主
回答量:177
采纳率:0%
帮助的人:0
展开全部
那就不能使用Hibernate的ORM特点了,只能自己用SQL实现,Hibernate也可以支持直接SQL语言操作。

不过,为每个用户创建一张表,这本来就很不合理,非常难以管理,当用户数成千上万时,就会有成千上万的表,数据库就不能支持这么多的表,性能会很低。但数据表里有上百万条的记录,数据库还是很轻松应付,所以不应该通过无限增加表的数量来实现,而是修改表结构,在有限的表里更高性能的存储更多用户数据。

如果用户数很多,而且每条记录的列数很多,应该是考虑表的横行切割(一部分记录行放在一个表,另一部分的记录行放在另一个表,减轻记录行太多,而引起的表负担)或纵切割(记录行里的一部分列放在一个表,另一部分的列放在另一个表,减轻一条记录太大,而引起的表负担),或是这两种的混合。
还有比较简单的方式,通过修改范式设计(例如通过一对一关键关联,把用户的数据分别放在两个表里),实现更高性能的数据存放
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友c01ba5d
2009-03-19 · TA获得超过802个赞
知道小有建树答主
回答量:259
采纳率:0%
帮助的人:188万
展开全部
每个用户创建一张表?天啊,这个需求下来,数据库会疯的……

我不知道楼主原本的需求是不是单独为这个用户保存一套数据,比如地址,电话,邮编等详细信息。如果是这样,建议楼主建两张表即可,类似
User和UserDetail表,然后再UserDetail表中有一个字段保存User的主键ID,这样就可以查询了。

如果楼主非要创建表的话,hibernate支持原声sql语句,楼主可以试一下。
session.createSqlQuery(); //貌似是这个方法吧。这个方法是传入SQL语句而不是HQL语句的。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
aaronswon
2009-03-19 · TA获得超过3481个赞
知道大有可为答主
回答量:1863
采纳率:0%
帮助的人:1621万
展开全部
难道不是先把表建好先的?用sql语句建呗~
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友ff1d909
2009-03-24 · 超过12用户采纳过TA的回答
知道答主
回答量:142
采纳率:0%
帮助的人:68.5万
展开全部
hibernate的session可以返回connection对象用于执行jdbc来创建表。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式