我有这样的关系
成功创建表的Create table ImageFile1(name varchar2(200), id number(30), Image BLOB);
。
但是当我尝试使用PreparedStatement插入数据时,我将问题视为空指针异常 我使用的代码是..
Connection con=null;
System.out.println("Connection created0");
Statement stmt=null;
System.out.println("Connection created1");
ResultSet rs=null;
System.out.println("Connection created2");
con=(Connection)session.getAttribute("connection");
System.out.println("Connection created");
File imgfile = new File("C:\\Users\\HP\\Pictures\\PALLU.jpg");
System.out.println("*******");
FileInputStream fin = new FileInputStream(imgfile);
System.out.println("file ok");
PreparedStatement pre = con.prepareStatement("insert into ImageFile1 values(?,?,?)");
System.out.println("ps ok");
pre.setString(1,"Vijay");
pre.setInt(2,1);
pre.setBinaryStream(3,fin,(int)imgfile.length());
System.out.println("image problem solved");
pre.executeUpdate();
System.out.println("Inserting Successfully!");
pre.close();
,输出为:
Connection created0
Connection created1
Connection created2
Connection created
文件确定
java.lang.NullPointerException
请帮助解决这个......
答案 0 :(得分:1)
您在哪点获得空指针异常?此外,您获取连接实例con=(Connection)session.getAttribute("connection");
的行检查以确保连接实例不为空。在Session中存储连接对象可能不是一个好方法。使用DriverManager类创建连接或更好地使用连接池。
此外,使用一些文件上传库,如Apache Commons File Upload。有足够的文档供图书馆使用,使图像上传非常简单。
答案 1 :(得分:0)
您想要使用JDBCConnectionPool
。有关详细信息,请参阅here。
答案 2 :(得分:0)
为了将来参考,在询问异常时,最好告诉我们异常发生在哪一行。在这种特殊情况下,很明显就是这一行:
PreparedStatement pre = con.prepareStatement("insert into ImageFile1 values(?,?,?)");
问题是你的con
为空。因此,您需要查看con
的来源以及填充方式。但在其他情况下,很难从代码中推断出问题可能是什么。