jdbc读取数据库文本数据

来源:互联网 发布:健身书籍知乎 编辑:程序博客网 时间:2024/05/18 21:41

1.在mysq的mydatabasel数据库中创建一张表

use database;create table if not exists my_clob_test(id int primary key auto_increment,big_text text not null)charset utf8;


2. 工具类(jdbc连接过程代码)

(1)注册驱动
(2)建立连接
(3)释放资源

import java.sql.Connection;import java.sql.DriverManager;import java.sql.ResultSet;import java.sql.SQLException;import com.mysql.jdbc.Statement;public final class JdbcUtils {private static String url = "jdbc:mysql://localhost:3306/mydatabase";private static String user = "root";private static String password = "123";private JdbcUtils() {}/** * 注册驱动 */static {try {Class.forName("com.mysql.jdbc.Driver");} catch (ClassNotFoundException e) {e.printStackTrace();}}/** * 建立连接 *  * @return */public static Connection getConnection() {Connection conn = null;try {conn = (Connection) DriverManager.getConnection(url, user, password);} catch (SQLException e) {e.printStackTrace();}return conn;}/** * 释放资源 *  * @param rs * @param st * @param conn */public static void free(ResultSet rs, Statement st, Connection conn) {// 释放ResultSettry {if (rs != null)rs.close();} catch (SQLException e) {e.printStackTrace();} finally {// 释放Statementtry {if (st != null)st.close();} catch (SQLException e) {e.printStackTrace();} finally {// 释放Connectiontry {if (conn != null)conn.close();} catch (SQLException e) {e.printStackTrace();}}}}}


3.运行下面的函数create()向数据库中插入一条文本数据

/** * 写数据到表中 * @param name * @param birthday * @param money * @throws IOException  */static void create() throws IOException {Connection conn = null;PreparedStatement ps = null;ResultSet rs = null;try {// 2.建立连接conn = (Connection) JdbcUtils.getConnection();// 3.创建语句String sql = "insert into my_clob_test(big_text) values(?)";ps = (PreparedStatement) conn.prepareStatement(sql);//将该目录下的文件内容写到数据库的my_clob_test表中File file = new File("src/cn/itcast/jdbc/JdbcUtilsSing.java"); Reader reader = new BufferedReader(new FileReader(file));//将“?”代替成数据流ps.setCharacterStream(1,reader,file.length());// 4.执行语句int i = ps.executeUpdate();reader.close();System.out.println("i=" + i);} catch (SQLException e) {e.printStackTrace();} finally {JdbcUtils.free(rs, ps, conn); // 关闭资源}}

4.运行下面函数read()读取数据库中的文本数据,然后将内容写到当前目录的copy.java文件中

/** * 读取text数据 * @throws IOException */static void read() throws IOException {Connection conn = null;PreparedStatement ps = null;ResultSet rs = null;try {// 2.建立连接conn = (Connection) JdbcUtils.getConnection();// 3.创建语句String sql = "select big_text from my_clob_test";ps = (PreparedStatement) conn.prepareStatement(sql);// 4.执行语句rs = ps.executeQuery();//5.处理结果while(rs.next()){//Clob clob = rs.getClob(1);//Reader reader = clob.getCharacterStream();//以上两句语句可以使用下面一句代码代替Reader reader = rs.getCharacterStream(1);//封装数据源File file = new File("copy.java");//创建写数据流Writer writer =new BufferedWriter(new FileWriter(file));//创建缓存区char[] buff = new char[1024];//读写数据方式1int len=0;while((len = reader.read(buff))>0){writer.write(buff,0,len);}//读写数据方式2//for(int i = 0;(i = reader.read(buff))>0;){//writer.write(buff,0,i);//}writer.close();reader.close();}} catch (SQLException e) {e.printStackTrace();} finally {JdbcUtils.free(rs, ps, conn); // 关闭资源}}

总结:以上几步实现了(1)建立java与mysql数据库的连接(2)将text数据写入数据库(3)读取数据库中的text数据





0 0
原创粉丝点击