Java中将txt文件导入到mysql基本的思路, *** 作流获取到文件具体信息,然后将信息拼接成mysql插入到数据库中。
1.先读取txt文件的内容,文件内容可以按照一定的规律进行排列,这样程序读取就方便。
2.java.io.IOExceptionimportjava.io.RandomAccessFileimportjava.io.UnsupportedEncodingException。
3.import java.text.SimpleDateFormat,import java.util.Date, import java.util.regex.Matcher,
import java.util.regex.Pattern
4.import com.config.Constantsimport com.utils.UUIDUtil
5.public static final String TXT_FILE_PATH =“D://testUser.txt。
public static final String openFileStyle =“r”。
如何把java打印导入mysqlJava中将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 = "PTMD0309"
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()
}
}
}
MySql导出数据库的命令如下:Sql代码
mysqldump -uusername -ppassword -hhost -Pport exportDatabaseName >exportPath
mysqldump -uusername -ppassword -hhost -Pport exportDatabaseName >exportPath
利用Java调用命令窗口执行命令来进行MySql导入数据库一般分三步走:
第一步:登录Mysql数据库,在登录数据库的时候也可以指定登录到哪个数据库,如果指定了则可以跳过第二步;
第二步:切换数据库到需要导入的目标数据库
第三步:利用命令开始导入
在进行导出的时候,需要注意命令语句的运行环境,如果已经将mysql安装路径下的bin加入到
系统的path变量中,那么在导出的时候可以直接使用命令语句,否则,就需要在执行命令语句的
时候加上命令所在位置的路径,即mysql安装路径想的bin下的mysqldump命令。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)