java把数据从文件中读取存到数据库中

本文介绍了一种使用Java批量读取UTF-8编码的TXT文件,并利用TxQueryRunner类将数据插入数据库的方法。通过BufferedReader读取文件内容,使用StringTokenizer进行数据分割,最后调用TxQueryRunner的update方法执行批量插入操作。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

注意:.txt文档的内容要用utf-8编码,(即编码格式与数据库的编码一致),不然显示的中文会乱码!!!

import java.io.*;
import java.sql.SQLException;
import java.util.StringTokenizer;
import org.apache.commons.dbutils.QueryRunner;
import cn.itcast.jdbc.TxQueryRunner;
/**
 * TxQueryRunner是QueryRunner的子类!(commons-dbutils.jar)
 * 使用起来与QueryRunner相似
 * 我们的类支持事务!它的底层使用了JdbcUtils来获取连接
 * 
 * 简化jdcb的操作
 * QueryRunner的三个方法:
 * *update()-->insert、update、delete
 * *query()-->select
 * *batch()-->批处理
 * @author  zazazazaza
 *
 */
public class ReadInfoFile {

	
	public  static void  main(String[] args) throws IOException, SQLException {
		// TODO Auto-generated method stub
		File f=new File("e:\\salary.txt");
		BufferedReader reader=new BufferedReader(new InputStreamReader(new FileInputStream(f)));
		String s=null;
		StringTokenizer st=null;
		String []strings=new String[4];

		String sql="insert into salary(tnum,base_s,job_s,tot) values(?,?,?,?)";
		
		
		QueryRunner qr=new TxQueryRunner();
		
		
		int i;
		
		//读取文件,一行一行赋值
		while((s=reader.readLine())!=null)
		{
			st=new StringTokenizer(s," ");
			i=0;
			
			while(st.hasMoreElements()){
				//strings[i]=new String(st.nextToken().getBytes("utf-8"),"utf-8");//转码
				strings[i]=st.nextToken();
				i++;
			}
			
			/*for(int j=0;j<=i;j++)
			{
				params[j]=(Object)strings[j];
			}*/
			//params=new Object[]{strings[0],strings[1],strings[2],strings[3],strings[4]};
			
			
			qr.update(sql,(Object[])strings);//执行
			System.out.println("成功一条记录!");
			
		}
		
		reader.close();
	}
	
	
	/**
	 * 提取单词
	 */
/*	public class StringTokenizer Demo 
	{ 
	        public static void main(String[] args)
	   { 
	       String str=" hello,java,delphi,asp,php";
	       StringTokenizer st=new StringTokenizer(str,",");
	       while(st.hasMoreTokens()) { 
	       System.out.println(st.nextToken());
	       }
	   }
	 } */
	
	

}

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值