码迷,mamicode.com
首页 > Web开发 > 详细

hibernate中.hbm.xml和注解方式自动生成数据表的简单实例(由新手小白编写,仅适用新手小白)

时间:2015-08-07 19:21:40      阅读:199      评论:0      收藏:0      [点我收藏+]

标签:

绝逼新手小白,so 请大神指点!

如果真的错的太多,错的太离谱,错的误导了其他小伙伴,还望大神请勿喷,大神请担待,大神请高抬贵嘴......谢谢。

好了,正题

刚接触ssh,今天在搞使用.hbm.xml文件 和 注解方式 来自动生成数据表

其中只是整了spring、hibernate,struts部分没有整。也就是说我只是测试了能够自动生成数据表(自动生成为"标准",自认为是对的......)

下面是配置和代码:

使用工具:myeclipse 2014 ,其中web project项目是使用工具自动生成(具体步骤网上小弟也是百度的[一大堆]),

额,绝逼新手,有错请提,勿喷,谢谢。

下面粘代码(俩个项目 目录):

技术分享技术分享

web.xml文件时myeclipse自动生成(俩个一样,就只粘一个了):

 1 <?xml version="1.0" encoding="UTF-8"?>
 2 <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
 3     xmlns="http://java.sun.com/xml/ns/javaee"
 4     xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"
 5     id="WebApp_ID" version="3.0">
 6     <display-name>myReply</display-name>
 7     <welcome-file-list>
 8         <welcome-file>index.jsp</welcome-file>
 9     </welcome-file-list>
10     <listener>
11         <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
12     </listener>
13     <context-param>
14         <param-name>contextConfigLocation</param-name>
15         <param-value>classpath:applicationContext.xml</param-value>
16     </context-param>
17 </web-app>

db.properties (俩个一样,只粘一个了)

1 jdbc.user=root
2 jdbc.password=123456
3 jdbc.driverClass=com.mysql.jdbc.Driver
4 jdbc.jdbcUrl=jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=utf8
5 
6 #3306/test,test是在mysql中自己建的database,具体自己建
7 
8 jdbc.initPoolSize=5
9 jdbc.maxPoolSize=10

Test.java和Test.hbm.xml就不粘了,额,就是俩个属性和getter/setter方法,.hbm.xml可以在hibernate jar包中搜个模版再改下;

Store.java(注解方式)

 1 package com.entities;
 2 
 3 import java.io.Serializable;
 4 
 5 import javax.persistence.Column;
 6 import javax.persistence.Entity;
 7 import javax.persistence.GeneratedValue;
 8 import javax.persistence.GenerationType;
 9 import javax.persistence.Id;
10 import javax.persistence.Table;
11 
12 @Entity
13 @Table(name="my_store")
14 public class Store implements Serializable {
15     
16     @Id
17     @GeneratedValue(strategy=GenerationType.IDENTITY)
18     private int id;
19     
20     @Column(name="sname",length=28)
21     private String name;
22     
23     @Column(name="data")
24     private String data;
25 
26     public int getId() {
27         return id;
28     }
29 
30     public void setId(int id) {
31         this.id = id;
32     }
33 
34     public String getName() {
35         return name;
36     }
37 
38     public void setName(String name) {
39         this.name = name;
40     }
41 
42     public String getData() {
43         return data;
44     }
45 
46     public void setData(String data) {
47         this.data = data;
48     }
49 
50     public Store() {
51         super();
52     }
53 
54     public Store(int id, String name, String data) {
55         super();
56         this.id = id;
57         this.name = name;
58         this.data = data;
59     }
60 
61 }

 

hibernate.cfg.xml文件基本一样(只粘一个了): 

<?xml version=‘1.0‘ encoding=‘UTF-8‘?>
<!DOCTYPE hibernate-configuration PUBLIC
          "-//Hibernate/Hibernate Configuration DTD 3.0//EN"
          "http://www.hibernate.org/dtd/hibernate-configuration-3.0.dtd">
<!-- Generated by MyEclipse Hibernate Tools.                   -->
<hibernate-configuration>
    <session-factory>
        <property name="dialect">org.hibernate.dialect.MySQLDialect</property>
        <property name="hibernate.show_sql">true</property>
        <property name="hibernate.format_sql">true</property>
        <property name="hibernate.hbm2ddl.auto">update</property>
    
        <mapping class="com.entities.Store" />
        <!-- <mapping class="com.entities.Test" /> 我是ssh项目中的,俩个项目就这句话不同-->
    </session-factory>

</hibernate-configuration>

最最重要的就是applicationContext.xml文件(吭扭了半天,还不知道对不对,晕晕乎乎的将项目启动后[项目启动,数据表自动生成],数据表就生成了,感觉好神奇...)

下面是ssh的applicationContext.xml文件(因未写struts部分,所以不完整,这个就是能自动生成数据表!请别喷,我还没写,咳咳,具体还在摸索...)

喔,粘的时候想到个事情,说一下:applicationContext.xml文件中第二行开始的那些(xml namespace)是我网上找的[3.0/4.0自己看导的jar包]......这不是写的时候没提示 我也很捉急麽(发现加上xmlns:..../context 貌似就有提示了,具体小弟也在摸索)。

 1 <?xml version="1.0" encoding="UTF-8"?>
 2 <beans xmlns="http://www.springframework.org/schema/beans"
 3     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
 4     xmlns:aop="http://www.springframework.org/schema/aop"
 5     xmlns:context="http://www.springframework.org/schema/context"
 6     xmlns:tx="http://www.springframework.org/schema/tx"
 7     xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
 8         http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-4.0.xsd
 9         http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-4.0.xsd
10         http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-4.0.xsd">
11 
12 
13     <context:annotation-config />
14     <context:component-scan base-package="com" />
15 
16     <!-- 导入资源文件 -->
17     <context:property-placeholder location="classpath:db.properties"/>
18 
19     <!-- 配置 C3P0 数据源 -->
20     <bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource">
21         <property name="user" value="${jdbc.user}"></property>
22         <property name="password" value="${jdbc.password}"></property>
23         <property name="driverClass" value="${jdbc.driverClass}"></property>
24         <property name="jdbcUrl" value="${jdbc.jdbcUrl}"></property>
25 
26         <property name="initialPoolSize" value="${jdbc.initPoolSize}"></property>
27         <property name="maxPoolSize" value="${jdbc.maxPoolSize}"></property>
28     </bean>
29 
30     <!-- 配置 SessionFactory 请注意此处,请注意此处,请注意此处,重要事情说三遍-->
31     <bean id="sessionFactory" class="org.springframework.orm.hibernate4.LocalSessionFactoryBean">
32         <property name="dataSource" ref="dataSource"></property>
33         <property name="configLocation" value="classpath:hibernate.cfg.xml"></property>
34         <property name="mappingLocations" value="classpath:com/entities/*.hbm.xml"></property>
35     </bean>
36 
37     <!-- 配置 Spring 的声明式事务 -->
38     <!-- 1. 配置 hibernate 的事务管理器 -->
39     <bean id="transactionManager" class="org.springframework.orm.hibernate4.HibernateTransactionManager">
40         <property name="sessionFactory" ref="sessionFactory"></property>
41     </bean>
42 <!-- 
43     2. 配置事务属性
44     <tx:advice id="txAdvice" transaction-manager="transactionManager">
45         <tx:attributes>
46             <tx:method name="get*" read-only="true"/>
47             <tx:method name="lastNameIsValid" read-only="true"/>
48             <tx:method name="*"/>
49         </tx:attributes>
50     </tx:advice>
51 
52     3. 配置事务切入点, 再把事务属性和事务切入点关联起来
53     <aop:config>
54         <aop:pointcut expression="execution(* com.service.*.*(..))" id="txPointcut"/>
55         <aop:advisor advice-ref="txAdvice" pointcut-ref="txPointcut"/>
56     </aop:config>
57  -->
58 </beans>

myReply的applicationContext.xml文件

 1 <?xml version="1.0" encoding="UTF-8"?>
 2 <beans xmlns="http://www.springframework.org/schema/beans" 
 3     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"  
 4     xmlns:context="http://www.springframework.org/schema/context"
 5     xmlns:aop="http://www.springframework.org/schema/aop"  
 6     xmlns:tx="http://www.springframework.org/schema/tx"
 7     xsi:schemaLocation="http://www.springframework.org/schema/beans 
 8             http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
 9             http://www.springframework.org/schema/aop 
10             http://www.springframework.org/schema/aop/spring-aop-3.0.xsd 
11             http://www.springframework.org/schema/tx 
12             http://www.springframework.org/schema/tx/spring-tx-3.0.xsd
13             http://www.springframework.org/schema/context 
14             http://www.springframework.org/schema/context/spring-context-3.0.xsd">
15 
16     <context:annotation-config></context:annotation-config>
17     <context:component-scan base-package="com"></context:component-scan>
18     
19     <!-- 导入资源文件 -->
20     <context:property-placeholder location="classpath:db.properties"/>
21     
22     <!-- 配置C3P0数据源 -->
23     <bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource">
24         <property name="user" value="${jdbc.user}"></property>
25         <property name="password" value="${jdbc.password}"></property>
26         <property name="driverClass" value="${jdbc.driver}"></property>
27         <property name="jdbcUrl" value="${jdbc.jdbcUrl}"></property>
28         
29         <property name="initialPoolSize" value="${jdbc.initPoolSize}"></property>
30         <property name="maxPoolSize" value="${jdbc.maxPoolSize}"></property>
31     </bean>
32     <!-- 请注意此处,请注意此处,请注意此处,重要事情说三遍 -->
33     <bean id="sessionFactory" class="org.springframework.orm.hibernate4.LocalSessionFactoryBean">
34         <property name="dataSource" ref="dataSource"></property>
35         <property name="configLocation" value="classpath:hibernate.cfg.xml"></property>
36         <!-- <property name="mappingJarLocations" value="classpath:com/entities/*.hbm.xml"></property> -->
37         
38         <property name="packagesToScan" value="com"></property>
39     </bean>
40     
41     <!-- 配置spring的声明式事务 -->
42     <!-- 1.配置 Hibernate 的事务管理器 -->
43     <bean id="transactionManager" class="org.springframework.orm.hibernate4.HibernateTransactionManager">
44         <property name="sessionFactory" ref="sessionFactory" />
45     </bean>
46     
47     <tx:annotation-driven transaction-manager="transactionManager" />
48 </beans>

咳咳,今天也就搞了这么多,纯粹新手小白啊,具体里面有没有错这个问题我也是表示很尴尬的......

启动项目执行后,数据表是自动生成了...咳咳,我是以这个"标准" 自认为 好像大概可能 是没问题的吧......

这俩天再搞搞前端部分,咳咳,新手还不知道要多少天,看课本看的头晕,还迷糊...

不喜勿喷,小弟也是费了一天的脑细胞才总结出来的,还不知道错不错,就请大神们多担待,

纯粹适合刚接触的新手、和我一样的小白...

 

hibernate中.hbm.xml和注解方式自动生成数据表的简单实例(由新手小白编写,仅适用新手小白)

标签:

原文地址:http://www.cnblogs.com/jiebai/p/4711582.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!