java语言实现把txt文本文档里面的数据导入到SQL Server数据库的表中

java新建一个列名为(group,layer,one,two,three,four)的数据表,文本文档如图,要求能够实现只将这样的数据1110.015.216.516.... java新建一个列名为(group,layer,one,two,three,four)的数据表,文本文档如图,要求能够实现只将这样的数据1 1 10.0 15.2 16.5 16.5作为一条记录插入表中,把其他没用的都忽略掉。 展开
 我来答
紫薇参星
科技发烧友

2016-06-06 · 有一些普通的科技小锦囊
知道大有可为答主
回答量:5983
采纳率:92%
帮助的人:3579万
展开全部

假设sqlserver数据库DatabaseName=master,user = "sa",password = "root"
数据库中表temperature中group,layer列为int类型,one,two,three,four列为float类型

源文件名为sourcefile.txt

我用正则表达式,帮你把数据导入到SQLServer中了,完整的Java程序如下:

import java.io.BufferedReader;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.SQLException;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class CCA {
 //SQLServer
 private String driverName = "com.microsoft.jdbc.sqlserver.SQLServerDriver";//加载驱动程序  
 private String url = "jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=master";//设置数据库连接串  master为数据库名
 private String user = "sa";//数据库登录用户名  
 private String password = "root";//数据库登录密码  
 public Connection getConnection() {  
  try {  
   Class.forName(driverName);  
   return DriverManager.getConnection(url, user, password);  
  } catch (Exception e) {  
   e.printStackTrace();  
   return null;  
  }  
 }  
 public static void main(String[] args) {
  CCA dcm = new CCA();  
  String sql = "insert into temperature(group,layer,one,two,three,four) values(?,?,?,?,?,?)";
  Connection conn=null;
  PreparedStatement ps=null;
  BufferedReader br=null;
  try {
   conn = dcm.getConnection(); 
   br=new BufferedReader(new FileReader("sourcefile.txt"));
   String s="";
   String regex="(\\d+)\\s+(\\d+)\\s+(\\d+\\.\\d+)\\s+(\\d+\\.\\d+)\\s+(\\d+\\.\\d+)\\s+(\\d+\\.\\d+)";
   while((s=br.readLine())!=null){
    s=s.trim();
    Pattern p=Pattern.compile(regex);
    Matcher m=p.matcher(s);
    if(m.matches()){
     //System.out.println(m.group(1)+" "+m.group(2)+" "+m.group(3)+" "+m.group(4)+" "+m.group(5)+" "+m.group(6));
     ps=conn.prepareStatement(sql);
     ps.setInt(1, Integer.parseInt(m.group(1))); 
     ps.setInt(2, Integer.parseInt(m.group(2))); 
     ps.setFloat(3, Float.parseFloat(m.group(3))); 
     ps.setFloat(4, Float.parseFloat(m.group(4))); 
     ps.setFloat(5, Float.parseFloat(m.group(5))); 
     ps.setFloat(6, Float.parseFloat(m.group(6))); 
     ps.executeUpdate();
    }
   }
   System.out.println("数据插入完毕!");
  } catch (FileNotFoundException e) {
   e.printStackTrace();
  } catch (IOException e) {
   e.printStackTrace();
  }catch (SQLException e) { 
    e.printStackTrace();
   }finally{
   try {
    ps.close();
    conn.close();
    br.close();
   } catch (Exception e) {
    e.printStackTrace();
   }
  }
 }
}

运行结果:

数据插入完毕!

vision_Yiu
推荐于2018-04-09 · TA获得超过349个赞
知道小有建树答主
回答量:251
采纳率:100%
帮助的人:74.1万
展开全部
我看你这个文本格式有点像csv文本格式,你试下将txt格式改成csv然后用excel打开能不能看到数据分列展示,如何可以,那么恭喜你这个csv文件可以直接导入到sqlserver
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式