[转] spring中配置数据源

本文介绍Spring框架中的数据访问配置,包括使用DAO模式和模板方法处理数据库操作,详细讲解了三种数据源配置方式,并演示如何配置JDBC和Hibernate支持。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 1、Spring的数据访问设计思想(DAO、模板方法)
            DataIntegrityViolationException:    insert或update数据时违反了完整性,如违反了唯一性限制
            DataAccessResourceFailureException:数据访问资源失败,如不能连接数据库
             InvalidDataAccessResourceUsageException:使用错误的SQL语法访问数据库
    2、数据源配置:
        方式一:Spring内置实现 DriverManagerDataSource
        
                <bean id ="dataSource" class ="org.springframework.jdbc.datasource.DriverManagerDataSource">
                       <property name="driverClassName">
                       <value>com.mysql.jdbc.Driver</value>
                       </property>
                       <property name="url">
                       <value>jdbc:mysql://localhost:3306/hibdb</value>
                       </property>
                       <property name="username">
                       <value>root</value>
                       </property>
                       <property name="password">
                       <value>windows</value>
                       </property>
                       </bean>
        方式二:DBCP提供的BasicDataSource
            <bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource">
                <property name="driverClassName">
                    <value>com.mysql.jdbc.Driver</value>
                </property>
                <property name="url">
                    <value>jdbc:mysql://localhost:3306/hibdb</value>
                </property>
                <property name="username">
                    <value>root</value>
                </property>
                <property name="password">
                    <value>windows</value>
                </property>
            </bean>
        方式三:JNDI数据源 (在讲解SSH整合时再说明)
            JNDI数据源:(mysql5,tomcat5.5)
               
               step1:
                   在server.xml中:
                   <Resource name="jdbc/mydatasource" auth="Container" description="DB Connection" 
                type="javax.sql.DataSource" username="root" password="windows" 
                driverClassName="com.mysql.jdbc.Driver" 
                url="jdbc:mysql://localhost:3306/tarena" maxActive="5" />
            step2:
                在context.xml中(conf/context.xml):
                <ResourceLink   name="jdbc/mydatasource"   global="jdbc/mydatasource"   type="javax.sql.DataSourcer"/> 
            step3:
                在beans-config.xml:
                <bean id="dataSource" class="org.springframework.jndi.JndiObjectFactoryBean">
                    <property name="jndiName">
                      <value>java:comp/env/jdbc/mydatasource</value>
                    </property>
              </bean>
              
    3、JDBC支持:
            step1:  配置数据源
            step2: 配置JdbcTemplate
            <bean id="jdbcTemplate"
                class="org.springframework.jdbc.core.JdbcTemplate">
                <property name="dataSource">
                    <ref bean="dataSource" />
                </property>
            </bean>       
            step3:配置DAO
            <bean id="orderDao" class="lab5.OrderDAOImpl">
                <property name="jt"><ref bean="jdbcTemplate"/></property>
            </bean>
            注意:    查询时,使用RowMapper
                      
    4、hibernate支持:
            step1:    配置数据源
            step2:    配置sessionfactory
                <bean id="mySessionFactory"
                    class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
                    <property name="dataSource">
                        <ref bean="dataSource" />
                    </property>
                    <property name="mappingResources">
                        <list>
                            <value>lab6/Order.hbm.xml</value>
                        </list>
                    </property>
                    <property name="hibernateProperties">
                        <props>
                            <prop key="hibernate.dialect">
                                org.hibernate.dialect.MySQLDialect
                            </prop>
                            <prop key="hibernate.show_sql">true</prop>
                        </props>
                    </property>
                </bean>
                注意:配置映射文件位置的另一种用法
                <property name="mappingDirectoryLocations">
                    <list>
                        <value>classpath:/bo</value>
                    </list>
                </property>
                或者
                直接使用hibernate.cfg.xml,此时,配置内容如下:
                <property name="configLocation">
                    <value>exec/t2/hibernate.cfg.xml</value>
                </property>
                注意,此时,因为由hibernate来管理事务,所以,必须在spring配置文件中,配置事务后才能使用,否                      则,结果不会真正写入数据库!
                可以参照工程spring下的t2
                step3:    配置DAO
               <bean id="orderDao" class="lab6.OrderDAOHibernateImpl">
                <property name="sessionFactory">
                    <ref bean="mySessionFactory" />
                </property>
               </bean>
                注意:以上配置是要求dao 继承HibernateDaoSupport

本文来自优快云博客,转http://blog.youkuaiyun.com/sdandan/archive/2009/02/17/3901507.aspx

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值