使用MyBatis上传图像,使用的是Oracle的数据库表,有一个TEACHER表,有7列,有1列是存储图片的,类型用BLOB,最大容量是4G,以二进制的形式写入数据库表。
建立这个表的对应实体类Teacher,实体类中对应表中的BLOB类型数据的是字节数组的变量,再建立这个实体类的接口TeacherMapper和对应映射文件TeacherMapper.XML。
对应的接口比较简单,写个抽象的插入数据方法和查询数据的方法。
映射文件中写好具体的sql语句,插入语句和查询语句,注意参数类型和结果类型,少了可能会报错。
下面就是测试文件了:写入图像需要用到输入流,用字节流InputStream即可,因为是以二进制写入数据表,还需要用到File类,给输入流提供写入的素材,输入流准备好后,再构建一个Teacher对象,调用插入方法就完成插入操作了。测试类用的JUnit Test Case ,tm是接口的对象。
刷新数据库,查看操作结果
从数据库表往外查询图片,需要给图片先指定一个存储路径以便接受,使用输出流OutputStream,也需要使用File类传输路径,