java文件保存数据库
A. 怎样用Java实现从文本文档中读取数据并存入数据库
不知道你要什么样的文本,文本中的内容是否是有格式的:
这里提供下思路,供参考:
1.文本文件,基本上式字符格式的了,可以用Readerio流
2.如果是格式化的文本,可以按数据的长度读取,readIntreadByte...
3.保存到数据库当然用JDBC了,如果你读取出来封装成POJO了,也可以选择OM框架
importjava.io.BufferedReader;
importjava.io.FileInputStream;
importjava.io.IOException;
importjava.io.InputStreamReader;
/**
*文件读取和写入数据库
*@author樊云升
*
*/
publicclassFilesReader{
publicFilesReader(){
}
/**
*读取文件内容
*@paramFILE
*@return
*/
publicStringre_content(StringFILE){
Stringcontent="";
try{
BufferedReaderbufRead=newBufferedReader(newInputStreamReader(newFileInputStream(FILE)));
Stringstr;
while((str=bufRead.readLine())!=null){
content+=str+" ";
}
}catch(IOExceptionioe){
ioe.printStackTrace();
}
returncontent;
}
/**
*将特定字符写入数据库中(原来我写的是重写文件,你这里这里将content写入数据库就OK)
*@parampath
*@return
*/
publicbooleanwriteFile(Stringcontent){
try{
//数据库写入代码
}catch(Exceptione){
out.close();
returnfalse;
}
returntrue;
}
publicstaticvoidmain(String[]args){
Stringcontent=newFilesReader().re_content("D:\AJAX.htm");
newFilesReader().writeFile(content);
}
}
B. 用java怎样把数据存到数据库中
只能写个大概的,要写数据到数据库中,先得在数据库中建库,库里建表,表里建字段,然后java里建立数据库连接,用SQL语言写数据到表中的字段
Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver").newInstance();
//String url="jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=数据库名"; //7.0、2000
String url="jdbc:sqlserver://localhost:1433;DatabaseName=数据库名"; //2005
Connection conn=null;
conn= DriverManager.getConnection(url,用户名,密码);
PreparedStatement pst=null;
pst=conn.prepareStatement("Insert Into grade(表名) Values (?)");
pst.setInt(1,你要写的整弄数据);
//pst.setString(2,你要写的字符串数据);
pst.addBatch();
pst.executeBatch();
C. java怎么解析指定的文件,并保存到数据库
如果txt,xls,按行读,用特定的字符作分隔符来拆分,读一行处理一行,直到结束,导入都是这样的.
给个txt的案例给你看看:
File logFile = new java.io.File("d://PartInputLog.txt"); //
ins = form.getFile().getInputStream(); //读取数据流
workBook = Workbook.getWorkbook(ins); //打开工作簿
sheet = workBook.getSheet(0); //打开SHEET
int rowSize = sheet.getRows(); //获取总行数
for(int i=0;i<rowSize;i++){
if(sheet.getCell(0, i).getContents().trim().equals(""))break;
String gysNo = sheet.getCell(0, i).getContents().trim();//获取第i行第1列的具体数据
String bpNo = sheet.getCell(1, i).getContents().trim(); //获取第i行第2列的具体数据
String numStr = sheet.getCell(2, i).getContents().trim(); //获取第i行第3列的具体数据
.................................................
}
//数据都可以读取到剩下的就在循环中插入了
D. java 将上传文件以二进制流保存在数据库表中的某个字段,怎么做啊
我是用apache的commons-fileupload-1.2.1组件做的,通过表单收集数据.
其实text只是传了一个路径path给了服务器,服务器通内过传过去的path来读取你上传的附件(用的容是文件输入/输出流),所以只需要判断传过来的path是否存在就可以了(file.exists()方法可行)。
fileupload组件对数据流的格式化进行了封装,FileUploadServlet.parse(HttpRequest request)的方法可以从请求头中获得你的上传的数据流,保存过程就简单了。详细的请上网搜索关键字:apache fileupload。一定能找到你想要的资料。
E. 如何用java程序定期保存数据库文件
sqlserver2012,你的数据库的mdf及ldf有没有复制过去?
你说的数据的相关文件是指你的jar包吧?
如果是,你看看你自己机器上的配置,例如classpath路径上的东西,一起复制到用户的机器上,设置好classpath等。
F. JAVA语言写文件存取,存到ORACLE数据库里怎么写
package com.jspdev.ch13;
import com.jspdev.util.*;
import java.sql.*;
import javax.sql.*;
import java.io.*;
import oracle.jdbc.driver.OracleResultSet;
import oracle.sql.BLOB;
public class BlobBean
{
Connection conn ;
/**
*构造方法,创建Connection对象,并且在数据库中添加一个表。
*/
public BlobBean()throws Exception
{
DriverManager.registerDriver(new oracle.jdbc.driver.OracleDriver());
conn = DriverManager.getConnection("jdbc:oracle:thin:[email protected]:1521:hellking", "system", "manager");
// conn.createStatement().execute("create table blobtable(blobvalue blob)");
}
/**
*写入Blob数据到数据库
*/
public void addBlob(String fileName)throws Exception
{
conn.setAutoCommit(false);
Statement stmt = conn.createStatement();
stmt.execute("insert into blobtable values (empty_blob())");
ResultSet rset = stmt.executeQuery("SELECT blobvalue FROM blobtable FOR UPDATE");
BLOB blob = null;
while (rset.next()) {
blob = ((OracleResultSet) rset).getBLOB(1);
System.out.println(blob.length());
}
File binaryFile = new File(fileName);
System.out.println(fileName+"'s length = " + binaryFile.length());
FileInputStream instream = new FileInputStream(binaryFile);
OutputStream outstream = blob.getBinaryOutputStream();
int chunk = blob.getChunkSize();
System.out.println("chunk size = " + chunk);
byte[] buffer = new byte[chunk];
int length = -1;
while ((length = instream.read(buffer)) != -1)
outstream.write(buffer, 0, length);
instream.close();
outstream.close();
conn.commit();
}
G. JAVA中存文件到ORACLE数据库里怎么做
参考代码如下:
public class InsertBlobData {
Connection con = null;
/**
* @param args
* @throws Exception
*/
public static void main(String[] args) throws Exception {
// TODO Auto-generated method stub
InsertBlobData data = new InsertBlobData();
data.insertBlogInfo("002jpg", "sdsdfdf", "2007-02-12", "002.jpg");
}
public void insertBlogInfo(String jmzh, String xm, String smsj,
String fileName) throws Exception {
// try {
con = ConnectionPoliceFactory.getFactory().getConnection();
// } catch (ClassNotFoundException e) {
// // TODO Auto-generated catch block
// e.printStackTrace();
// }
// 处理事务
boolean defaultCommit = con.getAutoCommit();
con.setAutoCommit(false);
Statement st = con.createStatement();
// 插入一个空对象
st.executeUpdate("insert into ksren_txxx(jmzh,xm,smsj,txsj) values('"
+ jmzh + "','" + xm + "',to_date('" + smsj
+ "','yyyy-mm-dd'),empty_blob())");
// 用for update方式锁定数据行
ResultSet rs = st
.executeQuery("select txsj from ksren_txxx where jmzh='"
+ jmzh + "' and xm='" + xm + "' for update");
if (rs.next()) {
// 得到.sql.Blob对象,然后Cast为oracle.sql.BLOB
oracle.sql.BLOB blob = (oracle.sql.BLOB) rs.getBlob(1);
// 到数据库的输出流
OutputStream outStream = blob.getBinaryOutputStream();
// 这里用一个文件模拟输入流
InputStream fin = new FileInputStream(new File(fileName));
// 将输入流写到输出流
byte[] b = new byte[blob.getBufferSize()];
int len = 0;
while ((len = fin.read(b)) != -1) {
outStream.write(b, 0, len);
// blob.putBytes(1,b);
}
// 依次关闭(注意顺序)
fin.close();
outStream.flush();
outStream.close();
con.commit();
/* 恢复原提交状态 */
con.setAutoCommit(defaultCommit);
con.close();
}
}
}
H. java文件路径怎么存入数据库
直接读写文件,再把读出来的文件内容格式化成json,再用jdbc、mybatis或者其他框架将json数据存入数据库。
I. java如何里将文件存到数据库中
java要实现将文件存到数据库中的话,你可以在数据库中使用blob类型,然后使用IO操作保存为字节类型,这样就可以进行传输和下载
J. java往数据库存储大文件
你好。请问什么数据库。oracle如下
数据库中提供了两种字段类型 Blob 和 Clob 用于存储大型字符串或二进制数据(如图片)。
Blob 采用单字节存储,适合保存二进制数据,如图片文件。
Clob 采用多字节存储,适合保存大型文本数据。
首先创建一个空 Blob/Clob 字段,再从这个空 Blob/Clob字段获取游标,例如下面的代码:
PreparedStatement ps = conn.prepareStatement( " insert into PICTURE(image,resume) values(?,?) " );
// 通过oralce.sql.BLOB/CLOB.empty_lob()构造空Blob/Clob对象
ps.setBlob( 1 ,oracle.sql.BLOB.empty_lob());
ps.setClob( 2 ,oracle.sql.CLOB.empty_lob());
ps.excuteUpdate();
ps.close();
// 再次对读出Blob/Clob句柄
ps = conn.prepareStatement( " select image,resume from PICTURE where id=? for update " );
ps.setInt( 1 , 100 );
ResultSet rs = ps.executeQuery();
rs.next();
oracle.sql.BLOB imgBlob = (oracle.sql.BLOB)rs.getBlob( 1 );
oracle.sql.CLOB resClob = (oracle.sql.CLOB)rs.getClob( 2 );
// 将二进制数据写入Blob
FileInputStream inStream = new FileInputStream( " c://image.jpg " );
OutputStream outStream = imgBlob.getBinaryOutputStream();
byte [] buf = new byte [ 10240 ];
int len;
while (len = inStream.read(buf) > 0 ) {
outStream.write(buf, 0 ,len);
}
inStream.close();
outStream.cloese();
// 将字符串写入Clob
resClob.putString( 1 , " this is a clob " );
// 再将Blob/Clob字段更新到数据库
ps = conn.prepareStatement( " update PICTURE set image=? and resume=? where id=? " );
ps.setBlob( 1 ,imgBlob);
ps.setClob( 2 ,resClob);
ps.setInt( 3 , 100 );
ps.executeUpdate();
ps.close();