Hi,
I'm running into the following error when I try to pull data from my postgres database:
SchoolManager.java: readSchoolsFromDB(): Error while reading all schools
org.postgresql.util.PSQLEx
ception: Returning autogenerated keys is not supported.
at org.postgresql.jdbc3.Abstr
actJdbc3Co
nnection.p
repareStat
ement(Abst
ractJdbc3C
onnection.
java:352)
at org.apache.tomcat.dbcp.dbc
p.Delegati
ngConnecti
on.prepare
Statement(
Delegating
Connection
.java:458)
at org.apache.tomcat.dbcp.dbc
p.PoolingD
ataSource$
PoolGuardC
onnectionW
rapper.pre
pareStatem
ent(Poolin
gDataSource.java:394)
at teska.dbconn.sqlQueryBean.
query(sqlQ
ueryBean.j
ava:67)
at teska.dbconn.sqlQueryBean.
query(sqlQ
ueryBean.j
ava:53)
at teska.lookup.SchoolManager
.readSchoo
lsFromDB(S
choolManag
er.java:62
)
at teska.lookup.SchoolManager
.initializ
eSchoolLis
t(SchoolMa
nager.java
:50)
at teska.lookup.SchoolManager
.<init>(Sc
hoolManage
r.java:22)
at teska.lookup.SchoolManager
.<clinit>(
SchoolMana
ger.java:1
7)
at org.apache.jsp.initialize_
jsp._jspSe
rvice(init
ialize_jsp
.java:116)
at org.apache.jasper.runtime.
HttpJspBas
e.service(
HttpJspBas
e.java:70)
at javax.servlet.http.HttpSer
vlet.servi
ce(HttpSer
vlet.java:
803)
at org.apache.jasper.servlet.
JspServlet
Wrapper.se
rvice(JspS
ervletWrap
per.java:3
93)
at org.apache.jasper.servlet.
JspServlet
.serviceJs
pFile(JspS
ervlet.jav
a:320)
at org.apache.jasper.servlet.
JspServlet
.service(J
spServlet.
java:266)
at javax.servlet.http.HttpSer
vlet.servi
ce(HttpSer
vlet.java:
803)
at org.apache.catalina.core.A
pplication
FilterChai
n.internal
DoFilter(A
pplication
FilterChai
n.java:290
)
at org.apache.catalina.core.A
pplication
FilterChai
n.doFilter
(Applicati
onFilterCh
ain.java:2
06)
at org.apache.catalina.core.S
tandardWra
pperValve.
invoke(Sta
ndardWrapp
erValve.ja
va:233)
at org.apache.catalina.core.S
tandardCon
textValve.
invoke(Sta
ndardConte
xtValve.ja
va:175)
at org.apache.catalina.core.S
tandardHos
tValve.inv
oke(Standa
rdHostValv
e.java:128
)
at org.apache.catalina.valves
.ErrorRepo
rtValve.in
voke(Error
ReportValv
e.java:102
)
at org.apache.catalina.core.S
tandardEng
ineValve.i
nvoke(Stan
dardEngine
Valve.java
:109)
at org.apache.catalina.connec
tor.Coyote
Adapter.se
rvice(Coyo
teAdapter.
java:263)
at org.apache.coyote.http11.H
ttp11Proce
ssor.proce
ss(Http11P
rocessor.j
ava:844)
at org.apache.coyote.http11.H
ttp11Proto
col$Http11
Connection
Handler.pr
ocess(Http
11Protocol
.java:584)
at org.apache.tomcat.util.net
.JIoEndpoi
nt$Worker.
run(JIoEnd
point.java
:447)
at java.lang.Thread.run(Unkno
wn Source)
PSQLException: Returning autogenerated keys is not supported.
null
null
SchoolManager.java: readSchoolsFromDB(): Error Disconnecting from the database
java.lang.NullPointerExcep
tion
at teska.dbconn.sqlQueryBean.
cleanup(sq
lQueryBean
.java:168)
at teska.dbconn.connPGDBBean.
closeConn(
connPGDBBe
an.java:55
)
at teska.lookup.SchoolManager
.readSchoo
lsFromDB(S
choolManag
er.java:86
)
at teska.lookup.SchoolManager
.initializ
eSchoolLis
t(SchoolMa
nager.java
:50)
at teska.lookup.SchoolManager
.<init>(Sc
hoolManage
r.java:22)
at teska.lookup.SchoolManager
.<clinit>(
SchoolMana
ger.java:1
7)
at org.apache.jsp.initialize_
jsp._jspSe
rvice(init
ialize_jsp
.java:116)
at org.apache.jasper.runtime.
HttpJspBas
e.service(
HttpJspBas
e.java:70)
at javax.servlet.http.HttpSer
vlet.servi
ce(HttpSer
vlet.java:
803)
at org.apache.jasper.servlet.
JspServlet
Wrapper.se
rvice(JspS
ervletWrap
per.java:3
93)
at org.apache.jasper.servlet.
JspServlet
.serviceJs
pFile(JspS
ervlet.jav
a:320)
at org.apache.jasper.servlet.
JspServlet
.service(J
spServlet.
java:266)
at javax.servlet.http.HttpSer
vlet.servi
ce(HttpSer
vlet.java:
803)
at org.apache.catalina.core.A
pplication
FilterChai
n.internal
DoFilter(A
pplication
FilterChai
n.java:290
)
at org.apache.catalina.core.A
pplication
FilterChai
n.doFilter
(Applicati
onFilterCh
ain.java:2
06)
at org.apache.catalina.core.S
tandardWra
pperValve.
invoke(Sta
ndardWrapp
erValve.ja
va:233)
at org.apache.catalina.core.S
tandardCon
textValve.
invoke(Sta
ndardConte
xtValve.ja
va:175)
at org.apache.catalina.core.S
tandardHos
tValve.inv
oke(Standa
rdHostValv
e.java:128
)
at org.apache.catalina.valves
.ErrorRepo
rtValve.in
voke(Error
ReportValv
e.java:102
)
at org.apache.catalina.core.S
tandardEng
ineValve.i
nvoke(Stan
dardEngine
Valve.java
:109)
at org.apache.catalina.connec
tor.Coyote
Adapter.se
rvice(Coyo
teAdapter.
java:263)
at org.apache.coyote.http11.H
ttp11Proce
ssor.proce
ss(Http11P
rocessor.j
ava:844)
at org.apache.coyote.http11.H
ttp11Proto
col$Http11
Connection
Handler.pr
ocess(Http
11Protocol
.java:584)
at org.apache.tomcat.util.net
.JIoEndpoi
nt$Worker.
run(JIoEnd
point.java
:447)
at java.lang.Thread.run(Unkno
wn Source)
NullPointerException:
null
null
Here is the code in my SchoolManager.java that calls SqlQueryBean.java to process the sql query:
public static void readSchoolsFromDB(){
sqlQueryBean sqlQB = new sqlQueryBean();
try {
// connect to the database
sqlQB.makeConnection();
// SQL string
String sql = "SELECT sid, name, school_abr, school_district FROM schools" ;
// perform the query on the database
ResultSet list = sqlQB.query(sql);
// do stuff
}
catch (Exception e){
System.out.println("School
Manager.ja
va: readSchoolsFromDB(): Error while reading all schools");
System.out.println(Excepti
onUtils.ge
tFullStack
Trace(e));
System.out.println(Excepti
onUtils.ge
tRootCause
Message(e)
);
System.out.println(Excepti
onUtils.ge
tRootCause
(e));
System.out.println(Excepti
onUtils.ge
tCause(e))
;
}
finally {
try {
//close the connection to the database
sqlQB.closeConn();
}
catch(java.lang.Exception e2){
System.out.println("School
Manager.ja
va: readSchoolsFromDB(): Error Disconnecting from the database");
System.out.println(Excepti
onUtils.ge
tFullStack
Trace(e2))
;
System.out.println(Excepti
onUtils.ge
tRootCause
Message(e2
));
System.out.println(Excepti
onUtils.ge
tRootCause
(e2));
System.out.println(Excepti
onUtils.ge
tCause(e2)
);
}
}
}
Here is the code in my SqlQueryBean.java:
PreparedStatement stmt = null;
public ResultSet query(String sqlStatement) throws Exception {
stmt = myConn.prepareStatement(sq
lStatement
, ResultSet.TYPE_SCROLL_SENS
ITIVE);
return (stmt.executeQuery());
}
My understanding was this error normally arises when trying to send 2 sql statements at once to the database (ex. and insert statement followed by a select statement to get the auto-generated key. However, as you can see, this is just a normal select statement, so I'm not clear what is happening).
Does anyone have any ideas?
Thanks,
Courtenay
Start Free Trial