package cn.itcast.jdbc; import java.sql.Connection; import java.sql.DriverManager; import java.sql.ResultSet; import java.sql.SQLException; import java.sql.Statement; /** * * 2008-12-6 * * @author <a href="mailto:liyongibm@hotmail.com">李勇</a> * */ public final class JdbcUtils { private static String url = "jdbc:mysql://localhost:3306/jdbc"; private static String user = "root"; private static String password = ""; private JdbcUtils() { } static { try { Class.forName("com.mysql.jdbc.Driver"); } catch (ClassNotFoundException e) { throw new ExceptionInInitializerError(e); } } public static Connection getConnection() throws SQLException { return DriverManager.getConnection(url, user, password); } public static void free(ResultSet rs, Statement st, Connection conn) { try { if (rs != null) rs.close(); } catch (SQLException e) { e.printStackTrace(); } finally { try { if (st != null) st.close(); } catch (SQLException e) { e.printStackTrace(); } finally { if (conn != null) try { conn.close(); } catch (SQLException e) { e.printStackTrace(); } } } } }
package cn.itcast.jdbc; import java.io.BufferedReader; import java.io.BufferedWriter; import java.io.File; import java.io.FileReader; import java.io.FileWriter; import java.io.IOException; import java.io.Reader; import java.io.Writer; import java.sql.Clob; import java.sql.Connection; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.SQLException; import java.sql.Statement; /** * * 2008-12-6 * * @author <a href="mailto:liyongibm@gmail.com">liyong</a> * */ public class ClobTest { /** * @param args * @throws IOException * @throws SQLException */ public static void main(String[] args) throws SQLException, IOException { // create(); read(); } static void read() throws SQLException, IOException { Connection conn = null; Statement st = null; ResultSet rs = null; try { // 2.建立连接 conn = JdbcUtils.getConnection(); // conn = JdbcUtilsSing.getInstance().getConnection(); // 3.创建语句 st = conn.createStatement(); // 4.执行语句 rs = st.executeQuery("select big_text from clob_test"); // 5.处理结果 while (rs.next()) { Clob clob = rs.getClob(1); Reader reader = clob.getCharacterStream(); // reader = rs.getCharacterStream(1); // String s = rs.getString(1); File file = new File("JdbUtils_bak.java"); Writer writer = new BufferedWriter(new FileWriter(file)); char[] buff = new char[1024]; for (int i = 0; (i = reader.read(buff)) > 0;) { writer.write(buff, 0, i); } writer.close(); reader.close(); } } finally { JdbcUtils.free(rs, st, conn); } } static void create() throws SQLException, IOException { Connection conn = null; PreparedStatement ps = null; ResultSet rs = null; try { // 2.建立连接 conn = JdbcUtils.getConnection(); // conn = JdbcUtilsSing.getInstance().getConnection(); // 3.创建语句 String sql = "insert into clob_test(big_text) values (?) "; ps = conn.prepareStatement(sql); File file = new File("src/cn/itcast/jdbc/JdbcUtils.java"); Reader reader = new BufferedReader(new FileReader(file)); ps.setCharacterStream(1, reader, (int) file.length()); // ps.setString(1, x); // 4.执行语句 int i = ps.executeUpdate(); reader.close(); System.out.println("i=" + i); } finally { JdbcUtils.free(rs, ps, conn); } } }
package cn.itcast.jdbc; import java.io.BufferedInputStream; import java.io.BufferedOutputStream; import java.io.File; import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.IOException; import java.io.InputStream; import java.io.OutputStream; import java.sql.Connection; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.SQLException; import java.sql.Statement; /** * * 2008-12-6 * * @author <a href="mailto:liyongibm@gmail.com">liyong</a> * */ public class BlobTest { /** * @param args * @throws IOException * @throws SQLException */ public static void main(String[] args) throws SQLException, IOException { // create(); read(); } static void read() throws SQLException, IOException { Connection conn = null; Statement st = null; ResultSet rs = null; try { // 2.建立连接 conn = JdbcUtils.getConnection(); // conn = JdbcUtilsSing.getInstance().getConnection(); // 3.创建语句 st = conn.createStatement(); // 4.执行语句 rs = st.executeQuery("select big_bit from blob_test"); // 5.处理结果 while (rs.next()) { // Blob blob = rs.getBlob(1); // InputStream in = blob.getBinaryStream(); InputStream in = rs.getBinaryStream("big_bit"); File file = new File("IMG_0002_bak.jpg"); OutputStream out = new BufferedOutputStream( new FileOutputStream(file)); byte[] buff = new byte[1024]; for (int i = 0; (i = in.read(buff)) > 0;) { out.write(buff, 0, i); } out.close(); in.close(); } } finally { JdbcUtils.free(rs, st, conn); } } static void create() throws SQLException, IOException { Connection conn = null; PreparedStatement ps = null; ResultSet rs = null; try { // 2.建立连接 conn = JdbcUtils.getConnection(); // conn = JdbcUtilsSing.getInstance().getConnection(); // 3.创建语句 String sql = "insert into blob_test(big_bit) values (?) "; ps = conn.prepareStatement(sql); File file = new File("IMG_0002.jpg"); InputStream in = new BufferedInputStream(new FileInputStream(file)); ps.setBinaryStream(1, in, (int) file.length()); // 4.执行语句 int i = ps.executeUpdate(); in.close(); System.out.println("i=" + i); } finally { JdbcUtils.free(rs, ps, conn); } } }