Webアプリケーションを開発しています。特に、mysqlテーブルのBLOBカラムにファイルをアップロードする必要があります。EJBとpreparedStatement?
@Stateless
public class ItemsSession {
@PersistenceContext(unitName ="officePU")
private EntityManager em;
private List<Items> itl;
private static final Logger logger=
Logger.getLogger(ItemsSession.class.getName());
...
public String updateDocument(Integer id,InputStream is) throws SQLException{
String msg="";
try{
java.sql.Connection conn = em.unwrap(java.sql.Connection.class);
PreparedStatement pstmt=conn.prepareStatement("UPDATE Documents SET doc = ? WHERE id = ?");
pstmt.setBinaryStream(1, is);
pstmt.setLong(2, id);
pstmt.executeUpdate();
pstmt.close();
}
catch (PersistenceException e){
msg=e.getMessage();
}
return msg;
}
...
}
:次のようになり、私が一緒に石畳したもの - 私はこれはJDBCで行うことができます見ることができるものから(のprepareStatement()など)を呼び出しますが、私はEJBクラスでこれを実行できるようにしたいと思いますでも、私は2つの質問があります
私は直接JDBCを使用しない希望 - 「純粋JPA」(編集:ないEJB)でこれを行う方法はありますか?
このようにすれば、コンテナ管理のトランザクションにはPreparedStatementが含まれていますか?
別の編集:上記のコードは仕事をしていません - 私は今それをテストしています。しかし、それはかなりではない、と私は思う。
"純粋なEJB"とはどういう意味ですか? EJBはデータアクセス技術ではありません。通常は、JDBCまたはJPAを使用してEJBからデータベースにアクセスします。 –
ああ、はい、JPA、言葉の間違った選択 - 私は私の質問でそれを修正します。 – j4nd3r53n