当前位置:Gxlcms > 数据库问题 > 用JDBC处理二进制类文件

用JDBC处理二进制类文件

时间:2021-07-01 10:21:17 帮助过:23人阅读

四种不同大小的二进制类型,单位为字节

TinyBlob 255B

Blob 65k

MediumBlob 16M

LongBlob 4G

  1. <span style="color: #0000ff">package</span><span style="color: #000000"> jdbc_preparement;
  2. </span><span style="color: #0000ff">import</span><span style="color: #000000"> java.io.File;
  3. </span><span style="color: #0000ff">import</span><span style="color: #000000"> java.io.FileInputStream;
  4. </span><span style="color: #0000ff">import</span><span style="color: #000000"> java.io.FileNotFoundException;
  5. </span><span style="color: #0000ff">import</span><span style="color: #000000"> java.io.InputStream;
  6. </span><span style="color: #0000ff">import</span><span style="color: #000000"> java.io.OutputStream;
  7. </span><span style="color: #0000ff">import</span><span style="color: #000000"> java.sql.Blob;
  8. </span><span style="color: #0000ff">import</span><span style="color: #000000"> java.sql.Connection;
  9. </span><span style="color: #0000ff">import</span><span style="color: #000000"> java.sql.DriverManager;
  10. </span><span style="color: #0000ff">import</span><span style="color: #000000"> java.sql.PreparedStatement;
  11. </span><span style="color: #0000ff">import</span><span style="color: #000000"> java.sql.ResultSet;
  12. </span><span style="color: #0000ff">import</span><span style="color: #000000"> java.sql.ResultSetMetaData;
  13. </span><span style="color: #0000ff">import</span><span style="color: #000000"> java.sql.SQLException;
  14. </span><span style="color: #0000ff">import</span><span style="color: #000000"> java.sql.Statement;
  15. </span><span style="color: #0000ff">public</span> <span style="color: #0000ff">class</span><span style="color: #000000"> text_preparestartment {
  16. </span><span style="color: #0000ff">public</span> <span style="color: #0000ff">static</span> <span style="color: #0000ff">void</span><span style="color: #000000"> main(String[] args) {
  17. </span><span style="color: #008000">//</span><span style="color: #008000"> TODO Auto-generated method stub</span>
  18. Connection con=<span style="color: #000000">simplecon.getConnection();
  19. String sql</span>="insert into t_user values(null,?,?,null);"<span style="color: #000000">;
  20. String sql1</span>="insert into t_hobby values(?,?)"<span style="color: #000000">;
  21. </span><span style="color: #0000ff">try</span><span style="color: #000000"> {
  22. PreparedStatement ps</span>=<span style="color: #000000">con.prepareStatement(sql,Statement.RETURN_GENERATED_KEYS);
  23. ps.setString(</span>1, "mike"<span style="color: #000000">); //插入一组数据
  24. ps.setString(</span>2, "4399"<span style="color: #000000">);
  25. ps.execute();
  26. ResultSet re</span>=<span style="color: #000000">ps.getGeneratedKeys(); //获得主键
  27. re.next();
  28. </span><span style="color: #0000ff">int</span> n=re.getInt(1<span style="color: #000000">);
  29. System.out.println(</span>"自然增长的序号为"+<span style="color: #000000">n);
  30. simplecon.close(re);
  31. simplecon.close(ps);
  32. PreparedStatement ps1</span>=<span style="color: #000000">con.prepareStatement(sql1);
  33. ps1.setInt(</span>1<span style="color: #000000">, n);
  34. Blob pic</span>=<span style="color: #000000">con.createBlob(); //创建一个二进制类型
  35. OutputStream out</span>=pic.setBinaryStream(1<span style="color: #000000">); //返回一个流,流向这个二进制存放处,并设置位置为初始位置1
  36. </span><span style="color: #008000">//</span><span style="color: #008000">读入一个二进制文件</span>
  37. <span style="color: #0000ff">byte</span><span style="color: #000000">[] b;
  38. String picname</span>="d:/tupian.jpg"<span style="color: #000000">;
  39. b</span>=simple_read.readpic(picname); <span style="color: #008000">//</span><span style="color: #008000">自定义的读入图片的类</span>
  40. <span style="color: #000000">
  41. out.write(b);</span><span style="color: #008000">//</span><span style="color: #008000">将图片的二进制写到Blob中 </span>
  42. <span style="color: #000000"> out.flush();
  43. out.close();
  44. ps1.setBlob(</span>2,pic);<span style="color: #008000">//</span><span style="color: #008000">将blob写到数据库中</span>
  45. <span style="color: #000000"> ps1.execute();
  46. simplecon.close(ps1);
  47. simplecon.close(con);
  48. } </span><span style="color: #0000ff">catch</span><span style="color: #000000"> (Exception e) {
  49. </span><span style="color: #008000">//</span><span style="color: #008000"> TODO Auto-generated catch block</span>
  50. <span style="color: #000000"> e.printStackTrace();
  51. }
  52. }
  53. }<br>//连接数据库
  54. </span><span style="color: #0000ff">class</span><span style="color: #000000"> simplecon
  55. {
  56. </span><span style="color: #0000ff">static</span><span style="color: #000000"> Connection con;
  57. </span><span style="color: #0000ff">static</span><span style="color: #000000"> Connection getConnection()
  58. {
  59. </span><span style="color: #0000ff">try</span><span style="color: #000000">{
  60. con</span>=DriverManager.getConnection("jdbc:mysql://localhost:3306/test","数据库名","数据库密码"<span style="color: #000000">);
  61. }</span><span style="color: #0000ff">catch</span><span style="color: #000000">(SQLException e){
  62. e.printStackTrace();
  63. }
  64. </span><span style="color: #0000ff">return</span><span style="color: #000000"> con;
  65. }
  66. </span><span style="color: #0000ff">static</span> <span style="color: #0000ff">void</span><span style="color: #000000"> close(AutoCloseable a)
  67. {
  68. </span><span style="color: #0000ff">try</span><span style="color: #000000"> {
  69. a.close();
  70. } </span><span style="color: #0000ff">catch</span><span style="color: #000000"> (Exception e) {
  71. </span><span style="color: #008000">//</span><span style="color: #008000"> TODO Auto-generated catch block</span>
  72. <span style="color: #000000"> e.printStackTrace();
  73. }
  74. }
  75. }<br>//从文件中读取图片
  76. </span><span style="color: #0000ff">class</span><span style="color: #000000"> simple_read
  77. {
  78. </span><span style="color: #0000ff">static</span> <span style="color: #0000ff">byte</span><span style="color: #000000">[] readpic(String a)
  79. { </span><span style="color: #0000ff">byte</span>[] b=<span style="color: #0000ff">null</span><span style="color: #000000">;
  80. </span><span style="color: #0000ff">try</span><span style="color: #000000"> {
  81. FileInputStream in</span>=<span style="color: #0000ff">new</span><span style="color: #000000"> FileInputStream(a);
  82. b</span>=<span style="color: #0000ff">new</span> <span style="color: #0000ff">byte</span><span style="color: #000000">[in.available()];
  83. in.read(b);
  84. in.close();
  85. System.out.println(</span>"ok!"<span style="color: #000000">);
  86. } </span><span style="color: #0000ff">catch</span><span style="color: #000000"> (Exception e) {
  87. </span><span style="color: #008000">//</span><span style="color: #008000"> TODO Auto-generated catch block</span>
  88. <span style="color: #000000"> e.printStackTrace();
  89. }
  90. </span><span style="color: #0000ff">return</span><span style="color: #000000"> b;
  91. }
  92. }
  93. </span><span style="color: #000000"><br></span>

 

用JDBC处理二进制类文件

标签:oca   return   []   next   insert   ps1   create   nbsp   bsp   

人气教程排行