Hibernate上路_22-从表自动创建Java类
2013-11-22 15:24
513 查看
1.数据库准备:
CREATE DATABASE db_hibernate CHARACTER SET utf8; USE db_hibernate; -- 注释:用户表 CREATE TABLE tb_user( u_id INT PRIMARY KEY AUTO_INCREMENT, #ID:整型,主键,自动增长 u_name VARCHAR(20), #姓名:字符串,最长20 u_phone INT #电话:整型 ); -- 注释:订单表 CREATE TABLE tb_order( o_id INT PRIMARY KEY AUTO_INCREMENT, #ID:整型,主键,自动增长 o_name VARCHAR(20), #商品:字符串,最长20 o_price DOUBLE, #价格:双精度 u_id INT, #外键:关联用户表的id列 CONSTRAINT u_id_fk FOREIGN KEY (u_id) REFERENCES tb_user(u_id) #创建外键关联 );
2.创建数据库视图:
1)选择数据库视图:
2)创建新连接:
3)配置MySql连接:
配置结束,Finish即可。4)连接MySql:
右键点击连接,Open connection ... 。3.使用Hibernate反转引擎:
1)在MyEclipse创建空web项目:
返回MyEclipse Java Enterprise perspective视图。2)使用hibernate能力支持:
右键项目,MyEclipse,Add Hibernate Capabilities... 。3)选择hibernate版本:
本文使用myeclipse版本是10.7。4)创建配置文件:
5)配置MySql连接:
6)配置完成:
7)自动添加jar包并创建hibernate.cfg.xml文件:
4.从表单到POJO类:
1)先合理创建包路径:
2)反转表单:
切换到数据库视图,右键表单,Hibernate Reverse Enginering 。3)配置创建目录和文件:
4)查看:
5.测试:
1)插入数据代码:
package cn.cvu.test; import cn.cvu.domain.TbOrder; import cn.cvu.domain.TbUser; public class TestHibernateGenerate { public void test() { Configuration configuration = new Configuration().configure(); ServiceRegistry serviceRegistry = new ServiceRegistryBuilder() .applySettings(configuration.getProperties()).buildServiceRegistry(); SessionFactory sessionFactory = configuration.buildSessionFactory(serviceRegistry); Session session = sessionFactory.openSession(); Transaction transaction = session.beginTransaction(); //MyEclipsePersistenceTools自动创建的POJO实体类TbUser TbUser user = new TbUser(); user.setUName("Akon"); user.setUPhone(10086); //PersistenceTools自动创建的POJO实体类TbOrder TbOrder order1 = new TbOrder(); order1.setOName("茄子"); order1.setOPrice(25.3d); //订单2 TbOrder order2 = new TbOrder(); order2.setOName("黄瓜"); order2.setOPrice(3.2d); user.getTbOrders().add(order1); user.getTbOrders().add(order2); order1.setTbUser(user); order2.setTbUser(user); session.save(user); session.save(order1); session.save(order2); transaction.commit(); session.close(); sessionFactory.close(); } }
2)报错:
org.hibernate.InvalidMappingException: Unable to read XMLat cn.cvu.test.TestHibernateGenerate.test(TestHibernateGenerate.java:17) 对应代码
Configuration configuration = new Configuration().configure();
exception: http://www.jboss.org/dtd/hibernate/hibernate-mapping-3.0.dtd%20
at org.dom4j.io.SAXReader.read(SAXReader.java:484)
at org.hibernate.internal.util.xml.MappingReader.readMappingDocument(MappingReader.java:78)
... 34 more
这个错误实质是加载完
hibernate.cfg.xml
,再加载
POJO.hbm.xml
时出错,并非加载不到
hibernate.cfg.xml
。错误原因是工具自动生成的
POJO.hbm.xml
文件头中多了一个空格。
3)更正POJO.hbm.xml后测试:
- end
相关文章推荐
- Hibernate无法自动创建数据库表
- hibernate4连接mysql自动创建表之错误
- Hibernate自动创建表
- Hibernate无法自动创建数据库表
- 解决Hibernate不能自动创建数据库表的问题
- Hibernate自动更新和创建表结构<转>
- Hibernate连接mysql数据库并自动创建表
- hibernate 无法自动创建表
- hibernate中自动创建表的配置
- SSH利用Hibernate自动创建实体类(逆向工程)(MySQL数据库为例)
- hibernate自动创建数据库
- JPA项目使用myeclipse创建带注解的model实体类&web工程使用MyEclipse自动生成hibernate映射文件和实体类
- Hibernate 不会自动创建表 提示表不存在Table 'hibernate.students' doesn't exist
- hibernate基础之无法自动创建表总结
- Hibernate不能自动创建表的问题
- hibernate自动创建表
- 那些年踩过的坑之(1)Hibernate自动创建表出错
- ERROR JDBCExceptionReporter:234 - Table 'xxxxxxxx' doesn't exist hibernate无法自动创建表
- 初学Hibernate, 遇到不能自动创建表的问题
- 利用hibernate反向自动创建数据库