java数据源配置
不是,是java程序如果用到数据库的时候一定要做数据库连接操作
❷ java程序员在面试中被问到如何配置多数据源以及如何配置多数据源下的分布式事务,该怎么回答看清再做答
你好,我来先回答你的第一个问题:
通常多数据源,在spring中配置如下,如果你想切换环境ENV 的值,在property中
<bean id="placeholderConfigurer" class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
<property name="ignoreResourceNotFound" value="true"></property>
<property name="" value="true"></property>
<property name="nullValue" value="NULL"></property>
<property name="locations">
<list>
<value>jdbc.properties</value>
</list>
</property>
</bean>
<bean id="dataSource" class="com.spring..JDBCConfig">
<property name="driverClassName" value="${${Env}.jdbc.driverClassName}"></property>
<property name="url" value="${${Env}.jdbc.url}"></property>
<property name="username" value="${${Env}.jdbc.username1}"></property>
<property name="password" value="${${Env}.jdbc.password}"></property>
</bean>
jdbc.properties
*****************************
Env=PROD
jdbc.driverClassName=${${Env}.jdbc.driverClassName}
jdbc.url=${${Env}.jdbc.url}
jdbc.username=${${Env}.jdbc.username}
jdbc.password=${${Env}.jdbc.password}
######### JDBC Configuration for DEV Environment ###############
DEV.jdbc.driverClassName=com.mysql.jdbc.Driver
DEV.jdbc.url=jdbc:mysql://localhost:3306/devportal
DEV.jdbc.username=DEVuser
DEV.jdbc.password=DEVpwd
######### JDBC Configuration for UAT Environment ############
UAT.jdbc.driverClassName=com.mysql.jdbc.Driver
UAT.jdbc.url=jdbc:mysql://localhost:3306/UATportal
UAT.jdbc.username=UATuser
UAT.jdbc.password=UATpwd
########## JDBC Configuration for PROD Environment ############
PROD.jdbc.driverClassName=com.mysql.jdbc.Driver
PROD.jdbc.url=jdbc:mysql://localhost:3306/portal
PROD.jdbc.username=root
PROD.jdbc.password=admin,
我这里有三套环境,分别是DEV,UAT和PROD,这种方式可以灵活切换的。
我再回答你的第二个问题:
还请你去http://docs.spring.io/spring-framework/docs/4.0.x/spring-framework-reference/html/transaction.html这里看下,很详细,不过是英文的哦
❸ SpringBoot 配置双数据源MySQL、SQL Server
1、pom.xml引mysql和sql server依赖
2、application.yml配置mysql和sql server连接数据源的信息
3、创建DataSourceConfig.java工具类
4、创建mysql数据源配置工具类MySqlConfig.java
5、创建敏野sql server数据源配置工具类SqlServerConfig.java
如果您有什么好的想法与方法,欢大亩迎在评论区留言滚拿森,我们一起讨论~
❹ Java中如何与数据库建立连接(java怎么与数据库连接)
导入java.sql包
一、加载要连接数据库的驱动程序
//Jdbc-Odbc桥和MicrosoftAess数据库
Class.forName("sun.jdbc.odbc.");
//SQLServer驱动程序:
Class.forName("com.microsoft.jdbc.sqlserver.");
注:Class.forName()方法将给定的类加载到JVM,如果系统中不存在给定的类,则会引发异常
二、通过驱动程序管理器得到连接实例
Connectionconn=null;
//1.
//1.1建立数据源
conn=.("jdbc:odbc:");//是数据源名称
//1-2、不建立数闹弯据源
conn=.("jdbc:odbc:;Driver=MicrosoftAessDriver(*.mdb);DBQ=C:VBTest.mdb");
//2.SQLServer
conn=.("jdbc:microsoft:sqlserver://127.0.0.1:1433;=mydb","sa","");
注:类跟踪已注册的驱动程序,通过(URL)方法,找到一塌唤个能够连接至URL中指定的数据库驱动程序
它接收三个参数,分别表示1数据源的名称、类型2用户名(可选)3密码(可选)
三、基于连接对象建立处理器对象
Statementstmt=conn.();
四、准备sql命令
Stringsql="select*fromStudent";
五、执行命令返回结果集
ResultSetrs=stmt.(sql);
六、显示结果集
while(rs.next())//只要后面有记录
{
//对当前行的所有字段遍历
for(inti=1;i<=rs.getMetaData().();i)
{
System.out.print(rs.getMetaData().getColumnName(i)":");//显示字段名
System.out.println(rs.getString(i));//显示字段当前值
}
System.out.println();
}
七、关闭资源
rs.close();//关闭记团弯凯录集
stmt.close();//关闭处理器对象
conn.close();//关闭连接对象
预处理器的应用:
//3.基于连接对象建立预处理器对象
PreparedStatementpstmt=conn.prepareStatement("insertintostudentvalues(?,?,?,?)");
//4.给预处理对象的参数赋值
pstmt.setString(1,"8888");
pstmt.setString(2,"nemo");
pstmt.setString(3,"ap");
pstmt.setString(4,"sanxianglu");
//5.执行预处理命令
inti=pstmt.executeUpdate();
System.out.println(i"条记录已成功插入!");
❺ 求java程序,用JNDI连接Weblogic数据源(weblogicjndi数据源配置)
1。Java基本语法、类、继承、方法、接口、Java面向对象程序设计、Java用户界面(GUI)、Java-JDBC对数据库进行访问了解面向对象、封装、抽象、继承,掌握Java语法、GUI编程、JDBC,GUI访问数据库60课时
2。JavaWEB应用实战WEB服务器安装、配置、SQLServer数据库使用,JDBC、JavaScript、Servlet、JSP技术,JSP-Servlet-JavaBean三层架构70课时
3。JAVA与数据库实战(Oracle、DB2、SQLServer)WebLogic服务器安装配置,Oracle、DB2、SQLServer数据库管理,连接池、数据源、JNDI技术,Java和各种数据库交互实例50课时
4。JBuilder-WebLogic-EJB-Oracle企业级应用WebLogic、Jbuilder、Oracle集成配置,Java分布式平台技术,连接池、数据源配置,RMI与JNDI技术,中间件概念,会话Bean、实体Bean,开发《购物车》实例全面了解J2EE架构、掌握WebLogic服务器、Jbuilder开发工具,EJB组件以及JDBC、JNDI分布式平台技术50课时
5。Struts技术揭密及WEB开发实例Struts框架安装配置,M-V-C模型,Struts控制器模型组件、视图组件,标记库原理,数据源配置Struts开发实例50课时
6Linux-Apache-Tomcat-MYSQL集成环境高级应用Linux操作系统安装,Linux各种命令用法、各种服务配置,Linux系统下WEB服务器配置;MySQL数据库安装及管理;Java和MySQL进行交互40课时
7。UML-Rose建模实战统一建模语言(UML)概述、概述、健壮性分析,用例和用例图、用例和角色、识别和角色、边界、力度、类图。40课时
8。J2EE框架技术实战(表示层:Struts,业务层:Spring,持久层:hibernate)表示层:Struts技术业务层:Spring技术数据持久层:hibernate技术、ibatis(sqlmap)技术。60课时
9日语与Java编程经过两个月日语强化培训,掌握生活常用的日语,特别是Java编程中经常使用的计算机日语,具有一定日语表达能力。
1、先学学JSP,用纯JSP做个日记本简单的小系统,纯粹从语言层面上了解一些基础知识,把tomcat玩熟了,就用记事本编就行,主要是熟悉,能够理解jsp运行机制。然后学学java,看本基础的书,都是那种讲讲语法的,变量怎么定义,流程控制语句怎么写,怎么编写函数,怎么处理表单元素,处理字符串,连接数据库,会一种就行。这些都是浮在语言表面,你编写的程序还是结构化的,跟你以前用asp编的程序没庆拆什么区别,但是这很重要。你可以直接选择目前公司里都在使用的Eclips来开发,但是你要区分IDE和Java的区别,不要被IDE邦死了。这些都熟了之后看《thinkinginjava》,看完之后,看corejava两卷,深入了解到java本身。看这些书的时候你可能就懵懂的进入oo世界了,估计还不太明白。可以配合一些oo的理论方面的书,oo不过就是那几个特点,封装分配,多态性,继承,第一个要理解的当然是对象。看完这些后就可以学习UML建模了,主要会画三种图,用例图,类图,序列图,三种图就足够了。不要期望自己一下就学会UML,就会建模,得跟java学习联系起来,编个几万行代码,慢慢就会设计对象了。然后看GOF《谨神设计模式》,对你的面向对象思想一个巨大的提升,这时誉晌枣你一定会去重读继承,接口,抽象类的相关的细节了,并且你会发现你的理解能力上了一个台阶。然后看看三层结构的知识,这时候编程考虑使用jspservletjavabean,分出表示层,业务层和数据访问层,这是基础。
2、以上都是J2SE,然后看thinkinginenterprisejava,学习j2ee基础知识,你慢慢就会明白持久层的一些机制了,后面的什么各种新鲜的东西,CMP的东西本质是什么,你都很好理解了。当然你要不断编码,把书里的概念都变成实践,只有自己动手做,才能理解,看会不等于学会,学会不等于学精,学好技术不等于会设计,层次会越来越高。实践是认识的唯一来源!!!一定要实践。
3、编码时你可以考虑看看《重构》这本书,觉得很好,同时还可以看看,会使你的代码越来越漂亮。
4、现在你的代码已经很专业了,而且可以分出不同的层次,因为你知道了最基本的原则,那就是要高内聚,低耦合,要不断地解耦,但是怎么更好的解耦,什么是最佳实践,你可能并不知道,虽然你看了下面这本书,你会发现你有些做法已经是最佳实践了,但是依然会存在这种情况,有些你并不确定,那就看看corejavapattern吧,都是14年以上开发经验的架构师和众多java大师的经验总结,书中序言所写,看完这本书,你将成为Java架构师。
5、这些知道之后,你已经对分层的本质很理解了,你可以知道Struts不过是框架而已,只是运用了页面助手,前端控制器,应用控制器等这些表示层或者表示层和业务层(Tier)中间连接层(Layer)的模式,对于标签的理解你也是深刻的。而到集成层,采取不同的策略和模式,数据持久化的理论和经验,框架不过是把大家都用得着的东西做好了给你用,没有框架的话很多事需要你自己做,仅此而已,跟那些伟大的思想相比,它们太简单了。至于到具体的容器,DAO策略还是CMP,BMP,在具体使用怎样的ORM工具,都是更简单的事情了。但是看spring,struts这些框架时你会重新阅读前面的java教程的,因为spring用到了java的反射机制等。
6、到此为止,你会发现你OOP时,想到的就会是性能,到底用数组还是ArryList,还是用HashMap,OOD时,你会考虑并发性,扩展性,复用性,现有框架,池,事务等方面,你会发现每一个问题,你都有好几种选择方案,你会不断重构你的代码,改良你的设计。
7、下一步是OOA,那就看一本《分析模式》吧,会教你很多分析的现成方法。
此时,你已经是OO方面的专家了,构架一个大型系统应该没有问题了,而且你的能力可以很轻易的学会WebService,AJAX等这些时髦的东西,你编程的时候可能最常翻的书是JDKAPI,但是你会遇到新的问题,就是让你设计一套股票系统,可是你对股票一无所知,现学,这是必须的,但是这时你会发现你基础好差,所以在学技术的同时,多看看各个领域的书吧,其实都是有模式的,比如ERP选型,CRM的几种样子,电子商务的几种模式,看多了你也就会了,所以要学会域建模,因为你是要为商务,政务服务的,是为人服务的。
我觉得这在技术方面就算到头了,如果你想学管理,当然前提是技术,要不你不知道完成一个项目到底要多久花多少钱。你必须了解开发方法,迭代开发,XP等,当你有了技术,再看这些很容易,因为你会明白为什么要测试先行,在技术上怎么实现技术先行;你也会知道结对编码的意义。学习了这些你会是项目经理。
但是你可能还需要多看看经济领域的书和法律书,还包括中国政府的报告等等,要政治敏感,这样你才能成为比尔盖茨。这离主题有点远了。
总的原则是:
1、先从语言层面掌握Java(很多说Java容易的人都是只掌握了语言层面的人,当你面对如何解耦,怎样利用线程,如何更好复用,面向对象时,你就会觉得它好复杂好难)然后再到深入理解Java,先学J2SE再学J2EE。
2、理论和实践相结合,先看操作,理解本质和原理,然后做,然后翻过来看理论,你会觉得这件事做起来就是顺理成章的了,因为当初理论就是这么被推出来的。
3、高处着眼,有了基础后,你可以从本质上去跟上时髦的东西,比如ORM,更细点说就是Hibernate等,比如各层框架,Spring,Struts等,都很简单。
4、学好理论,你用到多线程时可能会觉得自己对于线程机制不慎了解,对对象在内存中的生命周期不清楚,对于JUnit断言的不理解,对调试程序的原理不明白,去看计算机组成原理吧;可能搞不清楚数组的本质,去看数据结构,这时你会发现自己线性代数太差;去讨论Java自带的排序算法和你自己编写的算法,可能觉得自己对一个简单的函数都看不懂,设计复杂的函数就更不会了,去看计算方法吧,这时你可能会感到你的高等数学太差了;不理解HTTP的接收应答机制,不知道AJAX原理,那么多语言都有request,response,到底原理是什么,XML的作用是什么,SOAP协议,怎么在网络上传输这些数据,看看基础知识,这些都很简单。掌握基础,只有到这时你才会觉得它重要,那就等你知道了再去看吧,也不会太晚,而且你会学的更好。不要羡慕那些硕士博士,他们没编过程序,照样不如你,有些都是真的是你不做就永远不理解,不做底层,理解不了上层。
5、学好外语,因为你会发现很多资料很多问题的答案很多调试错误的解释都是外文的,这时google是最好的工具,但是你的英文要起码可以读懂人家说什么;还有研究Webservice,SOA之类的东西,往往都是英文的。
学好我说的这些,大约需要3年,但是学好JAVA,达到语言层面,只需要1周,达到内部,需要半年,达到会设计,需要做3个以前项目,达到架构师,估计得2到3年,同时那些基础中的基础,你更需要好好学,那些是最慢的。
学到语言层面只需要两样东西:玩会IDE拿一本包含我所说的那些基本语法的书。玩会IDE你要做到会简单配置,能运行出东西,会调试(不会调试就没法编程),然后拿本JDKAPI,打开google和网络,有了错误就去搜索,这样学习Java真的很简单。
Linux也是要先会玩,要能上网,会下载东西,安装软件,写文档,然后就是能听歌看电影,就够了。接下来在编程,关键要会shell那些命令。看看多用户操作系统的书,建立一个理论高度,就OK了
最后说一句,中国大多数程序都停留在语言层面,很多人都是在懵懂中编程,可能调不通程序,突然改了个东西就通了,但是深层原因并不知道,很多都是东试西试试验出来的,都是黑箱编程,总感觉隔着雾看程序,我身边很多人写了一万行代码,还不理解equals和==的区别呢,还不知道Classobject=newClass()等号左右两边各代表什么呢。但是他们一样能编程,一样能开发出系统,很多人都以为这样就算Java高手了,什么都能编并不等于编的好,当然什么都能编是个前提。所以要学,就学深入,起码一种语言要学深,在web开发方面,我推荐java学深,或者说沿着java路学深,这样去研究C#,.Net平台就很容易,再看ASP和PHP就觉得大家都一样了,上升到高度不过也就是设计模式的问题了,殊途同归。
❻ 如何配置JAVA的ODBC数据源。
package com.bin.struts.util;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
public class DBConn2000 {
public static Connection getConn(){
String driver = "com.microsoft.jdbc.sqlserver.SQLServerDriver";
String url = "jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=//数据库名字";
String user = "sa";
String password = "123";
try {
Class.forName(driver);
} catch (ClassNotFoundException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
try {
return DriverManager.getConnection(url,user,password);
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
return null;
}
}
public static Connection close(){
return null;
}
}
这是2000的连接方法
这是2005的连接串
jdbc:sqlserver://localhost:1433;databasename=//数据库
com.microsoft.sqlserver.jdbc.SQLServerDriver
2000数据库需要打SP4补丁.
并且两个都需要专门的JDBC驱动的
❼ 怎么配置java EE和tomcat
1)首先配置tomcat的环境变量。
2)将项目下的webroot放置在tomcat 的webapp目录下(也可以在tomcat的config目录里面配置寻找路径,具体的为可新建一个.xml文件去读数据库数据)
3)启动tomcat即可。
仅供参考。
❽ Spring怎样高效的配置多套数据源
1、首先配置多个datasource
<!-- 主数据库的数据据源 -->
<bean id="masterDataSource" class="org.apache.commons.dbcp.BasicDataSource"
destroy-method="close">
<property name="driverClassName" value="oracle.jdbc.OracleDriver" />
<property name="url" value="jdbc:oracle:thin:@192.168.10.11:1521:trew" />
<property name="username" value="poi" />
<property name="password" value="poi" />
</bean>
<!-- 备份库的数据据源 -->
<bean id="slaveDataSource" class="org.apache.commons.dbcp.BasicDataSource"
destroy-method="close">
<property name="driverClassName" value="oracle.jdbc.OracleDriver" />
<property name="url" value="jdbc:oracle:thin:@192.168.10.12:1521:trew" />
<property name="username" value="poi2" />
<property name="password" value="poi2" />
</bean>
2、写一个DynamicDataSource类继承AbstractRoutingDataSource,并实现determineCurrentLookupKey方法
?
public class DynamicDataSource extends AbstractRoutingDataSource {
@SuppressWarnings("unused")
private Log logger = LogFactory.getLog(getClass());
@Override
protected Object determineCurrentLookupKey() {
return DbContextHolder.getDbType();
}
}
public class DbContextHolder {
@SuppressWarnings("rawtypes")
private static final ThreadLocal contextHolder = new ThreadLocal();
@SuppressWarnings("unchecked")
public static void setDbType(String dbType) {
contextHolder.set(dbType);
}
public static String getDbType() {
return (String) contextHolder.get();
}
public static void clearDbType() {
contextHolder.remove();
}
}
3. 配置动态数据源
<!--将DynamicDataSource Bean加入到Spring的上下文xml配置文件中去,同时配置DynamicDataSource的targetDataSources(多数据源目标)属性的Map映射。-->
<bean id="dataSource" class="cn.com.core.datasource.DynamicDataSource">
<property name="targetDataSources">
<map key-type="java.lang.String">
<entry key="masterDataSource" value-ref="masterDataSource" />
<entry key="slaveDataSource" value-ref="slaveDataSource" />
</map>
</property>
<property name="defaultTargetDataSource" ref="masterDataSource"/>
</bean>
4.使用动态数据源(hibernate)
<bean id="sessionFactory"
class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
<property name="dataSource" ref="dataSource" />
<property name="lobHandler" ref="lobHandler"/>
<property name="eventListeners">
<map>
<entry key="post-insert">
<ref bean="logListener"/>
</entry>
<entry key="post-update">
<ref bean="logListener"/>
</entry>
<entry key="post-delete">
<ref bean="logListener"/>
</entry>
</map>
</property>
<property name="hibernateProperties">
<props>
<prop key="hibernate.dialect">
org.hibernate.dialect.Oracle10gDialect
<!-- org.hibernate.dialect.OracleDerbyDialect -->
</prop>
<prop key="hibernate.show_sql">true</prop>
<!-- <prop key="hibernate.generate_statistics">true</prop> -->
<prop key="hibernate.connection.release_mode">
auto
</prop>
<prop key="hibernate.autoReconnect">true</prop>
<!--
<prop key="hibernate.hbm2ddl.auto">update</prop>
-->
<prop key="hibernate.cache.use_second_level_cache">false</prop>
<prop key="hibernate.cache.provider_class">
org.hibernate.cache.EhCacheProvider
</prop>
<prop key="hibernate.cache.use_query_cache">false</prop>
</props>
</property>
</bean>
使用Hibernate时的事务管理配置示例:
<bean id="transactionManager" class="org.springframework.orm.hibernate3.HibernateTransactionManager">
< property name="sessionFactory" ref="sessionFactory" />
bean>