SSM环境下,获取指定数据库连接执行sql文件
来源:互联网 发布:淘宝怎样改店名 编辑:程序博客网 时间:2024/06/01 07:21
1.需求场景
多数据源下,获取指定数据源连接,执行原生sql语句。
2.项目环境
spring,spring mvc, mybatis,MySQL
3.实现方法
(1)利用spring 环境,获取数据源连接
package com.jlc.util.jdbc;import java.sql.Connection;import org.apache.commons.dbcp.BasicDataSource;import org.springframework.web.context.ContextLoader;import org.springframework.web.context.WebApplicationContext;/** * 数据库链接帮助类 * * @author cch * @date 2014-09-11 */public class DBConnection {private Connection connection = null;private static DBConnection instance = new DBConnection();private DBConnection() {}/** * 单实例 */public static DBConnection getInstance() {return instance;}/** * 获得数据库链接 */public Connection getConnection(String dataSource) throws Exception {if (this.connection == null || this.connection.isClosed()) {WebApplicationContext ct = ContextLoader.getCurrentWebApplicationContext();BasicDataSource datasource = (BasicDataSource) ct.getBean(dataSource);this.connection = datasource.getConnection();}return this.connection;}/** * 关闭数据库连接 */public static void closeConnection(Connection conn) {try {if (conn != null && !conn.isClosed()) {conn.close();conn = null;}} catch (Exception e) {e.printStackTrace();}}/** * 释放资源 **/private void closeAll(ResultSet rs, PreparedStatement st) {try {if (rs != null) {rs.close();}} catch (SQLException e) {e.printStackTrace();}try {if (st != null) {st.close();}} catch (SQLException e) {e.printStackTrace();}}}
(2)执行原生sql语句
package com.sql.tools;import java.io.File;import java.io.FileInputStream;import java.io.InputStreamReader;import java.sql.Connection;import java.text.SimpleDateFormat;import java.util.ArrayList;import java.util.Date;import java.util.List;import org.apache.ibatis.jdbc.ScriptRunner;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;import com.jlc.util.jdbc.DBConnection;public class SqlRunDemo {private final static SimpleDateFormat sdfymdhm = new SimpleDateFormat("yyyyMMddHHmmss"); @RequestMapping(value = "/insertdata") public void runsql(@RequestParam(value = "file", required = false) MultipartFile file, HttpServletRequest request){String fileName="";String filePath="";Connection connection =null;ScriptRunner runner =null;String path = request.getSession().getServletContext().getRealPath("path"); //上传脚本文件fileName = FileUtil.uploadFileSQL(file,request,path);filePath = path+File.separator+fileName;//上传文件的真实路径try{//获取指定数据源连接connection = DBConnection.getInstance().getConnection("dataSource8");runner = new ScriptRunner(connection);runner.setErrorLogWriter(null); runner.setLogWriter(null); runner.runScript(new InputStreamReader(new FileInputStream(filePath),"UTF-8")); }catch(Exception e){ e.printStackTrace(); }finally {DBConnection.closeConnection(connection);}}}
阅读全文
0 0
- SSM环境下,获取指定数据库连接执行sql文件
- 指定目录下打开SQLPLUS 并执行SQL文件
- SSM+Maven环境下上传文件到数据库指定字段中实例(已实现)
- [MyBatis]获取数据库连接、批量执行SQL语句
- [MyBatis]获取数据库连接、批量执行SQL语句
- 如何在java环境下执行sql脚本文件
- 在windows环境下批量执行ORACLE的*.sql文件
- Linux环境下执行Oracle SQL输出到文件中
- 获取指定目录下指定文件
- 获取指定文件下的mp3文件
- linux下执行sql文件
- UNIX/LINUX环境中使用MATLAB获取指定路径下特定文件列表的方法
- android 获取指定路径下所有文件,将文件从一个目录copy到另一个目录,执行linux命令
- KEIL环境下指定输出文件路径
- maven环境下的ssm架构的pom.xml文件
- java执行sql语句并获取指定返回值
- Java执行sql语句并获取指定返回值
- java获取指定目录下所有文件
- WEB打印控件Lodop学习-1
- Android 常用UI控件收藏
- Android6.0权限和targetSdkVersion之间的关系
- 【Linux学习】之 Shell初识
- PHP反射机制原理与用法详解
- SSM环境下,获取指定数据库连接执行sql文件
- 【转】html 页面内锚点定位及跳转方法总结
- 虽然微不足道但是很有用的JAVA基础—线程一
- 类--对私有变量、私有方法的理解
- jboot
- java_se StringBuffer
- 计算机视觉三大顶级国际会议和国外知名期刊投稿
- os模块
- 【Java笔记】Week05 --- 常用类