问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

spring 中怎么配置数据源的

发布网友 发布时间:2022-05-08 00:07

我来回答

2个回答

懂视网 时间:2022-05-08 04:28

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;

方式一:



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 { 
 }
}

方式二:



   

  

  

  

 

2.DBCP数据源;

DBCP(DataBase connection pool)。是 apache 上的一个 java 连接池项目,也是 tomcat 使用的连接池组件。单独使用dbcp需要2个包:commons-dbcp.jar,commons-pool.jar由于建立数据库连接是一个非常耗时耗资源的行为,所以通过连接池预先同数据库建立一些连接,放在内存中,应用程序需要建立数据库连接时直接到连接池中申请一个就行,用完后再放回去。


  
  
  
  

DBCP实现:

class JdbcUtil
{
private static BasicDataSource bds;
static
{
if(bds==null)
{
bds= new BasicDataSource();
}
//分别设置数据库的连接参数
bds.setDriverClassName();
bds.setUrl();
bds.setUsername();
bds.setPassword();
}
public static Connection getConnection()
{
return bds.getConnection();
}

3.C3P0数据源;

C3P0是一个开源的JDBC连接池,它实现了数据源和JNDI绑定,支持JDBC3规范和JDBC2的标准扩展。目前使用它的有Hibernate,Spring等。

依赖jar包:c3p0-0.9.1.jar、c3p0-0.9.1.2.jar、c3p0-0.9.1-pre6.jar

c3p0与dbcp区别:

dbcp没有自动回收空闲连接的功能

c3p0有自动回收空闲连接功能


oracle.jdbc.driver.OracleDriver
jdbc:oracle:thin:@localhost:1521:Test
root
root

















4.JNDI数据源;

如果应用配置在高性能的应用服务器(如WebLogic或Websphere等)上,我们可能更希望使用应用服务器本身 提供的数据源。应用服务器的数据源 使用JNDI开放调用者使用,Spring为此专门提供引用JNDI资源的 JndiObjectFactoryBean类。下面是一个简单的配置:

方式一:

  

   

value值即JNDI的名称

方式二:


  

    queue/testQueue
  

方式三:

如果不使用JndiTemplate实现InitialContext环境变量的配置,则需要jndi.properties文件(放在classpath中,一般放在src下面),内容如下

java.naming.factory.initial=org.jnp.interfaces.NamingContextFactory
java.naming.provider.url=jnp://localhost:1099
java.naming.factory.url.pkgs=org.jboss.naming:org.jnp.interfaces

方式四:

使用JndiTemplate实现InitialContext环境变量的配置,例如



queue/testQueue








org.jnp.interfaces.NamingContextFactory
jnp://localhost:1099
org.jboss.naming:org.jnp.interfaces


热心网友 时间:2022-05-08 01:36

第一步 引入jar包,例如c3p0.jar
第二步 将jarbuildpath引入类中
第三步 在spring的配置文件中配置

例如:
〈bean id=datasource class=com.mchange...〉
<property>配置连接信息(手机写太累了)
配置好之后可以弄一个测试累,
弄一个
applicationContext ctx=new classpathxmlapplicationcontext(xxx.xml)

datasource ds = ctx.getbeans(datasource);
sysout(ds)如果输出了结果,就表明连接成功了
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
临沂比较有名的男装品牌 呼伦贝尔市悦动网络科技有限公司怎么样? 呼伦贝尔中汇实业有限公司怎么样? 呼伦贝尔油玉不绝电子商务有限公司怎么样? 如何避免wps卡顿? 属鼠的男人找对象是属什么,属鼠的人和什么属相合 96年鼠的姻缘在哪年 属相相合年份运势提升 2024属鼠找对象属什么最佳 黑客攻击网站能报案吗 黑客攻击报案有用吗 鲁迅对三味书屋和百草园的生活有怎样的态度和情感? 《从百草园到三味书屋》中的“博学”是什么意思? 有[四畳半书房] いけにえの母 第二部,多少钱 四叠半书房都有哪些 PS里面,,我想用CMYK去调颜色,怎么在颜色面板里面把RGB的换成CMYK的?? 爱国者极光rgb接prower led怎么改颜色 华硕3500 amd1700怎么设置cpu风扇灯颜色 我买的熟铁锅是银色,但是我看厨师用的铁锅是黑色的,黑色好呢还是银色好? 桂花鱼养殖中怎样使用杀虫药和肖毒药 桂花鱼(鳜鱼)肚子的“桂花”是个什么器官? 鲈鱼肉脆是为什么,今天煮了条鲈鱼,肉质脆脆的,好像比桂花鱼还脆,为什么呢? 请问桂鱼和桂花鱼是同一种鱼吗? 男人为什么喜欢吮胸 oppo手机怎样开超级快充 说说你对人工智能的认识? 58上我怎么被认为是商家?最近家里搬家,就转出点东西发布,但是现在我都不能发布了,一发布就自动商家了 为什么58上发搬家类帖子不能上传图片 在58同城做搬家广告,业务效果好吗 小规模纳税人不超过9万怎么计算? 小规模纳税人季度超过9万怎么不用交税? “天黑四月半,独瑟孤琴已断.”的意思? 一年两春 双四月 人间两度春夏 求下联 1992年农历四月初四20点35分出生 男性 文昌塔位置在哪 今年下半年运势到明年6月运势怎么样 谢谢 青年文摘里一篇文章标题 讲的是一个女生和她的实习老师的爱情故事 清代书法家刘墉,是不是宰相刘罗锅? 先测前事 在聊后话 男 阴历1987年4月初4 下午5点20分 请师傅们看看俺啥... Excel可不可以变成只读文件? 淘宝退款需要什么步骤?? 淘宝网里退款的宝贝链接是怎么发的 怎样做淘宝退货链接 链接打开的淘宝宝贝怎么申请退款 Excel表中=min(g40:g80)+0.000000001是什么意思? MACbookpro笔记本电脑,发觉内存满了,如何删除一部分让其运行增速呀? mac book pro 应用程序内存占用高,哪位大神给个答复,有图。 重广补注黄帝内经素问这本书是谁注释的? 锤子手机信号差怎么解决 《黄帝内经素问注》序的参考资料 重广补注黄帝内经素问的介绍 黄帝内经的传本有哪些?注本有哪些 京东便利go商家如何收费