概念性的内容就不多说了,不懂得可以参考api。
下面直接贴出来代码:
① 如何将clob类型的文本存入数据库:
/**
* 将clob类型的数据写入数据库中
* @param student
* @return
* @throws Exception
*/
public static int addStudent(Student student) throws Exception{
Connection conn = dbUtils.getConnetction(); //获取数据库连接
String sql = "insert into zhanghua values(null,?,?,?)"; //执行数据库sql的写法
PreparedStatement psmt = conn.prepareStatement(sql); //获取prepareStatement对象
psmt.setString(1, student.getUserName()); //设置第一个参数的值
psmt.setInt(2, student.getAge()); //设置第二个参数的值
File file = student.getContent(); //获取大文件
InputStream inputStream = new FileInputStream(file);
psmt.setAsciiStream(3, inputStream,file.length()); //设置第三个参数值
int result = psmt.executeUpdate();
dbUtils.close(psmt, conn);
return result;
}
②如何从数据库中读取clob类型的数据:
/**
* 通过id查询学生
* @param id
* @throws Exception
*/
public static void findStudentById(int id) throws Exception{
Connection conn = dbUtils.getConnetction(); //获取数据库连接
String sql = "select * from zhanghua where id = ?"; //执行数据库sql
PreparedStatement psmt = conn.prepareStatement(sql); //获取prepareStatement对象
psmt.setInt(1, id);
ResultSet rs = psmt.executeQuery();
if(rs.next()){
String username = rs.getString("username"); //学生姓名
int age = rs.getInt("age"); //年龄
Clob clob = rs.getClob("content"); //获取大文本
String content = clob.getSubString(1, (int)clob.length());
System.out.println("学生姓名为: "+ username);
System.out.println("学生年龄: "+ age);
System.out.println("大文本: "+ content);
}
dbUtils.close(psmt, conn);
}