2017-02-21 7 views
0

На самом деле мне нужно вставить файл xml в базу данных cassandra. Поэтому изначально я пытаюсь вставить изображение в виде содержимого блога позже, я меняю код на вставку xml, но сталкиваюсь с проблемами во вставке и извлекаю содержимое blob как изображение. Может ли кто-нибудь предложить, что лучше всего вставить файл image/xml в базу данных cassandra.Попытка вставить файл image/xml как blob в базу данных cassandra

FileInputStream fis=new FileInputStream("C:/Users/anand.png"); 
byte[] b= new byte[fis.available()+1]; 
int length=b.length; 
fis.read(b); 

System.out.println(length); 

ByteBuffer buffer =ByteBuffer.wrap(b); 

PreparedStatement ps = session.prepare("insert into usersimage (firstname,lastname,age,email,city,length,image) values(?,?,?,?,?,?,?)"); 

BoundStatement boundStatement = new BoundStatement(ps); 

int age=22; 
//System.out.println(buffer); 

session.execute(boundStatement.bind("xxx","D",age,"[email protected]","xxx",length,buffer)); 

//session.execute( boundStatement.bind(buffer, "Andy", length)); 



PreparedStatement ps1 = session.prepare("select * from usersimage where email =?"); 
    BoundStatement boundStatement1 = new BoundStatement(ps1); 
    ResultSet rs =session.execute(boundStatement1.bind("[email protected]")); 

    ByteBuffer bImage=null; 

    for (Row row : rs) { 
    bImage = row.getBytes("image") ; 
    length=row.getInt("length"); 
    } 

byte image[]= new byte[length]; 
image=Bytes.getArray(bImage); 

HttpServletResponse response = null; 
@SuppressWarnings("null") 
OutputStream out = response.getOutputStream(); 
response.setContentType("image/png"); 
response.setContentLength(image.length); 
out.write(image); 

Перед тем, как отображать содержимое блоба, вы сталкиваетесь с проблемами. может кто-нибудь, пожалуйста, помогите мне в этом.

+0

попробовать использовать datastax библиотеку OGM для работы БД. Также, когда вы говорите «сталкивающиеся с проблемами», опишите, что конкретно представляют проблемы, такие как ошибки, трассировка стека –

+0

@monish Исключение в потоке «main» java.lang.NullPointerException, я получаю нулевое значение при возврате записи –

ответ

0
  • Вы вставки данных в электронной почте и подбирая от другого;
  • Лучший способ читать байты изображения будет:

    BufferedImage originalImage = ImageIO.read(new File("C:/Users/anand.png")); 
    ByteArrayOutputStream imageStream = new ByteArrayOutputStream(); 
    ImageIO.write(originalImage, "png", imageStream); 
    imageStream.flush(); 
    byte[] imageInByte = imageStream.toByteArray(); 
    
+0

на самом деле вставляю одна запись и на основе этой вставленной записи выбирает запись. –