⑴ 怎么用java实现mysql数据库的导入导出
使用Java实现对MySql数据库的导入与导出
packagecom.project.ajaxs;
importjava.io.BufferedReader;
importjava.io.FileInputStream;
importjava.io.FileOutputStream;
importjava.io.InputStream;
importjava.io.InputStreamReader;
importjava.io.OutputStream;
importjava.io.OutputStreamWriter;
importjava.util.Calendar;
importjava.util.Date;
publicclassBakMysql{
//main的方法,主要是我用于测试的,是想着取得CLASS的路径,然后备份的文件写在服务器的类路径下
publicstaticvoidmain(String[]args){
BakMysqlbk=newBakMysql();
bk.backup();
//bk.load();
}
//backup方法是备份数据库到服务器地址
publicvoidbackup(){
Calendarnow=Calendar.getInstance();
Stringname=now.getTime()+""+(now.getTime().getMonth()+1)+""+now.getTime().getDate();
Stringfilename=name.substring(24)+""+name.substring(11,13)+""+name.substring(14,16)+""+name.substring(17,19);
try{
StringfilePath="e:/project"+filename+".sql";
Runtimert=Runtime.getRuntime();
//调用mysql的cmd:
Processchild=rt.exec("C:/ProgramFiles/MySQL/MySQLServer5.0/bin/mysqlmp.exe-uroot-p8095longchunproject");//设置导出编码为utf8。这里必须是utf8
//注意这一句,是指运行mysqlmp命令,后面跟的是登录名和登录的密码,接着后面的是指备份的数据库的名字,到此结束,以此生成一个执行的进程,取得此进程的输出流到我们要备份的文件
//把进程执行中的控制台输出信息写入.sql文件,即生成了备份文件。注:如果不对控制台信息进行读出,则会导致进程堵塞无法运行
InputStreamin=child.getInputStream();//控制台的输出信息作为输入流
InputStreamReaderxx=newInputStreamReader(in,"utf-8");//设置输出流编码为utf8。这里必须是utf8,否则从流中读入的是乱码
StringinStr;
StringBuffersb=newStringBuffer("");
StringoutStr;
//组合控制台输出信息字符串
BufferedReaderbr=newBufferedReader(xx);
while((inStr=br.readLine())!=null){
sb.append(inStr+" ");
}
outStr=sb.toString();//备份出来的内容是一个字条串
//要用来做导入用的sql目标文件:
FileOutputStreamfout=newFileOutputStream(filePath);
OutputStreamWriterwriter=newOutputStreamWriter(fout,"utf8");
writer.write(outStr);//写文件
//注:这里如果用缓冲方式写入文件的话,会导致中文乱码,用flush()方法则可以避免
writer.flush();
//别忘记关闭输入输出流
in.close();
xx.close();
br.close();
writer.close();
fout.close();
}catch(Exceptione){
e.printStackTrace();
}
}
//数据库的导入
publicvoidload(){
try{
StringfPath="e:/aa.sql";
Runtimert=Runtime.getRuntime();
Processchild=rt.exec("C:/ProgramFiles/MySQL/MySQLServer5.0/bin/mysqladmin.exe-uroot-p8095longchuncreateproject");
Processchild1=rt.exec("C:/ProgramFiles/MySQL/MySQLServer5.0/bin/mysql.exe-uroot-p8095longchunproject");
OutputStreamout=child1.getOutputStream();//控制台的输入信息作为输出流
StringinStr;
StringBuffersb=newStringBuffer("");
StringoutStr;
BufferedReaderbr=newBufferedReader(newInputStreamReader(newFileInputStream(fPath),"utf-8"));
while((inStr=br.readLine())!=null){
sb.append(inStr+" ");
}
outStr=sb.toString();
OutputStreamWriterwriter=newOutputStreamWriter(out,"utf8");
writer.write(outStr);
//注:这里如果用缓冲方式写入文件的话,会导致中文乱码,用flush()方法则可以避免
writer.flush();
out.close();
br.close();
writer.close();
}catch(Exceptione){
e.printStackTrace();
}
}
}
原文来自http://www.cnblogs.com/anxz/archive/2012/11/19/2777782.html
⑵ java(eclipse) 文件导入导出
导入:
直接选择常规里面的
现有项目到工作空间中
而导出:
就要看你需要导出成Java项目
还是
jar包
如果是exe可执行文件
就需要先导出成jar然后借助三方软件如exe4j导出即可
⑶ java如何实现导入和导出功能
看你要导入什么了,什么格式,是电话还是其他软件或者资料,只要兼容就能导入导出的。
⑷ eclipse里写好的小Java程序怎么导出可运行的小程序
1、打开eclipse,点击File->New->Project,选择java->java project,效果如图所示
⑸ java使用什么技术实现excel数据的批量导入导出
java使用第三方工具包POI技术实现excel数据的批量导入导出。
举例如下:
1、下载apache的相关jar包。poi-ooxml-3.6.jar xmlbeans-2.3.0.jar等,如图:
2、编写相关的读写类
/**
* 读取xls文件内容
*/
private
List<XlsDto> readXls() throws
IOException {
InputStream is = new
FileInputStream("test.xls");
HSSFWorkbook hssfWorkbook = new
HSSFWorkbook(is);
XlsDto xlsDto = null;
List<XlsDto> list = new
ArrayList<XlsDto>();
// 循环工作表Sheet
for
(int numSheet = 0; numSheet < hssfWorkbook.getNumberOfSheets(); numSheet++) {
HSSFSheet hssfSheet = hssfWorkbook.getSheetAt(numSheet);
if
(hssfSheet == null) {
continue;
}
// 循环行Row
for
(int rowNum = 1; rowNum <= hssfSheet.getLastRowNum(); rowNum++) {
HSSFRow hssfRow = hssfSheet.getRow(rowNum);
if
(hssfRow == null) {
continue;
}
xlsDto = new
XlsDto();
// 循环列Cell
// 0学号 1姓名 2学院 3课程名 4 成绩
// for (int cellNum = 0; cellNum <=4; cellNum++) {
HSSFCell xh = hssfRow.getCell(0);
if
(xh == null) {
continue;
}
xlsDto.setXh(getValue(xh));
HSSFCell xm = hssfRow.getCell(1);
if
(xm == null) {
continue;
}
xlsDto.setXm(getValue(xm));
HSSFCell yxsmc = hssfRow.getCell(2);
if
(yxsmc == null) {
continue;
}
xlsDto.setYxsmc(getValue(yxsmc));
HSSFCell kcm = hssfRow.getCell(3);
if
(kcm == null) {
continue;
}
xlsDto.setKcm(getValue(kcm));
HSSFCell cj = hssfRow.getCell(4);
if
(cj == null) {
continue;
}
xlsDto.setCj(Float.parseFloat(getValue(cj)));
list.add(xlsDto);
}
}
return
list;
}
3、导出就是输入到一个新的excel文件里面
public void writeXls(List<Student> list, String path) throws Exception {
if (list == null) {原始数据为空,直接返回
return;
}
int countColumnNum = list.size();//设置列数
HSSFWorkbook book = new HSSFWorkbook(); //创建工作表对象
HSSFSheet sheet = book.createSheet("studentSheet");
// 创建第一行
HSSFRow firstRow = sheet.createRow(0);
HSSFCell[] firstCells = new HSSFCell[countColumnNum];
//创建表头
String[] options = { "no", "name", "age", "score" };
//循环数据域
for (int j = 0; j < options.length; j++) {
firstCells[j] = firstRow.createCell(j);
firstCells[j].setCellValue(new HSSFRichTextString(options[j]));
}
//处理每一个cell的值
for (int i = 0; i < countColumnNum; i++) {
HSSFRow row = sheet.createRow(i + 1);
Student student = list.get(i);
for (int column = 0; column < options.length; column++) {
HSSFCell no = row.createCell(0);
HSSFCell name = row.createCell(1);
HSSFCell age = row.createCell(2);
HSSFCell score = row.createCell(3);
no.setCellValue(student.getNo());
name.setCellValue(student.getName());
age.setCellValue(student.getAge());
score.setCellValue(student.getScore());
}
}
File file = new File(path);
OutputStream os = new FileOutputStream(file);
System.out.println(Common.WRITE_DATA + path);
book.write(os);
os.close();
}