jdbc 使用sql文件插入数据

标签: jdbc sql 文件 | 发表时间:2013-01-27 21:14 | 作者:
出处:http://www.iteye.com
import java.io.BufferedReader;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;

public class ImportOracle {
	static class myConnection {
		private String url = "jdbc:mysql://localhost:3306/jdbc";
		private String user = "root";
		private String password = "";

		// private static JdbcUtilsSing instance = new JdbcUtilsSing();
		private static myConnection instance = null;

		private myConnection() {
		}

		public static myConnection getInstance() {
			if (instance == null) {
				synchronized (ImportOracle.class) {
					if (instance == null) {
						instance = new myConnection();
					}
				}
			}
			return instance;
		}

		static {
			try {
				Class.forName("com.mysql.jdbc.Driver");
			} catch (ClassNotFoundException e) {
				throw new ExceptionInInitializerError(e);
			}
		}

		public Connection getConnection() throws SQLException {
			return DriverManager.getConnection(url, user, password);
		}

		public void free(ResultSet rs, Statement st, Connection conn) {
			try {
				if (rs != null)
					rs.close();
			} catch (SQLException e) {
				e.printStackTrace();
			} finally {
				try {
					if (st != null)
						st.close();
				} catch (SQLException e) {
					e.printStackTrace();
				} finally {
					if (conn != null)
						try {
							conn.close();
						} catch (SQLException e) {
							e.printStackTrace();
						}
				}
			}
		}
	}

	public String readFile(String filePathAndName) {
		String fileContent = "";
		try {
			File f = new File(filePathAndName);
			String charset = getSeaset(filePathAndName);
			if (f.isFile() && f.exists()) {
				InputStreamReader read = new InputStreamReader(
						new FileInputStream(f), charset);
				BufferedReader reader = new BufferedReader(read);
				String line;
				while ((line = reader.readLine()) != null) {
					fileContent += line + " ";
				}
				read.close();
			}
		} catch (Exception e) {
			System.out.println("读取文件内容操作出错");
			e.printStackTrace();
		}
		return fileContent;
	}
	
	private void insert(String datas) throws SQLException{
		String[] datass = datas.split(";");
		 Connection conn = myConnection.getInstance().getConnection();
		 conn.setAutoCommit(false);
		 
		 Statement stat = conn.createStatement();
		 int i = 0;
		for (String string : datass) {
			
			stat.addBatch(string);
			i ++;
			if(i / 1000 == 0 ||i == datass.length)
			{
				stat.executeBatch();
				conn.commit();
			}
		}
		
	}

	private String getSeaset(String path) {
		try {
			File file = new File(path);

			InputStream ios = new java.io.FileInputStream(file);

			byte[] b = new byte[3];

			ios.read(b);

			ios.close();

			if (b[0] == -17 && b[1] == -69 && b[2] == -65)
				return "UTF-8";
			else
				return "GBK";
		} catch (FileNotFoundException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		} catch (IOException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		return "GBK";
	}

	public static void main(String[] args) throws SQLException {
		ImportOracle ip = new ImportOracle();
		ip.insert(ip.readFile("D:\\123.txt"));
	}
}


已有 0 人发表留言,猛击->> 这里<<-参与讨论


ITeye推荐



相关 [jdbc sql 文件] 推荐:

jdbc 使用sql文件插入数据

- - ITeye博客
System.out.println("读取文件内容操作出错");. 已有 0 人发表留言,猛击->> 这里<<-参与讨论. —软件人才免语言低担保 赴美带薪读研.

jdbc测试mysql数据库sql预解析(绑定变量)

- - CSDN博客推荐文章
jdbc测试mysql数据库sql预解析(绑定变量).         用习惯了oracle,学习mysql,想测试一下mysql绑定变量的效果. 以前看网上介绍大部份都说mysql没有sql共享池的概念,所以也不存在sql预解析或绑定变量的说法.         今天测试了一下(通过网络抓包和看服务器端sql日志的方法),发现mysql还是有sql预解析的实现.

Sharding-JDBC 1.5.0.M1 正式发布,全新的 SQL 解析引擎

- - 开源中国社区最新新闻
经过了长达几个月的紧张开发,Sharding-JDBC 1.5.0.M1终于正式发布. Sharding-JDBC 1.5.0.M1版本是一次里程碑式升级,工作量巨大,Sharding-JDBC截止到1.4.2之前所有的提交次数为385次,而1.5.0.M1一个版本的提交次数为517次. Sharding-JDBC从这个版本开始明确定位为“水平扩展以及inline事务数据库中间件”,将全力专注于OLTP以及内联事务的处理.

mysql错误编号和jdbc对应的sql编号对应一览

- - CSDN博客研发管理推荐文章
作者:lzq123_1 发表于2014-11-12 13:29:10 原文链接. 阅读:82 评论:0 查看评论.

HA-JDBC -

- -
The state manager component is responsible for storing the active status of each database in the cluster, as well as any durability state.

JDBC性能小贴

- - 开源软件 - ITeye博客
本文收集了一些用于提升JDBC性能的方法. Java应用或者JavaEE Web应用的性能是很重要的,尤其是数据库后端对应用的性能影响. 不知你是否经历过Java、JavaEE web应用非常慢的案例没有(处理一个简单的请求都要花上好几秒的时间用于数据库访问,分页、排序等). 下面这些贴士也许能提升Java应用的性能.

oracle的jdbc驱动

- - Oracle - 数据库 - ITeye博客
oracle的jdbc驱动主要有下面三类:.   1、JDBC OCI: oci是oracle call interface的缩写,此驱动类似于传统的ODBC 驱动. 因为它需要Oracle Call Interface and Net8,所以它需要在运行使用此驱动的JAVA程序的机器上安装客户端软件,其实主要是用到orcale客户端里以dll方式提供的oci和服务器配置.

jdbc日志,Log4jbdc-remix使用

- - 企业架构 - ITeye博客
   做项目的时候给jdbc做日志,只打印出代. 由是看看有没有给jdbc做日志的框架. 找到了log4jdbc,但是觉得还不是很理想,由是又看了看,还有一个护展插件log4jdbc-remix. 先不扯这么多,先来教大家怎么使用吧. 使用这个插件依赖4个类:log4j,slf4j-log4j,slf4j-api,log4j-remix.

JDBC事务控制管理

- - 编程语言 - ITeye博客
事务指逻辑上的一组操作,组成这组操作的各个单元,要不全部成功,要不全部不成功. 例如:A——B转帐,对应于如下两条sql语句. 数据库默认事务是自动提交的,也就是发一条sql它就执行一条. 如果想多条sql放在一个事务中执行,则需要使用如下语句. 方式一:利用SQL语句管理事务. start transaction;--开启事务,这条语句之后的sql语句将处在一个事务当中,这些sql语句并不会立即执行.

MySQL Replication 常用SQL、应用、文件、流程、模式

- - CSDN博客数据库推荐文章
无聊时写的,算科普吧,毕竟内置的Replication是MySQL的骄傲.     列出当前主库二进制日志状态.     列出连接到主库的备库信息.     列出二进制日志中的事件.     置空二进制日志索引文件,并创建一个新的二进制日志.     删除主库的二进制日志.     ① 目标日志确认如下:.