spring中配置MySql数据源,怎样配置数据库信息

spring中配置MySql数据源,怎样配置数据库信息,第1张

spring中配置数据源的几种常见方式:

#mysql 数据库配置(jdbc.properties)

jdbc.driverClassName=com.mysql.jdbc.Driver

jdbc.url=jdbc:mysql://localhost:3306/databaseName?useUnicode=true&characterEncoding=UTF-8

jdbc.username=root

jdbc.password=root

1.使用spring自带的数据源org.springframework.jdbc.datasource.DriverManagerDataSource;

方式一:

<bean id="propertyConfigurer" class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer" p:location="/WEB-INF/jdbc.properties" />

<bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource"

p:driverClassName="${jdbc.driverClassName}"

p:url="${jdbc.url}"

p:username="${jdbc.username}"

p:password="${jdbc.password}" />

p标记需要:xmlns:p="http://www.springframework.org/schema/p"

DriverManagerDataSource源码实现:

public class DriverManagerDataSource extends AbstractDriverBasedDataSource {

public DriverManagerDataSource() {

}

public DriverManagerDataSource(String url) {

}

public DriverManagerDataSource(String url, String username, String password) {

}

public DriverManagerDataSource(String url, Properties conProps) {

}

public void setDriverClassName(String driverClassName) {

}

protected Connection getConnectionFromDriver(Properties props) throws SQLException {

}

protected Connection getConnectionFromDriverManager(String url, Properties props) throws SQLException {

}

}

在ehcache.xml文件中配置查询缓存参数,ehcache.xml文件配置如下:

<ehcache>

   

    <!-- diskStore元素,配置一个目录,这个目录用来存放数据,

    也就是说,如果EhCache需要把数据写入磁盘,将会写到这个目录下 -->

    <diskStore path="java.io.tmpdir"/>

    <defaultCache

        maxElementsInMemory="10000"

        eternal="false"

        overflowToDisk="true"

        timeToIdleSeconds="120"

        timeToLiveSeconds="120"

        diskPersistent="false"

        diskExpiryThreadIntervalSeconds="120"/>

        

        <cache name="ehcacheName"

        maxElementsInMemory="3000"

        eternal="false"

        timeToIdleSeconds="3600"

        timeToLiveSeconds="36000"

        overflowToDisk="true"

        />

</ehcache>

2. spring的配置

第一步:给指定方法配置缓存/src/main/resources/applicationContext-resources.xml

<ehcache:proxy id="userGroupServiceProxy" refId="userGroupService" >

   <ehcache:caching cacheName="cash15Min"  methodName="selectuserGroupWithDetailByMemberId" />

   <ehcache:caching cacheName="cash15Min"  methodName="selectuserGroupWithDetailByGroupId" />

   <ehcache:caching cacheName="cash15Min"  methodName="selectuserGroupById" />

</ehcache:proxy>

配置参数的含义如下:

id:唯一标识符

refId:需要配置缓存的service或者controller

cacheName:缓存名称

methodName:需要缓存的方法,这个方法必须是shoppingHomeService中的方法

第二步:在控制器中注入依赖的缓存userGroupServiceProxy /src/main/webapp/WEB-INF/dispatcher-servlet.xml

<bean id="PFController" class="com.java.mall.controller.PFController">

        <property name="userService" ref="userService"></property>

        <property name="userGroupService" ref="userGroupServiceProxy"></property>

</bean>

同时需要在实体类中注入依赖,提供setter方法,

private userGroupService userGroupService

public void setuserGroupService(userGroupService userGroupService) {

    this.userGroupService = userGroupService

事务就是对一系列的数据库 *** 作(比如插入多条数据)进行统一的提交或回滚 *** 作,如果插入成功,那么一起成功,如果中间有一条出现异常,那么回滚之前的所有 *** 作。

这样可以防止出现脏数据,防止数据库数据出现问题。

开发中为了避免这种情况一般都会进行事务管理。

在JDBC中是通过Connection对象进行事务管理的,默认是自动提交事务,可以手工将自动提交关闭,通过commit方法进行提交,rollback方法进行回滚,如果不提交,则数据不会真正的插入到数据库中。

Hibernate中是通过Transaction进行事务管理,处理方法与JDBC中类似。

Spring中也有自己的事务管理机制,一般是使用TransactionMananger进行管理,可以通过Spring的注入来完成此功能。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/9790635.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-02
下一篇 2023-05-02

发表评论

登录后才能评论

评论列表(0条)

保存