Spring——DataSource

DataSource

(1)配置datasource的方式1:使用BasicDataSource类

例如:在Spring的配置文件中,配置如下片段:

<bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource"

destroy-method="close">

<property name="driverClassName" value="com.mysql.jdbc.Driver" />

<property name="url" value="jdbc:mysql://localhost:3306/spring" />

<property name="username" value="root" />

<property name="password" value="root" />

</bean>

(2)将连接数据库所需的配置信息单独写在配置文件中,然后从配置文件中读取。

以下是将相关的配置信息配置在classpath:jdbc.properties文件中,配置文件如下classpath:jdbc.properties的配置如下:

jdbc.driverClassName=com.mysql.jdbc.Driver

jdbc.url=jdbc:mysql://localhost:3306/spring

jdbc.username=root

jdbc.password=root

<bean

class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">

<property name="locations">

<value>classpath:jdbc.properties</value>

</property>

</bean>

<bean id="dataSource" destroy-method="close"

class="org.apache.commons.dbcp.BasicDataSource">

<property name="driverClassName"

value="${jdbc.driverClassName}" />

<property name="url" value="${jdbc.url}" />

<property name="username" value="${jdbc.username}" />

<property name="password" value="${jdbc.password}" />

</bean>

(3)Spring与Hibernate的整合

通过如下注入一个sessionFactory

<bean id="sessionFactory"

class="org.springframework.orm.hibernate3.annotation.AnnotationSessionFactoryBean">

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

<property name="annotatedClasses">

<list>

<value>com.zgy.model.User</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>

(4)UserService.java

package com.zgy.service;

import javax.annotation.Resource;

import org.springframework.stereotype.Component;

import com.zgy.dao.UserDAO;

import com.zgy.model.User;

@Component("userService")

public class UserService {

private UserDAO userDAO;

public void init() {

System.out.println("init");

}

public void add(User user) {

userDAO.save(user);

}

public UserDAO getUserDAO() {

return userDAO;

}

@Resource(name="u")

public void setUserDAO( UserDAO userDAO) {

this.userDAO = userDAO;

}

public void destroy() {

System.out.println("destroy");

}

}

(5)UserDAOImpl.java

package com.zgy.impl;

import javax.annotation.Resource;

import org.hibernate.Session;

import org.hibernate.SessionFactory;

import org.springframework.stereotype.Component;

import com.zgy.dao.UserDAO;

import com.zgy.model.User;

@Component("u")

public class UserDAOImpl implements UserDAO {

private SessionFactory sessionFactory;

public SessionFactory getSessionFactory() {

return sessionFactory;

}

@Resource

public void setSessionFactory(SessionFactory sessionFactory) {

this.sessionFactory = sessionFactory;

}

public void save(User user) {

Session s = sessionFactory.openSession();

s.beginTransaction();

s.save(user);

s.getTransaction().commit();

System.out.println("user saved!");

}

}

(6)测试:

package com.zgy.service;

import org.junit.Test;

import org.springframework.context.support.ClassPathXmlApplicationContext;

import com.zgy.model.User;

public class UserServiceTest {

@Test

public void testAdd() throws Exception {

ClassPathXmlApplicationContext ctx = new ClassPathXmlApplicationContext("beans.xml");

UserService service = (UserService)ctx.getBean("userService");

User u = new User();

u.setId(1);

u.setName("zhangsan");

service.add(u);

ctx.destroy();

}

}

(7)结果:

Hibernate: insert into User (name, id) values (?, ?)

user saved!

时间: 2024-08-01 16:37:44

Spring——DataSource的相关文章

【瞎折腾系列】Spring DataSource 【结论:没弄好】

本来想弄个多数据源,但是技术不高,嗯,宣布失败... 嗯,结论是失败了... 求高手给我讲讲这些东西啊,感激不尽啊~~~ 以下的折腾也是基于之前配置的Spring Mybatis框架. 想弄多数据源,首先想到的就是从datasource入手. spring-database.xml改成了两个datasource: <bean id="dataSourceA" class="com.alibaba.druid.pool.DruidDataSource">

Spring Boot 使用 spring.datasource.data 的时候找不到数据文件

对需要导入使用 SQL 文件,已经放置到了 resources\data-trans.sql 下面了. 但是在配置的时候配置: spring.datasource.data=data-trans.sql 显示这个数据库 SQL 文件找不到. 错误的信息为: Property spring.datasource.data with value 'ServletContext resource [/data-trans.sql]' is invalid: The specified resource

Spring datasource

applicationContext.xml 1 <?xml version="1.0" encoding="UTF-8"?> 2 <beans xmlns="http://www.springframework.org/schema/beans" xmlns:context="http://www.springframework.org/schema/context" xmlns:xsi="htt

spring datasource和mybatis的datasource来源在哪里

配置一个数据源     spring在第三方依赖包中包含了两个数据源的实现类包,其一是Apache的DBCP,其二是 C3P0.可以在Spring配置文件中利用这两者中任何一个配置数据源.  配置一个数据源     spring在第三方依赖包中包含了两个数据源的实现类包,其一是Apache的DBCP,其二是 C3P0.可以在Spring配置文件中利用这两者中任何一个配置数据源. 配置一个数据源     spring在第三方依赖包中包含了两个数据源的实现类包,其一是Apache的DBCP,其二是

Spring Datasource配置

Spring在第三方依赖包中包含了两个数据源的实现类包,其一是Apache的DBCP,其二是 C3P0.可以在Spring配置文件中利用这两者中任何一个配置数据源. DBCP数据源 DBCP类包位于 /lib/jakarta-commons/commons-dbcp.jar,DBCP是一个依赖 Jakarta commons-pool对象池机制的数据库连接池,所以在类路径下还必须包括/lib/jakarta- commons/commons-pool.jar.下面是使用DBCP配置MySql数据

spring datasource 使用 proxool

XmlWebApplicationContext使用的xml配置如下: <?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:mvc="http://www.springframework.org/schema/mvc" xmlns:p="http

dataSource踩过的坑-spring dataSource配置

1.在前面restTemplate的坑过后,问题又来了,因为数据量并发上去,数据库压力很大.cpu相对于之前的压力一直飙升不下. 在Linux服务器中定位问题 ps -ef | grep 服务名 查看pid 查看整个JVM内存状态 jmap -heap [pid] 要注意的是在使用CMS GC 情况下,jmap -heap的执行有可能会导致JAVA 进程挂起 查看JVM堆中对象详细占用情况 jmap -histo [pid] 导出整个JVM 中内存信息 jmap -dump:format=b,f

[转] Spring Boot配置多个DataSource

[From]  https://www.liaoxuefeng.com/article/001484212576147b1f07dc0ab9147a1a97662a0bd270c20000 Spring Boot配置多个DataSource 廖雪峰 / 编程 / 1-13 10:11 / 阅读: 14041 使用Spring Boot时,默认情况下,配置DataSource非常容易.Spring Boot会自动为我们配置好一个DataSource. 如果在application.yml中指定了s

Spring Boot(3):加载DataSource过程的源码分析及yml中DataSource的配置

Spring Boot实现了自动加载DataSource及相关配置.当然,使用时加上@EnableAutoConfiguration注解是必须的.下面就是对这一部分的源码分析. (1)Spring Boot启动后会调用org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration.下面是部分源码. 1 @Configuration 2 @ConditionalOnClass({ DataSource.class, E