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

注意:.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());
	       }
	   }
	 } */
	
	

}

你可能感兴趣的:(数据库,java)