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

绝逼新手小白,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>

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

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

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

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

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

时间: 2024-10-06 20:29:03

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

Hibernate映射文件配置(hbm.xml和注解方式)

一:通过*.hbm.xml配置实体的实现方式 mappingResources用于指定少量的hibernate配置文件像这样 Xml代码 <property name="mappingResources"> <list> <value>WEB-INF/conf/hibernate/cat.hbm.</value> <value>WEB-INF/conf/hibernate/dog.hbm.</value> ....

Jquery通过Ajax方式来提交Form表单简单实例

因工作中有时会用到ajax,但一般也都写成函数的形式了,再写底层时还要去查资料,这里小记一下ajax的小实例以后不用经常去查了 $.ajax({ type:"POST", url: "要提交的地址", data:{"para":1,"para1":2,...}, dataType:"json",/*要提交的类型*/ success:function(val){/*返回值可以是数组,val['name']*/

hibernate 自动生成数据库表

只要在hibernate.cfg.xml添加这句话,就可以自动生成数据表 <property name="hibernate.hbm2ddl.auto">update</property> update:表示自动根据model对象来更新表结构,启动hibernate时会自动检查数据库,如果缺少表,则自动建表:如果表里缺少列,则自动添加列. 还有其他的参数: create:启动hibernate时,自动删除原来的表,新建所有的表,所以每次启动后的以前数据都会丢失.

Hibernate —— Entity.hbm.xml

一.简述 1.对象关系映射文件,用于映射实体类和关系数据库数据表之间的一个 xml 文件. 2.通过 Entity.hbm.xml 映射文件,Hibernate 可以理解持久化类和数据表之间的对应关系,也可以理解持久化类属性与数据表列之间的对应关系. 3.映射主键.映射关联关系. 二.各个节点 <hibernate-mapping> <class> <id></id> <property name=""></proper

XML(php中获取xml文件的方式/ajax获取xml格式的响应数据的方式)

1.XML 格式规范: ① 必须有一个根元素 ② 不可有空格.不可以数字或.开头.大小写敏感 ③ 不可交叉嵌套 ④ 属性双引号(浏览器自动修正成双引号了) ⑤ 特殊符号要使用实体 ⑥ 注释和HTML一样 虽然可以描述和传输复杂数据,但是其解析过于复杂并且体积较大,所以实现开发已经很少使用了.   例: <?xml version="1.0" encoding="UTF-8"?> <root> <arrayList> <arr

hibernate中多对多的注解配置

hibernate多对多的注解配置中的自动生成中间表的配置: @Entity@Table(name="test_student")public class Students { @Id @SequenceGenerator(name="seqStudents",sequenceName="seq_test_student") @GeneratedValue(generator="seqStudents") private In

Hibernate中@Embedded和@Embeddable注解

在使用实体类生成对应的数据库表时,很多的时候都会遇到这种情况:在一个实体类中引用另外的实体类,一般遇上这种情况,我们使用@OneToOne.@OneToMany.@ManyToOne.@ManyToMany这4个注解比较多,但是好奇害死猫,除了这四个有没有别的使用情况,尤其是一个实体类要在多个不同的实体类中进行使用,而本身又不需要独立生成一个数据库表,这就是需要@Embedded.@Embeddable的时候了,下面分成4类来说明在一个实体类中引用另外的实体类的情况,具体的数据库环境是MySQL

Hibernate自动生成数据库表

在hibernate.cfg.xml中添加: 引用 <properties> <property name="hibernate.hbm2ddl.auto" value="create" /> </properties> value的值可选项如下: 引用 validate  加载hibernate时,验证创建数据库表结构 create  每次加载hibernate,重新创建数据库表结构. create-drop  加载hibern

使用Java注解开发自动生成SQL

使用注解开发的好处就是减少配置文件的使用.在实际过程中,随着项目越来越复杂,功能越来越多,会产生非常多的配置文件.但是,当配置文件过多,实际维护过程中产生的问题就不容易定位,这样就会徒劳的增加工作量.而使用注解开发,可以减少配置文件的使用,方便代码的维护,同时,在开发速度上也有大幅提升,因此,学会使用注解开发,是有必要掌握的一项技能. 下面为各位展示下使用注解开发自动生成SQL语句的过程. 首先先定义一个实体类,用于和数据库字段进行映射,为了方便,数据库字段名称和实体类变量名称保持一致. pac