在SpringContext.xml中配置各个连接池驱动

在SpringContext.xml中配置各个连接池驱动,第1张

在SpringContext.xml中配置各个连接池驱动

使用开源连接池

jdbc


    
    
    
    

dbcp


    
    
    
    

c3p0


	 
	 
	 
	 
	 

druid


     
     
     
     

加载驱动   Class.forName("com.mysql.jdbc.Driver");或Class.forName("com.mysql.cj.jdbc.Driver");

在spring中可直接在选定的连接池中配置驱动属性,无需手动加载

新的驱动类是' com.mysql.cj.jdbc.Driver', mysql8.0以上版本都是用新驱动,需要在url中加上时区参数  serverTimezone=GMT%2B8 东八区,才不会报错time zone

【注】c3p0连接池中的驱动属性名跟其他连接池不同,属性名是driverClass,配置时要注意


String url="jdbc:mysql://localhost:3306/spring?useSSL=false&serverTimezone=UTC";

MySQL:jdbc:mysql://ip地址:数据库服务器端口号/数据库名?参数=参数值

                jdbc:mysql://ip_address:database_port/databaseName?param=paramVal

【注】如果是本地地址且端口号是默认3306(mysql),则可忽略不写

【注】多个url参数配置在xml中:要用 & 来分隔开来

e.g  jdbc:mysql:///spring?characterEncoding=utf-8&serverTimezone=GMT%2B8


选好连接池后,还要配置jdbc模板


    
    

 通过源码知道JdbcTemplate中是通过  结构化参数public JdbcTemplate(DataSource dataSource) 或 其父类的 setDataSource(dataSource) 方法 插入数据源的,所以在spring配置中就可以通过    构造方法属性注入 ,或是  引入类型属性注入


 合并



        
        
        	
        	
        
        
        
        	
        	
        	
        	
        
        
        
        	
        	
        	
        	
        
        
        
	        
	        
	        
	        
	        
	    
        
        
        	
        	
        	
        	
        

log4j 测试

spring单元测试

import javax.annotation.Resource;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.jdbc.core.JdbcTemplate;
import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration("classpath:applicationContext.xml")
public class SpringJdbcTest {
	@Resource(name="jdbcTemplate")
	private JdbcTemplate jdbcTemplate;
	@Test
	public void test() {
		this.jdbcTemplate.update("insert into account values(null,?,?)", "druid1",2000d);
	}
}

【注】上面的测试用例用到了spring-test-x.x.x.jar,如不用这个jar包,可通过下面测试用例

import org.junit.Test;
import org.springframework.context.support.ClassPathXmlApplicationContext;
import org.springframework.jdbc.core.JdbcTemplate;
import org.springframework.jdbc.datasource.DriverManagerDataSource;
public class SpringJdbcTest {
	@Test
	public void test1() {
		ClassPathXmlApplicationContext applicationContext = new ClassPathXmlApplicationContext("applicationContext.xml");
		JdbcTemplate jdbcTemplete = (JdbcTemplate) applicationContext.getBean("jdbcTemplate");
		jdbcTemplete.update("insert into account values(null,?,?)", "it",100d);
	}
}

使用属性文件配置数据库连接信息

【方法一】通过来读取属性文件

在项目src源文件夹下配置jdbc.properties文件

driverClassName=com.mysql.cj.jdbc.Driver
url=jdbc:mysql:///spring?characterEncoding=utf-8&serverTimezone=GMT%2B8
username=root
password=root

再在applicationContext.xml中配置


     


     
     
     
     


     
     

【方法二】通过context标签

要先在applicationContext.xml的beans标签中添加context约束,就可使用context标签

             xsi:schemaLocation=" http://www.springframework.org/schema/context
                http://www.springframework.org/schema/context/spring-context.xsd">



        
        
        
        
        	
        	
        	
        	
        
        
        	
        	
        

在项目src源文件夹下配置jdbc2.properties文件

jdbc.driverClassName=com.mysql.cj.jdbc.Driver
jdbc.url=jdbc:mysql:///spring?characterEncoding=utf-8&serverTimezone=GMT%2B8
jdbc.username=root
jdbc.password=root

【注】 用context标签读取properties文件,取出的数据key值 不能和 属性注入的name值一样,所以在jdbc2.properties中添加了前缀

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

原文地址: https://outofmemory.cn/zaji/5709687.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-17
下一篇 2022-12-17

发表评论

登录后才能评论

评论列表(0条)

保存