Java 向SQL Server插入文件数据
package sqlserver;
import java.util.Date;
import java.util.UUID; import java.text.SimpleDateFormat;
import java.io.BufferedOutputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.PrintStream;
import java.sql.*; public class sqlserver {
static String uuid=null;
//////////////////////////////////////////////////////
public static void main(String[] args) {
FileOutputStream bos = null;
try {
bos = new FileOutputStream("F:/output.txt");
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
System.setOut(new PrintStream(bos));
System.out.println(insertData());
// getData();
} public static Connection MSSQLConnection(){
String driverName = "com.microsoft.sqlserver.jdbc.SQLServerDriver"; // 加载JDBC驱动
String dbURL = "jdbc:sqlserver://localhost:1433; DatabaseName=filesdata"; // 连接服务器和数据库test
String userName = "sa"; // 默认用户名
String userPwd = "sa"; // 密码
Connection dbConn = null;
SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
try {
Class.forName(driverName);
dbConn = DriverManager.getConnection(dbURL, userName, userPwd);
System.out.println(df.format(new Date())+" "+"数据库连接成功。"); // 如果连接成功
return dbConn; // 控制台输出Connection
// Successful!
} catch (Exception e) {
e.printStackTrace();
}
return null;
} // read the file and insert into the video table;
static String insertData() {
int isFilesFound=0;
SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
Date date2 = new Date();
Connection dbConn = null;
dbConn=MSSQLConnection();
//UUID uuid = UUID.randomUUID();
String f_id = UUID.randomUUID().toString();//用来生成数据库的主键id非常不错..
uuid=f_id;
File file = new File("F:/工作文件/PSD.rar");
System.out.println(df.format(new Date())+" "+"正在处理文件:"+file.getName()+" UUID:"+uuid);
FileInputStream fis = null;
try{
fis = new FileInputStream(file);
isFilesFound=1;
} catch(FileNotFoundException e){
System.out.println(df.format(new Date())+" "+"未找到文件。"); }
if(isFilesFound==1){
try {
System.out.println(df.format(new Date())+" "+"开始向数据库写入文件。");
PreparedStatement ps = dbConn.prepareStatement("Insert into files (f_id,f_name,f_content,f_date) values (?,?,?,?)");
ps.setString(1,f_id);
ps.setString(2,file.getName());
ps.setBinaryStream(3,fis,(int)file.length());
ps.setDate(4,new java.sql.Date(date2.getTime())); System.out.println(df.format(new Date())+" "+"正在写入..。");
ps.executeUpdate();
ps.close();
try{
fis.close();
System.out.println(df.format(new Date())+" "+"文件已写入数据表且数据流已关闭。");
}catch(IOException e){
System.out.println(df.format(new Date())+" "+"数据流无法关闭。");
}
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
try {
dbConn.close();
System.out.println(df.format(new Date())+" "+"关闭数据库连接.");
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return df.format(new Date())+" 插入数据完成。";
} // get the data file from database;
static String getData(){
Connection dbcon = null;
SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
try{
dbcon = MSSQLConnection();
//OutputStream out = new FileOutputStream("d:/1.exe");
Statement st = dbcon.createStatement();
ResultSet rs = st.executeQuery("select * from files where f_id = 'f7453b56-92f2-4aa9-8781-6ca85ab3f0ce'");
while(rs.next()){
java.io.InputStream fi=rs.getBinaryStream("f_content");
File file=new File("d:/1.zip");
FileOutputStream fo = new FileOutputStream(file);
BufferedOutputStream bo = new BufferedOutputStream(fo);
byte[] buff = new byte[1024];
System.out.println(df.format(new Date())+" "+"正在从数据库写入本地...");
while((fi.read(buff))>0)
{
bo.write(buff);
}
System.out.println(df.format(new Date())+" "+"写入完毕.");
bo.close();
fo.close();
fi.close();
System.out.println(df.format(new Date())+" "+"关闭读写流.");
}
}catch(Exception ex){
ex.printStackTrace();
}finally{
if (dbcon!=null){
try{
dbcon.close();
System.out.println(df.format(new Date())+" "+"关闭数据库连接.");
}catch(Exception ex){
ex.printStackTrace();
}
}
dbcon = null;
}
return null; }
//////////////////////////////////////////////////////
}
Java 向SQL Server插入文件数据的更多相关文章
- SQL Server插入中文数据出现乱码问题
我在用sql server存储数据的时候发现中文全变成了问号,我知道中文是特殊的编码.所以在数据库设计的时候包含中文的字段就是nvarchar,但是还是成了问号 好了,不多说了,解决方案如下: 在存储 ...
- SQL Server插入中文数据后出现乱码
今天在做项目的过程中遇到如标题的问题,情况如下图: 数据库使用的是SQL Server2012版本,创建表的脚本如下: CREATE TABLE [dbo].[Type]( [TypeId] INT ...
- sql server 2005 大数据量插入性能对比
sql server 2005大数据量的插入操作 第一,写个存储过程,传入参数,存储过程里面是insert操作, 第二,用System.Data.SqlClient.SqlBulkCopy实例方法, ...
- sql server 与oracle数据互导的一种思路--sql server链接服务器
思路:通过在sql server数据库中添加链接服务器,可以远程查询oracle数据库的表环境准备,安装sql server数据库,并安装好oracle驱动,在配置好tnsname文件中配置好orac ...
- SQL Server :理解数据页结构
原文:SQL Server :理解数据页结构 我们都很清楚SQL Server用8KB 的页来存储数据,并且在SQL Server里磁盘 I/O 操作在页级执行.也就是说,SQL Server 读取或 ...
- 01. SQL Server 如何读写数据
原文:01. SQL Server 如何读写数据 一. 数据读写流程简要SQL Server作为一个关系型数据库,自然也维持了事务的ACID特性,数据库的读写冲突由事务隔离级别控制.无论有没有显示开启 ...
- SQL Server 如何读写数据
01. SQL Server 如何读写数据 一. 数据读写流程简要SQL Server作为一个关系型数据库,自然也维持了事务的ACID特性,数据库的读写冲突由事务隔离级别控制.无论有没有显示开启事 ...
- SQL Server数据库文件与文件组总结
文件和文件组概念 关于文件与文件组,简单概括如下,详情请参考官方文档"数据库文件和文件组Database Files and Filegroups"或更多相关资料: 数据文件概念: ...
- Java与SQL Server, MySql, Oracle, Access的连接方法以及一些异常解决
Java与SQL Server, MySql, Oracle, Access的连接方法以及一些异常解决 I. 概述 1.1 JDBC概念 JDBC(Java Database Connectivity ...
随机推荐
- 遇到个奇怪的问题,同时开启本地和远程两个事务,远程事务是sql2000没问题,是sql2008的不报错,但是写不上数据
遇到个奇怪的问题,同时开启本地和远程两个事务,远程事务是sql2000没问题,是sql2008的不报错,但是写不上数据. 倒腾了4.5天,找到最终的解决办法:直接调用AdoConnection.exe ...
- Smail语法
1.数据类型 2.函数: Func-Name (Para-Type1Para-Type2Para-Type3...)Return-Type 注意参数与参数之间没有任何分隔符 3.函数调用: 4.关于s ...
- hdu 3842 Machine Works(cdq分治维护凸壳)
题目链接:hdu 3842 Machine Works 详细题解: HDU 3842 Machine Works cdq分治 斜率优化 细节比较多,好好体会一下. 在维护斜率的时候要考虑x1与x2是否 ...
- 安卓平台 全面支持软解和硬解的SDK-Demo源代码开放
专业做视频编解码的SDK开发工作. 2015年12月1日10:46:55: 更新到1.5.0版本 功能列表: 基本播放: 1,正常播放, 支持MP4,FLV,AVI,TS,3GP,RMVB,WM,WM ...
- Number Sequence (HDU 1711)
Number Sequence Time Limit: 10000/5000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) ...
- metasploit nessus & db_autopwn
nessus官网:https://www.tenable.com/products/nessus-vulnerability-scanner 下载地址:https://www.tenable.com/ ...
- 妹纸UI
感觉这个ui非常适合动态网站的构建虽然jquery很好了.但是我相信有了它会更好.http://amazeui.org/getting-started.我就加了很多在自己的项目中体验还是很不错的.可以 ...
- springmvc+maven
http://blog.csdn.net/zht666/article/details/8673609/
- sendUserActionEvent() mView== null after clicking on button
this is not a problem related to your code, but related to S4 android version. Same question has bee ...
- HTTPS详解
HTTPS(Hypertext Transfer Protocol over Secure Socket Layer,基于SSL的HTTP协议)使用了HTTP协议,但HTTPS使用不同于HTTP协议的 ...