srping配合hibernate实现POJO与数据库表映射的零配置

第一步:配置数据源

<!-- 配置数据源1 -->
    <bean name="dataSource" class="com.alibaba.druid.pool.DruidDataSource"
        init-method="init" destroy-method="close">
        <property name="url" value="${jdbc.url}" />
        <property name="username" value="${jdbc.username}" />
        <property name="password" value="${jdbc.password}" />
        <property name="initialSize" value="${pool.initialSize}" />
        <!-- 连接池最大使用连接数量 -->
        <property name="maxActive" value="${pool.maxActive}" />
        <!-- 连接池最大空闲
        <property name="maxIdle" value="${pool.maxIdle}" />
         -->
        <!-- 连接池最小空闲 -->
        <property name="minIdle" value="${pool.minIdle}" />
        <!-- 获取连接最大等待时间 -->
        <property name="maxWait" value="${pool.maxWait}" />
        <!-- <property name="poolPreparedStatements" value="true" /> <property
            name="maxPoolPreparedStatementPerConnectionSize" value="33" /> -->
        <property name="validationQuery" value="${validationQuery.sqlserver}" />
        <property name="testOnBorrow" value="${pool.testOnBorrow}"/>
        <property name="testOnReturn" value="${pool.testOnReturn}"/>
        <property name="testWhileIdle" value="${pool.testWhileIdle}"/>

<!-- 配置间隔多久才进行一次检测,检测需要关闭的空闲连接,单位是毫秒 -->
        <property name="timeBetweenEvictionRunsMillis" value="${pool.timeBetweenEvictionRunsMillis}" />
        <!-- 配置一个连接在池中最小生存的时间,单位是毫秒 -->
        <property name="minEvictableIdleTimeMillis" value="${pool.minEvictableIdleTimeMillis}" />

<!-- 打开removeAbandoned功能 -->
        <property name="removeAbandoned" value="${pool.removeAbandoned}" />
        <!-- 1800秒,也就是30分钟 -->
        <property name="removeAbandonedTimeout" value="${pool.removeAbandonedTimeout}" />
        <!-- 关闭abanded连接时输出错误日志 -->
        <property name="logAbandoned" value="${pool.logAbandoned}" />
        <!-- 开启Druid的监控统计功能 -->
        <property name="filters" value="${pool.filters}" />
        <!--<property name="filters" value="${pool.filters}" />
        <property name="proxyFilters">
            <list>
                <ref bean="log-filter"/>
                <ref bean="wall-filter"/>
                <ref bean="stat-filter"/>
            </list>
        </property> -->
        <!--<property name="filters" value="mergeStat" /> -->
        <!-- Oracle连接是获取字段注释 -->
        <property name="connectProperties">
            <props>
                <prop key="remarksReporting">true</prop>
            </props>
        </property>
    </bean>

第二步:配置sessionFactroy

<bean id="sessionFactory" class="org.springframework.orm.hibernate3.annotation.AnnotationSessionFactoryBean">
        <property name="dataSource" ref="dataSource" />
        <property name="entityInterceptor" ref="entityInterceptor" />
        <property name="namingStrategy" ref="databaseNamingStrategy" />
        <property name="hibernateProperties">
            <value>
                hibernate.dialect=${hibernate.dialect}
                hibernate.hbm2ddl.auto=${hibernate.hbm2ddl.auto}
                hibernate.show_sql=${hibernate.show_sql}
                hibernate.format_sql=${hibernate.format_sql}
                hibernate.cache.use_second_level_cache=${hibernate.cache.use_second_level_cache}
                hibernate.cache.provider_class=${hibernate.cache.provider_class}
                hibernate.cache.use_query_cache=${hibernate.cache.use_query_cache}
                hibernate.jdbc.fetch_size=${hibernate.jdbc.fetch_size}
                hibernate.jdbc.batch_size=${hibernate.jdbc.batch_size}
            </value>
        </property>
        <property name="packagesToScan" value="com.ssbank.entity"/>
    </bean>

 <bean id="databaseNamingStrategy" class="com.ssbank.common.DatabaseNamingStrategy">
        <property name="tablePrefix" value="${namingStrategy.tablePrefix}" />
        <property name="isAddUnderscores" value="${namingStrategy.isAddUnderscores}" />
        <property name="maxLength" value="${namingStrategy.maxLength}" />
    </bean>

注意: hibernate.hbm2ddl.auto=true时,项目启动会扫描com.ssbank.entity包下的所有实体bean,配合了hibernate提供的命名策略databaseNamingStrategy,在数据库生成相应的表。

时间: 2024-12-15 14:46:01

srping配合hibernate实现POJO与数据库表映射的零配置的相关文章

Hibernate&lt;二&gt; 映射基础 单个持久类与单个数据库表映射

一.单个持久化类与单个数据库表映射基础 1.在Hibernate应用中,持久化类的访问方法有两个调用者: ①.Java应用程序:调用User对象的getXXX方法,读取User信息.调用setXXX方法,把用户输入的user信息写入到user对象中. ②.Hibernate:调用User对象的getXXX方法,读取user信息,把它保存到数据库调用user对象的setXXX方法,把从数据库中读出的user信息写入到user对象中.Hibernate的session在执行save().update

MySQL开启federated引擎实现数据库表映射

1.查看federated引擎是否开启 点击进入Navicat并点击键盘上F6,出现命令行界面 ,输入指令:show engines; 2.开启federated引擎 Windows系统 : 在my.ini中加入federated 3.建立映射表 在服务器A上有MySQL数据库test_a,在服务器B上有MySQL数据库test_b.现在需要将test_a库中的user表数据映射到数据库test_b中.此时需要在数据库test_b中建立表user,注意ENGINE和CONNECTION. CRE

hibernate代码生成pojo对应的表

1.创建一个Java工程然后进行hibernate的环境搭配 2.在创建一个com.test包,在包中创建一个类 package test; import org.hibernate.cfg.Configuration; import org.hibernate.tool.hbm2ddl.SchemaExport; public class CreateTable { public static void main(String[] args) { Configuration configura

Hibernate、Mybatis 通过数据库表反向生成java类和配置

一.通过MyEclipse生成Hibernate类文件和hbm.xml文件,或者annotation文件    (转载孙宇老师的文章) 二.Mybatis生成实体类和配置文件: myeclipse下生成实体类和map配置文件: 1.新建一个maven工程 2.修改pom.xml文件 <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-

hibernate 自动生成数据库表

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

Hibernate自动生成数据库表

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

Hibernate(二)——POJO对象的操作

POJO对象其实就是我们的实体,这篇博客总结一下框架对POJO对象对应数据库主键的生成策略,和一些对POJO对象的简单增删改查的操作.  一,Hibernate框架中主键的生成策略有三种方式: 1,数据库负责生成主键(代理主键)  a,native:表示由设置的方言决定采用什么数据库生成主键方式,例如:在MySQL中会采用自增长的方式,主键字段必须都是整形类型:在Oracle数据库中,会采用序列的增长方式.  b,sequence:表示采用数据库的序列生成主键,适用于Oracle,DB2数据库中

Hibernate多对一,多对多的表映射关系

版权声明:本文为博主原创文章,未经博主允许不得转载. 本文旨在介绍hibernate的实体与数据库表的各种关系映射 1.多对一/一对多关系映射 User-------用户表 Department -------------部门表 Contact---------------组件部分,(地址类)) 下面开始各实体代码: User.java实体类 package com.huangchao.model; import java.io.Serializable; import java.util.Da

Hibernate之配置文件以及对象关系映射文件了解

声明:CSDN不知道怎么了,有时候就是发表不了博文.本来就是一天一篇博文,最近搞的我很郁闷.有时候一天,有时候两三天都不能发.这就属于不可抗力.没办法的,啥时能发,我就发了. 一.学习案例:关于hibernate的配置文件以及对象关系映射文件的了解. 二.案例分析: a)hibernate配置文件(hibernate.cfg.xml) 1.hibernate.dialect:数据库使用的SQL方言 2.hiebrnate.connection.driver_class:数据库的驱动程序 3.hi