zoukankan      html  css  js  c++  java
  • ssh整合思想 Spring与Hibernate的整合ssh整合相关JAR包下载 .MySQLDialect方言解决无法服务器启动自动update创建表问题

    除之前的Spring相关包,还有structs2包外,还需要Hibernate的相关包

    首先,Spring整合其他持久化层框架的JAR包 spring-orm-4.2.4.RELEASE.jar  (整合Hibernate的)

    这个JAR包在Spring框架中包含

    Hibernate 需要的JAR包

    slf4j-api-1.7.7.jar

    slf4j-log4j12-1.7.1.jar

    jboss-logging-3.3.0.Final.jar

    jandex-2.0.3.Final.jar

    hibernate-entitymanager-4.2.3.final.jar

    hibernate-jpa-2.1-api-1.0.0.Final.jar

    hibernate-core-5.2.12.Final.jar

    hibernate-commons-annotations-5.0.1.Final.jar

    geronimo-jta_1.0.1b_spec-1.1.1.jar

    antlr-2.7.7.jar


    上面Hibernate11个包

    以及前边的JAR包共计43个

    下载地址如下:

    链接: https://pan.baidu.com/s/1mizikiO 密码: cigf


    java.lang.ClassNotFoundException: org.dom4j.io.STAXEventReader 异常

    缺少了dom4j-1.6.1.jar 包

    在Hibernate官方包中

    包含dom4j-1.6.1.jar 的官方Hibernate整包下载地址

    链接: https://pan.baidu.com/s/1c2Jbmnu 密码: 3sef


     

    需要JAR包 classmate-1.3.0.jar

    在Hibernate官方包中


    注意:Hibernate的核心配置文件hibernate.cfg.xml 要在src文件夹下,不能在其下的某个包中,否则会出现

    最后,Hibernate测试成功效果

    不用数据库创建表,通过实体类映射文件User.hbm.xml,它的位置随意。把User类映射到数据库中

    映射文件代码:

    <?xml version="1.0" encoding='UTF-8'?>     
    <!DOCTYPE hibernate-mapping PUBLIC 
        "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
        "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
        <!-- 实体类映射文件 -->
    <hibernate-mapping>
    
        <class name="com.swift.entity.User" table="hibernate_user">
            <!-- 主键 -->
            <id name="uid" column="uid">
                <generator class="native"/>
            </id>
            <!-- 其他属性 -->
            <property name="username" column="username"/>
            <property name="address" column="address"/>
        </class>
        
    </hibernate-mapping>

    实体类代码如下:

    package com.swift.entity;
    
    public class User {
        
        private Integer uid;
        private String username;
        private String address;
        public String getUsername() {
            return username;
        }
        public void setUsername(String username) {
            this.username = username;
        }
        public String getAddress() {
            return address;
        }
        public void setAddress(String address) {
            this.address = address;
        }
        public Integer getUid() {
            return uid;
        }
        public void setUid(Integer uid) {
            this.uid = uid;
        }
        
    }

    这里要注意uid所使用的整型类型不是int,而是Integer

    Hibernate核心配置文件,要在src目录下,一定注意位置,在其中指定上边的映射文件,同时连接数据库,并自动生成表。

    核心配置文件hibernate.cfg.xml 代码如下:

    <?xml version="1.0" encoding='UTF-8'?>
    <!DOCTYPE hibernate-configuration PUBLIC   
              "-//Hibernate/Hibernate Configuration DTD 3.0//EN"   
              "http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">
    <hibernate-configuration>
        <session-factory>
            <property name="hibernate.connection.driver_class">com.mysql.jdbc.Driver</property>
            <property name="hibernate.connection.url">jdbc:mysql://localhost:3306/lastday</property>
            <property name="hibernate.connection.username">root</property>
            <property name="hibernate.connection.password">root</property>
            
            
            <property name="hibernate.show_sql">true</property>
    
            <!-- create: 先删表,再建表。 create-drop: 启动时建表,退出前删表。 update: 如果表结构不一致,就创建或更新。 
                validate: 启动时验证表结构,如果不致就抛异常。 -->
            <property name="hibernate.hbm2ddl.auto">update</property>
            <property name="hibernate.dialect">org.hibernate.dialect.MySQLDialect</property>
    
            <!--指定映射文件,可映射多个映射文件 -->
            <mapping resource="com/swift/entity/User.hbm.xml"></mapping>
        </session-factory>
    </hibernate-configuration>  

    加载核心配置文件的测试类HibernateUtil 代码如下:

    package com.swift.entity;
    
    import org.hibernate.Session;
    import org.hibernate.SessionFactory;
    import org.hibernate.Transaction;
    import org.hibernate.cfg.Configuration;
    
    public class HibernateUtil {
        static SessionFactory sessionFactory=null;
        static Configuration cfg=null;
        
        static{
            //加载核心配置文件
            cfg = new Configuration();
            cfg.configure();
            sessionFactory = cfg.buildSessionFactory();
        }
        
        public static SessionFactory getSessionFactory(){
            return sessionFactory;
        }
        public static Session getSession(){
            return sessionFactory.getCurrentSession();
        }
        public static void main(String[] args) {
            
        }
    }

    数据库中查看效果

    是空的,数据库中什么都没有,没有自动建成的表。

    仔细检查都没有错了,排除了映射混乱问题,就是不出表,SQL语句都成功打出了,也没有任何异常。

    最后参考了这个兄弟的解释

    <property name="hibernate.dialect">org.hibernate.dialect.MySQL57Dialect</property>

    .MySQLDialect添加了第57区的方言,就搞定了。

  • 相关阅读:
    (4.3)基于机器学习(分类)的酒店评论倾向性分析
    (4.2)基于LingPipe的文本基本极性分析【demo】
    (4.1)LingPipe在Eclipse中的运行
    微信获取openid
    微信token
    js跳转整理(简记)
    阅读有感
    normalize.css v2.1.2 翻译
    来,让我们谈一谈 Normalize.css
    jquery ajax事件执行顺序
  • 原文地址:https://www.cnblogs.com/qingyundian/p/8158954.html
Copyright © 2011-2022 走看看