怎么在MySQL中存储文本和图片
本篇文章为大家展示了怎么在MySQL中存储文本和图片,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。
Oracle中大文本数据类型
Clob长文本类型(MySQL中不支持,使用的是text)Blob二进制类型
MySQL数据库
Text长文本类型TINYTEXT:256bytesTEXT:65,535bytes=>~64kbMEDIUMTEXT:16,777,215bytes=>~16MBLONGTEXT:4,294,967,295bytes=>~4GBBlob二进制类型
例如:
建表
CREATETABLEtest(idINTPRIMARYKEYAUTO_INCREMENT,contentLONGTEXT,--文本字段imgLONGBLOB--图片字段);
存储文本时是以字符类型存储,存储图片时是以二进制类型存储,具体使用的设置参数方法,和获取数据方法不同。
例如:
//存储文本时//存储时,设置参数为字符流FileReaderreaderpstmt.setCharacterStream(1,reader);//获取参数时//方式1:Readerr=rs.getCharacterStream("content");//获取长文本数据,方式2:System.out.print(rs.getString("content"));//存储二进制图片时//设置参数为2进制流InputStreaminpstmt.setBinaryStream(1,in);//获取2进制流InputStreamin=rs.getAsciiStream("img");
/***保存照片**/@Testpublicvoidtest2(){Stringsql="insertintotest(img)values(?)";try{con=JDBCUtil.getConnection();pstmt=con.prepareStatement(sql);//设置参数//获取文本Filefile=newFile("f:/a.jpg");InputStreamin=newFileInputStream(file);//设置参数为2进制流pstmt.setBinaryStream(1,in);//执行sqlpstmt.executeUpdate();in.close();}catch(Exceptione){e.printStackTrace();}finally{try{JDBCUtil.close(con,pstmt);}catch(Exceptione){//TODOAuto-generatedcatchblocke.printStackTrace();}}}/***获取照片**/@Testpublicvoidtest3(){Stringsql="select*fromtestwhereid=?;";try{con=JDBCUtil.getConnection();pstmt=con.prepareStatement(sql);//设置参数pstmt.setInt(1,2);//执行查询rs=pstmt.executeQuery();while(rs.next()){byte[]buff=newbyte[1024];InputStreamin=rs.getAsciiStream("img");intl=0;OutputStreamout=newFileOutputStream(newFile("f:/1.jpg"));while((l=in.read(buff))!=-1){out.write(buff,0,l);}in.close();out.close();}}catch(Exceptione){e.printStackTrace();}finally{try{JDBCUtil.close(con,pstmt);}catch(Exceptione){//TODOAuto-generatedcatchblocke.printStackTrace();}}}
上述内容就是怎么在MySQL中存储文本和图片,你们学到知识或技能了吗?如果还想学到更多技能或者丰富自己的知识储备,欢迎关注亿速云行业资讯频道。
声明:本站所有文章资源内容,如无特殊说明或标注,均为采集网络资源。如若本站内容侵犯了原著者的合法权益,可联系本站删除。