一区二区三区日韩精品-日韩经典一区二区三区-五月激情综合丁香婷婷-欧美精品中文字幕专区

分享

java+mysql實(shí)現(xiàn)保存圖片到數(shù)據(jù)庫(kù),以及讀取數(shù)據(jù)庫(kù)存儲(chǔ)的圖片

 收藏小管 2017-07-10

一:建表

 

二:獲取數(shù)據(jù)庫(kù)連接

1:導(dǎo)入mysql的驅(qū)動(dòng)jar包,mysql-connector-java-5.1.8-bin.jar

2:寫代碼連接數(shù)據(jù)庫(kù),如下:

復(fù)制代碼
 1 /**
 2  * 
 3  */
 4 package com.hlcui.file;
 5 
 6 import java.sql.Connection;
 7 import java.sql.DriverManager;
 8 import java.sql.SQLException;
 9 
10 /**
11  * @author Administrator
12  * 
13  */
14 public class DBUtil {
15     // 定義數(shù)據(jù)庫(kù)連接參數(shù)
16     public static final String DRIVER_CLASS_NAME = "com.mysql.jdbc.Driver";
17     public static final String URL = "jdbc:mysql://localhost:3306/test";
18     public static final String USERNAME = "root";
19     public static final String PASSWORD = "root";
20 
21     // 注冊(cè)數(shù)據(jù)庫(kù)驅(qū)動(dòng)
22     static {
23         try {
24             Class.forName(DRIVER_CLASS_NAME);
25         } catch (ClassNotFoundException e) {
26             System.out.println("注冊(cè)失??!");
27             e.printStackTrace();
28         }
29     }
30 
31     // 獲取連接
32     public static Connection getConn() throws SQLException {
33         return DriverManager.getConnection(URL, USERNAME, PASSWORD);
34     }
35 
36     // 關(guān)閉連接
37     public static void closeConn(Connection conn) {
38         if (null != conn) {
39             try {
40                 conn.close();
41             } catch (SQLException e) {
42                 System.out.println("關(guān)閉連接失??!");
43                 e.printStackTrace();
44             }
45         }
46     }
47     //測(cè)試
48     public static void main(String[] args) throws SQLException {
49         System.out.println(DBUtil.getConn());
50     }
51 
52 }
復(fù)制代碼

三:封裝讀取圖片的流

復(fù)制代碼
 1 /**
 2  * 
 3  */
 4 package com.hlcui.file;
 5 
 6 import java.io.File;
 7 import java.io.FileInputStream;
 8 import java.io.FileOutputStream;
 9 import java.io.IOException;
10 import java.io.InputStream;
11 
12 /**
13  * @author Administrator
14  * 
15  */
16 public class ImageUtil {
17 
18     // 讀取本地圖片獲取輸入流
19     public static FileInputStream readImage(String path) throws IOException {
20         return new FileInputStream(new File(path));
21     }
22 
23     // 讀取表中圖片獲取輸出流
24     public static void readBin2Image(InputStream in, String targetPath) {
25         File file = new File(targetPath);
26         String path = targetPath.substring(0, targetPath.lastIndexOf("/"));
27         if (!file.exists()) {
28             new File(path).mkdir();
29         }
30         FileOutputStream fos = null;
31         try {
32             fos = new FileOutputStream(file);
33             int len = 0;
34             byte[] buf = new byte[1024];
35             while ((len = in.read(buf)) != -1) {
36                 fos.write(buf, 0, len);
37             }
38             fos.flush();
39         } catch (Exception e) {
40             e.printStackTrace();
41         } finally {
42             if (null != fos) {
43                 try {
44                     fos.close();
45                 } catch (IOException e) {
46                     e.printStackTrace();
47                 }
48             }
49         }
50     }
51 }
復(fù)制代碼

四:實(shí)現(xiàn)圖片(本地、數(shù)據(jù)庫(kù)互相傳輸)

復(fù)制代碼
 1 /**
 2  * 
 3  */
 4 package com.hlcui.file;
 5 
 6 import java.io.FileInputStream;
 7 import java.io.InputStream;
 8 import java.sql.Connection;
 9 import java.sql.PreparedStatement;
10 import java.sql.ResultSet;
11 import java.sql.SQLException;
12 
13 /**
14  * @author Administrator 測(cè)試寫入數(shù)據(jù)庫(kù)以及從數(shù)據(jù)庫(kù)中讀取
15  */
16 public class ImageDemo {
17 
18     // 將圖片插入數(shù)據(jù)庫(kù)
19     public static void readImage2DB() {
20         String path = "D:/1.png";
21         Connection conn = null;
22         PreparedStatement ps = null;
23         FileInputStream in = null;
24         try {
25             in = ImageUtil.readImage(path);
26             conn = DBUtil.getConn();
27             String sql = "insert into photo (id,name,photo)values(?,?,?)";
28             ps = conn.prepareStatement(sql);
29             ps.setInt(1, 1);
30             ps.setString(2, "Tom");
31             ps.setBinaryStream(3, in, in.available());
32             int count = ps.executeUpdate();
33             if (count > 0) {
34                 System.out.println("插入成功!");
35             } else {
36                 System.out.println("插入失敗!");
37             }
38         } catch (Exception e) {
39             e.printStackTrace();
40         } finally {
41             DBUtil.closeConn(conn);
42             if (null != ps) {
43                 try {
44                     ps.close();
45                 } catch (SQLException e) {
46                     e.printStackTrace();
47                 }
48             }
49         }
50 
51     }
52 
53     // 讀取數(shù)據(jù)庫(kù)中圖片
54     public static void readDB2Image() {
55         String targetPath = "D:/image/1.png";
56         Connection conn = null;
57         PreparedStatement ps = null;
58         ResultSet rs = null;
59         try {
60             conn = DBUtil.getConn();
61             String sql = "select * from photo where id =?";
62             ps = conn.prepareStatement(sql);
63             ps.setInt(1, 1);
64             rs = ps.executeQuery();
65             while (rs.next()) {
66                 InputStream in = rs.getBinaryStream("photo");
67                 ImageUtil.readBin2Image(in, targetPath);
68             }
69         } catch (Exception e) {
70             e.printStackTrace();
71         } finally {
72             DBUtil.closeConn(conn);
73             if (rs != null) {
74                 try {
75                     rs.close();
76                 } catch (SQLException e) {
77                     e.printStackTrace();
78                 }
79             }
80             if (ps != null) {
81                 try {
82                     ps.close();
83                 } catch (SQLException e) {
84                     e.printStackTrace();
85                 }
86             }
87 
88         }
89     }
90     //測(cè)試
91     public static void main(String[] args) {
92         //readImage2DB();
93         readDB2Image();
94     }
95 }
復(fù)制代碼

以上代碼均已經(jīng)驗(yàn)證!

    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購(gòu)買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶 評(píng)論公約

    類似文章 更多

    欧美日韩亚洲国产综合网| 91人妻人澡人人爽人人精品| 欧美胖熟妇一区二区三区| 亚洲精选91福利在线观看| 黄色av尤物白丝在线播放网址| 国产av天堂一区二区三区粉嫩| 中国美女草逼一级黄片视频| 91播色在线免费播放| 亚洲伦片免费偷拍一区| 国产精品一区二区视频大全| 国产精品不卡一区二区三区四区 | 国产亚洲成av人在线观看| 邻居人妻人公侵犯人妻视频| 国产一区二区在线免费| 日韩精品在线观看完整版| 成人亚洲国产精品一区不卡 | 中文字幕在线区中文色| 国产精品一区二区三区黄色片| 成年女人午夜在线视频| 老司机精品视频在线免费| 免费亚洲黄色在线观看| 99日韩在线视频精品免费| 好吊妞视频免费在线观看| 国产黄色高清内射熟女视频| 五月综合婷婷在线伊人| 久久机热频这里只精品| 国产欧美一区二区久久 | 国产又粗又猛又大爽又黄| 国产麻豆精品福利在线| 老司机精品视频免费入口| 不卡中文字幕在线视频| 免费在线观看激情小视频| 国产91色综合久久高清| 中文字幕人妻一区二区免费| 日韩日韩欧美国产精品| 国产亚洲中文日韩欧美综合网| 久久国产人妻一区二区免费| 日韩偷拍精品一区二区三区| 免费观看日韩一级黄色大片| 精品人妻av区波多野结依| 国产不卡免费高清视频|