问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

用java如何将txt文件导入mysql5

发布网友 发布时间:2023-09-21 00:19

我来回答

5个回答

热心网友 时间:2024-12-14 09:07

Java中将txt文件导入到mysql基本的思路就是先使用I/O操作流获取到文件具体信息,然后将信息拼接成mysql插入到数据库中,示例如下:
1、先读取txt文件的内容,文件内容可以按照一定的规律进行排列,这样程序读取就方便。
import java.io.IOException;
import java.io.RandomAccessFile;
import java.io.UnsupportedEncodingException;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
import com.config.Constants;
import com.utils.UUIDUtil;
/**
* txt文本数据 采集类
*
* @see
*/
public class UserDataGather {
public static final String TXT_FILE_PATH = "D://testUser.txt";
public static final String openFileStyle = "r";
public static final String fieldLimitChar = ".";
public static final int fieldAllCount = 1;
public static final String default_password = "P*0309";
public Integer count = 0;
private String FltNum;
public String UUID;
/**
* 功能:解析文本文件
*/
public void loadFile() {
try {
RandomAccessFile raf = new RandomAccessFile(TXT_FILE_PATH, openFileStyle);
String line_record = raf.readLine();
while (line_record != null) {
// 解析每一条记录
parseRecord(line_record);
line_record = raf.readLine();
}
} catch (Exception e) {
e.printStackTrace();
}
}
/**
* 功能:具体解析每一条记录,这里可以增加很多对记录的解析判断条件,如是否为字母、
*/
@SuppressWarnings("static-access")
private void parseRecord(String line_record) throws Exception {
//拆分记录
// String[] fields = line_record.split(fieldLimitChar);
// System.out.println(tranStr(line_record)+"Ok");
String temp = line_record.substring(line_record.indexOf(fieldLimitChar, 0), line_record.indexOf(" ", line_record.indexOf(fieldLimitChar, 0)));
// if (fields.length == fieldAllCount) {
//
FltNum = tranStr(temp).trim().replace(fieldLimitChar,"").replace(" ","");
// System.out.println(FltNum);
if(FltNum.length()>=4){
if(!isNumeric(FltNum)){
// System.out.println(generateSql(FltNum)[0].toString());
// System.out.println(generateSql(FltNum)[1].toString());
count++;
String[] temp1 = generateSql(FltNum);
MyFile mf = new MyFile();
mf.creatTxtFile("insertPinTuUserSql");
mf.writeTxtFile(temp1[0].toString());
mf.creatTxtFile("UUID");
mf.writeTxtFile(temp1[1].toString()+",");
}
}else if(FltNum.length() ==2 || FltNum.length() ==3){
if(!isNumeric(FltNum)){
if(!isTwoCharacter(FltNum)){
// System.out.println(generateSql(FltNum)[0].toString());
// System.out.println(generateSql(FltNum)[1].toString());
count++;
String[] temp2 = generateSql(FltNum);
MyFile mf = new MyFile();
mf.creatTxtFile("insertPinTuUserSql");
mf.writeTxtFile(temp2[0].toString());
mf.creatTxtFile("UUID");
mf.writeTxtFile(temp2[1].toString()+",");
}
}
}
// InsertDB db = new InsertDB();
//
// db.insertDB(FltNum);
// }
}
@SuppressWarnings("static-access")
public String[] generateSql(String userName) throws IOException{
StringBuffer sbf = new StringBuffer();
String[] str = new String[2];
String uuid = UUIDUtil.getUUID();
sbf.append("insert into user values('"+uuid+"','" + userName +"','"+default_password+"',"+Constants.ENABLED+","+Constants.NUllDELETE+","+Constants.AUDITING+",'"+uuid+"@164.com','"+formatDateTime()+"',"+Constants.REGEDIT_USER+");/n");
sbf.append("insert into users values('"+uuid+"',"+ null+","+Constants.MALE+","+null+","+null+",'60.176.36.250','"+formatDateTime()+"',"+null+","+null+","+null+","+null+","+null+","+null+",0,"+null+","+null+",0,0,0,'"+formatDateTime()+"','1036',0,"+null+","+null+","+null+","+null+","+null+",'11',"+null+","+null+","+null+","+null+","+null+");/n");
sbf.append("insert into user_user_group values('"+uuid+"','"+ uuid +"','"+Constants.PERSONAL_USER+"');/n");
UUID = uuid;
str[0]=sbf.toString();
str[1]=UUID;
return str;
}
public String formatDateTime(){
Date date = new Date();
/**
* 时间格式化2009-12-31 09:04:31
*/
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
System.out.println(sdf.format(date));
return sdf.format(date);
}
private String tranStr(String oldstr) {
String newstr = "";
try {
newstr = new String(oldstr.getBytes("ISO-8859-1"), "utf-8");
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
}
return newstr;
}
public static boolean isNumeric(String str){
Pattern pattern = Pattern.compile("[0-9]*");
return pattern.matcher(str).matches();
}
public static boolean isTwoCharacter(String str){
String regEx="[a-zA-Z0-9]{2,3}";
Pattern p=Pattern.compile(regEx);
Matcher m=p.matcher(str);
return m.find();
}
}
2、连接数据库执行数据导入
import java.sql.DriverManager;
import java.sql.ResultSet;
import com.mysql.jdbc.Connection;
import com.mysql.jdbc.Statement;
/**
* 插入数据库 生成sql语句
*
* created on Mar 8, 2010
* @see
*/
public class InsertDB {
private static final String user = "pintu";
private static final String pwd = "pintu";
private static final String url = "jdbc:mysql://192.168.10.6:3306/pintu";
private static final String driver = "com.mysql.jdbc.Driver";
public static Connection getCon() {
Connection con = null;
try {
Class.forName(driver).newInstance();
con = (Connection) DriverManager.getConnection(url, user, pwd);
if (con != null) {
System.out.println("你已连接到数据库:" + con.getCatalog());
}
} catch (Exception e) {
System.out.println("连接数据库失败!");
e.printStackTrace();
}
return con;
}
public boolean insertDB(String FltNum) {
Connection con = null;
Statement stm = null;
boolean flag = false;
String sql = "insert into t_FltPsgInfo values('" + FltNum +
// "','"
// + FltLine + "','" + FltDate + "','" + PsgName + "','" + PsgType
//
// + "','" + PsgSex + "','" + PsgCab + "','" + PsgSeatNo + "','"
//
// + PsgInfo +
"')";
try {
con = getCon();
stm = (Statement) con.createStatement();
int i = stm.executeUpdate(sql);
if (i > 0) {
flag = true;
System.out.println(flag + "插入数据成功!");
}
} catch (Exception e) {
flag = false;
e.printStackTrace();
} finally {
close(null, stm, con);
}
return flag;
}
//关闭相关连接
public void close(ResultSet rs, Statement stm, Connection con) {
if (rs != null)
try {
rs.close();
} catch (Exception e) {
e.printStackTrace();
}
if (stm != null)
try {
stm.close();
} catch (Exception e) {
e.printStackTrace();
}
if (con != null)
try {
con.close();
} catch (Exception e) {
e.printStackTrace();
}
}
}

热心网友 时间:2024-12-14 09:08

if(arg0.getActionCommand().equals("open"))
{
如果是从数据库读取,代码如下
JFileChooser jfc=new JFileChooser();
jfc.setDialogTitle("请选择文件...");
jfc.showOpenDialog(null);
jfc.setVisible(true);
String filename=jfc.getSelectedFile().getAbsolutePath();//文件路径
System.out.println(filename);
FileReader fr=null;
BufferedReader br=null;
try{
//读入文件
fr=new FileReader(filename);
br=new BufferedReader(fr);
String s;
String all=null;
//循环读取
while((s=br.readLine())!=null)
{
all+=s+"\r\n";
//System.out.println(s);
}
jta.setText(all);
}catch(Exception e)
{
e.printStackTrace();
}finally
{
try{
br.close();
fr.close();
}catch(Exception e)
{
e.printStackTrace();
}
}
}
else if(arg0.getActionCommand().equals("save"))
{
//如果是添加完再保存,代码如下
JFileChooser jfc=new JFileChooser();
jfc.setDialogTitle("保存");
jfc.setVisible(true);
jfc.showSaveDialog(null);
String filename=jfc.getSelectedFile().getAbsolutePath();

FileWriter fw=null;
BufferedWriter bw=null;
try{
fw=new FileWriter(filename);
bw=new BufferedWriter(fw);;
bw.write(this.jta.getText());
}catch(Exception e)
{
e.printStackTrace();
}finally
{
try{
bw.close();
fw.close();
}catch(Exception e)
{
e.printStackTrace();
}
}
}

热心网友 时间:2024-12-14 09:08

输入输出流可以读取txt文件,可以将txt存入数据库,不过关于文件的存储,还是保存到磁盘上比较好。读取快捷方便,只用保存路径即可,追问还是有点不太明白。可以再具体点么?

热心网友 时间:2024-12-14 09:09

页面导入txt文件 点击查询的时候调用 使用流解析txt文件获取内容并且将内容插入数据库的方法
这个很简单的 从网上搜索 java解析txt文件导入数据库 就行。

热心网友 时间:2024-12-14 09:10

下载个 navicat8_mysql_cs 工具 就可以导入
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
WIN7不会自动安装AHCI驱动是怎么回事?每次重装系统后都得我自己安装_百... 钉钉录播课能否查看观看时长 为什么城市轨道要有身高条件 城轨交通运营管理专业现身高吗 城市轨道交通运营管理这个专业是否有身高要求 读城轨专业需要什么条件 学习城轨专业需要什么条件? 城市轨道专业最低的身高要求多少?身高158毕业出来好找工作吗? 城轨专业要求身材吗 城轨专业有身高限制吗 用java如何将txt文件导入mysql?1 银行贷款最低多少利率1 如何用java实现把excel表中的数据导入到mysql数据...6 属蛇十月二十九出生的人命运怎么样1 夫妻属蛇的住楼层十层朝南好不好 我属蛇住五楼风水如何化解14 这个平台的兼职是真的还是假的?有做过的吗?19 松鼠妈妈采松果,晴天每天可以采20个,雨天每天只能采10个。...6 人的两个肾都因病切除了还能活吗?7 人如果两个肾都取了,还能不能保住命1 有女孩推荐玩风掠诀是啥意思? 人的两个肾都是什么功能?14 两个肾都没了还能活吗?2 Nokia/诺基亚 638 Lumia638 移动4G 功能怎样??有什么优缺点? 每天炒菜放点姜和大蒜对皮肤有好处吗 中国银行贷款年利率是多少301 属蛇适合住几楼好?我现在在12#9层,怎么样? 在非洲尼日利进口了一批木材到佛山澜石港口,单证齐全,但是因为... 启成网创兼职平台是真的吗138 我在学校看到很多传单,写着联创兼职俱乐部,上面很多兼职,有没...1 怎么用JAVA把Mysql数据库中的表的数据输出至文本文档中15 陌陌辉煌王府多少星光 国内最古朴的10大冷门古镇,适合一个人小住几日,您去过几个?_百度... 空白设备交接单一开始在谁手里,是船公司还是在货代手里 操作人...1 两个脾气都特别差的人能走到一块吗? 家在密云区西田各庄镇朝阳村要想去天安门怎么走 修改后有什么影响 home兼职平台是真的吗?26 请问出口时为了避免破旧的货柜, 货代(的车队)有权选择柜子吗...2 属蛇的买房买几层楼好13 银行贷款利率怎么算?403 Android.iOS和Windows Phone 三大操作系统的区别与市场分析 怎么才能联系到私人收藏家,我有藏品出售192 历史上火烧连营七百里是真的吗 从地铁天安门西站到卧和园怎么走 ...轻音少女平泽唯的那把吉他是什么牌子?什么型号?售价多少?还有在哪... 牛肉酱的做法大全 什么是导电物质? 华为mate50发烫严重 21联创兼职论坛真的能赚钱吗?他们提供免费教程,自己花380...15