jdbc读取数据库文本数据
2017-04-06 18:08
375 查看
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) { // 释放ResultSet try { if (rs != null) rs.close(); } catch (SQLException e) { e.printStackTrace(); } finally { // 释放Statement try { if (st != null) st.close(); } catch (SQLException e) { e.printStackTrace(); } finally { // 释放Connection try { 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];
//读写数据方式1
int 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数据
相关文章推荐
- JDBC处理大数据(大文本的存储和读取)
- 转:JMeter 参数化之利用JDBC Connection Configuration从数据库读取数据并关联变量
- Java - 使用JDBC操作数据库时,如何提升读取数据的性能?如何提升更新数据的性能?
- JDBC之大段文本数据的保存与读取
- JDBC处理大数据(大文本的存储和读取)
- 读取文本.EFZ文件数据,存入数据库
- python读取文本数据写入到数据库及查询优化
- 参数化之利用JDBC从数据库读取数据并关联变量
- 数据库连接函数并读取TXT文本中的数据
- java-JDBC从数据库中读取数据并进行日期民族男女的转换
- 通过JDBC向数据库中存储&读取Blob数据
- python读取文本数据写入到数据库及查询优化
- JDBC保存和读取大文本数据类型
- 使用原生JDBC从数据库读取数据并且封装
- 使用JDBC-ODBC连接SQLServer数据库后读取数据库中表的数据代码
- 基于JDBC从数据库中读取数据,在百度地图批量标注地点
- 如何通过JDBC向数据库写入/读取大数据文件?
- JDBC保存和读取大文本数据类型
- JDBC保存、读取大文本数据类型
- Java JDBC读取大文本类型数据(CLOB)