文档章节

通过jdbc连接sqlserver导入csv数据

耳洞甜心
 耳洞甜心
发布于 2016/10/09 16:08
字数 323
阅读 102
收藏 0

工作上需要将部分csv数据导入到sqlserver数据库,所以自己写了个小程序来完成。本来可以用php或C++等自己更加熟练的语言来做,但是因为自己最近在练习java,所以最终还是决定使用java。

在运行过程中发现自己没注意的问题,就是insert效率的问题。一开始我按之前的习惯,把数据库操作的部分封装成一个函数在每次读取csv一行数据的循环体内进行调用,在导入数据时发现耗时较长,后来仔细分析一下,才发现这样调用会在循环体每执行一次时,都进行一次数据库连接的打开关闭操作,从而影响运行效率,所以最终取消了数据库操作的函数。

代码如下:

 

import java.io.BufferedReader;

import java.io.*;

import java.util.*;

import java.io.IOException;

import java.sql.*;

public class test{

    public static void main(String[] args){

        csv2sql("test.csv");

    }

    private static void csv2sql(String filename){

        try{

            BufferedReader br = new BufferedReader(new FileReader(filename));

            String line = null;

            String connString = "jdbc:sqlserver://127.0.0.1:1433;database=test;user=sa;password=test";

            Connection con = null;

            Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");

            con = DriverManager.getConnection(connStr);

            while ((line=br.readLine())!=null){

                String item[] = line.split(",");

                String sql = "insert into table (column1,column2) values ('"+item[0]+"','"+item[1]+"')";

                Statement stmt = con.createStatement();

                stmt.executeUpdate(sql);

                stmt.close();

            }

        }

        catch (IOException e){

            e.printStackTrace();

        }

    }

}

© 著作权归作者所有

耳洞甜心
粉丝 0
博文 3
码字总数 477
作品 0
朝阳
高级程序员
私信 提问
jmeter(八)-JDBC请求(sqlserver)

做JDBC请求,首先要了解这个JDBC对象是什么,然后寻找响应的数据库连接URL和数据库驱动。 数据库URL:jdbc:sqlserver://200.99.197.190:1433;databaseName=ebank 数据库驱动:com.microsoft...

劲风online
2015/01/08
363
0
Sql server 2000 连接测试

Sql server 2000 数据库本身规定了其数据库连接URL 的一般格式,如下: jdbc:sqlserver://[serverName[instanceName][:portNumber]][;property=value[;property=value]] 之间无空格,其中: ...

finereport
2011/12/12
147
0
JDBC连接各种数据库的字符串

JDBC连接各种数据库的字符串大同小异,在此总结一下,备忘。 oracle driverClass:oracle.jdbc.driver.OracleDriver url:jdbc:oracle:thin:@127.0.0.1:1521:dbname mysql driverClass:com...

长平狐
2012/08/27
893
0
sql server问题

刚安装的sql server2012,有一些navicat连接问题。 目前通过localhost\sqlexpress这个ip可以连接,而直接用localhost则不可以连接 然后在程序(mybatis整合spring)中就不知道怎么配置jdbcUrl...

哎码
2016/09/08
249
3
sqlserver2005数据库移植到oracle9i问题

首先声明,这俩个数据库之间的移植方法很多,网上也有介绍,例如:sqlserver自带的导入导出工具:(在sqlserver中右击需要移植的数据库,选“任务”——>导出数据库......这里就不介绍了)。...

gavinking
2011/08/06
183
0

没有更多内容

加载失败,请刷新页面

加载更多

Python如何实现单例模式?其他23中设计模式python如何实现?

单例模式主要有四种方法:new、共享属性、装饰器、import。 # __ new__方法:class Singleton(object): def __new__(cls, *args, **kw): if not hasattr(cls, '_instance'): ......

每天学Python
24分钟前
71
0
在正则表达式的上下文中,“懒惰”和“贪婪”是什么意思?

有人可以用一种可以理解的方式解释这两个术语吗? #1楼 贪婪意味着您的表情将匹配尽可能大的组,懒惰意味着它将匹配最小的组。 对于此字符串: abcdefghijklmc 这个表达式: a.*c 贪婪的匹...

技术盛宴
27分钟前
80
0
springboot web 大文件上传源代码

一、 功能性需求与非功能性需求 要求操作便利,一次选择多个文件和文件夹进行上传; 支持PC端全平台操作系统,Windows,Linux,Mac 支持文件和文件夹的批量下载,断点续传。刷新页面后继续传输...

东方雨
28分钟前
78
0
这五类人最适合转Web前端,有你吗?

互联网的高速发展促使互联网企业对于网站等页面的用户体验要求也越来越高,导致网站开发难度越来越大,于是一个新兴职业应运而生——web前端工程师。 因为互联网时代的高速发展,公司企业的迫...

梦想编程
36分钟前
96
0
vue打包后静态资源图片失效&&vue动态设置img的src不生效

vue打包后静态资源图片失效: 老版本中需要找到config/index.js,找build打包对象里的assetsPublicPath属性,默认值为/,更改为./就好了; 新版本中只有手动更改vue.config.js, 在里面配置p...

liulunsheng
49分钟前
57
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部