1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98
| import java.io.File; import java.io.FileInputStream; import java.io.InputStream; import java.sql.*; import java.text.SimpleDateFormat; import java.util.Scanner;
public class Clob_demo {
//定义MySQL的数据库驱动程序 public static final String DBDRIVER = "org.gjt.mm.mysql.Driver"; //定义MySQL数据库的连接地址 public static final String DBURL = "jdbc:mysql://localhost:3306/mysql_demo"; //MySQL数据库的连接用户名 public static final String DBUSER = "root"; //MySQL数据库的连接密码 public static final String DBPASS = "123456"; public static void main(String[] args) throws Exception{ // TODO 自动生成的方法存根 // Connection conn = null; //数据库连接 // PreparedStatement pstmt = null; //数据库操作 // // String name = "张三"; // String sql = "INSERT INTO userclob(name,note) VALUES (?,?) "; // Class.forName(DBDRIVER); //加载驱动程序 // //连接MySQL数据库时,要写上连接的用户名和密码 // conn = DriverManager.getConnection(DBURL,DBUSER,DBPASS); // pstmt = conn.prepareStatement(sql); //实例化PreparedStatement // //声明一个File对象,用于找到要操作的大文本文件 // File f = new File("/home/common/software/database/无标题文档"); // InputStream input = null; //通过输入流读取内容 // input = new FileInputStream(f); //通过输入流读取文件 // pstmt.setString(1, name); //设置第一个“?”的内容 // pstmt.setAsciiStream(2,input, (int)f.length()); //设置输入流 // pstmt.executeUpdate(); //执行数据库更新操作 // pstmt.close(); //操作关闭 // conn.close(); //数据库关闭 // Connection conn = null; //数据库连接 // PreparedStatement pstmt = null; //数据库操作 // ResultSet rs = null; //保存结果集 // // int id = 2; // String sql = "SELECT name,note FROM userclob WHERE id=?"; // Class.forName(DBDRIVER); //加载驱动程序 // //连接MySQL数据库时,要写上连接的用户名和密码 // conn = DriverManager.getConnection(DBURL,DBUSER,DBPASS); // pstmt = conn.prepareStatement(sql); //实例化PreparedStatement // pstmt.setInt(1, id); //设置查询的id // rs = pstmt.executeQuery(); //查询 // // while(rs.next()){ // String name = rs.getString(1); // StringBuffer note = new StringBuffer(); // System.out.println("姓名:"+name); // InputStream input = rs.getAsciiStream(2); //接收全部的文本数据 // Scanner scan = new Scanner(input); //接收数据 // scan.useDelimiter("\r\n"); //将文件换行作为分隔符 // while(scan.hasNext()){ // note.append(scan.next()).append("\n"); //不断读取内容 // } // System.out.println("内容:"+note); // input.close(); // } // // pstmt.close(); //操作关闭 // conn.close(); //数据库关闭 Connection conn = null; //数据库连接 PreparedStatement pstmt = null; //数据库操作 ResultSet rs = null; //保存结果集 int id = 2; String sql = "SELECT name,note FROM userclob WHERE id=?"; Class.forName(DBDRIVER); //加载驱动程序 //连接MySQL数据库时,要写上连接的用户名和密码 conn = DriverManager.getConnection(DBURL,DBUSER,DBPASS); pstmt = conn.prepareStatement(sql); //实例化PreparedStatement pstmt.setInt(1, id); //设置查询的id rs = pstmt.executeQuery(); //查询 while(rs.next()){ String name = rs.getString(1); //取出name列的内容 Clob c = rs.getClob(2); //取出大文本数据 String note = c.getSubString(1, (int)c.length()); //CLOB开始的位置为1 System.out.println("姓名:"+name); System.out.println("内容:"+note); c.truncate(100); System.out.println("部分的读取内容:"+c.getSubString(1, (int)c.length())); } pstmt.close(); //操作关闭 conn.close(); //数据库关闭 }
}
|