「java动态数据源关闭」如何关闭数据源
本篇文章给大家谈谈java动态数据源关闭,以及如何关闭数据源对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。
本文目录一览:
- 1、java程序员在面试中被问到如何配置多数据源以及如何配置多数据源下的分布式事务,该怎么回答?看清再做答
- 2、如何使用java动态创建ODBC数据源
- 3、Java中的io流关闭问题
- 4、Java web点击按钮切换数据源
java程序员在面试中被问到如何配置多数据源以及如何配置多数据源下的分布式事务,该怎么回答?看清再做答
你好,我来先回答你的第一个问题:
通常多数据源,在spring中配置如下,如果你想切换环境ENV 的值,在property中
bean id="placeholderConfigurer" class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer"
property name="ignoreResourceNotFound" value="true"/property
property name="ignoreUnresolvablePlaceholders" value="true"/property
property name="nullValue" value="NULL"/property
property name="locations"
list
valuejdbc.properties/value
/list
/property
/bean
bean id="dataSource" class="com.spring.dao.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,这种方式可以灵活切换的。
我再回答你的第二个问题:
还请你去这里看下,很详细,不过是英文的哦
如何使用java动态创建ODBC数据源
jdbc数据库连接:1.加载驱动Class.forName(“xxxDriver”)2建立连接:Connection conn= DriverManager.getConnection(url,user,password);(url是连接地址ip端口号和数据库实例名,user用户名,password密码)3获取statement对象:Statement stmt=conn.createStatement();4通过Statement执行Sql语句:stmt.executeQquery(String sql)会返回查询结果集,stmt.executeUpdate(String sql)返回int型,表示影响记录的条数;5处理结果:ResultSet rs=str.executeQuery(String sql);while(rs.next()){
System.out.println(rs.getInt(id));
}
5:关闭数据源:rs.close();
下面是连接各种数据库的方法:
1、Oracle8/8i/9i数据库(thin模式)
Class.forName("oracle.jdbc.driver.OracleDriver").newInstance();
String url="jdbc:oracle:thin:@localhost:1521:orcl";
//orcl为数据库的SID
String user="test";
String password="test";
Connection conn= DriverManager.getConnection(url,user,password);
2、DB2数据库
Class.forName("com.ibm.db2.jdbc.app.DB2Driver ").newInstance();
String url="jdbc:db2://localhost:5000/sample";
//sample为你的数据库名
String user="admin";
String password="";
Connection conn= DriverManager.getConnection(url,user,password);
3、Sql Server7.0/2000数据库
Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver").newInstance();
String url="jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=mydb";
//mydb为数据库
Java中的io流关闭问题
如下例子代码:
FileInputStream is = new FileInputStream(".");
BufferedInputStream bis = new BufferedInputStream(is);
bis.close();
从设计模式上看:
java.io.BufferedInputStream是java.io.InputStream的装饰类。
BufferedInputStream装饰一个 InputStream 使之具有缓冲功能,is要关闭只需要调用最终被装饰出的对象的 close()方法即可,因为它最终会调用真正数据源对象的 close()方法。
BufferedInputStream的close方法中对InputStream进行了关闭,下面是jdk中附带的源代码:
java.io.BufferedInputStream的api:
close
public void close()throws IOException 关闭此输入流并释放与该流关联的所有系统资源。
因此,可以只调用外层流的close方法关闭其装饰的内层流,验证例子:
public static void main(String[] args) throws Exception {
FileOutputStream fos = new FileOutputStream("d:\\a.txt");
OutputStreamWriter osw = new OutputStreamWriter(fos, "UTF-8");
BufferedWriter bw = new BufferedWriter(osw);
bw.write("java IO close test");
bw.close();
}
验证ok
Java web点击按钮切换数据源
如果要在Javaweb切换数据源,首先你需要新建数据源常量类,此类中的常量是通过spring-db.xml映射对应的,然后配置spring-db.xml,这个是spring链接数据库的配置文件,再进行动态数据源设置,这个类是用来切换数据源,再获取jdbcTemplate的管理类。最后测试动态数据源,一般会用Junit4做单元测试。
总结:这种切换比较规范和简单,麻烦的是必须先配置多个数据源,以前是参考网上资料,自己修改的,希望对你有参考作用!
java动态数据源关闭的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于如何关闭数据源、java动态数据源关闭的信息别忘了在本站进行查找喔。
发布于:2022-12-08,除非注明,否则均为
原创文章,转载请注明出处。