Java Derby insert

Sekcia o programovaní, programovacích jazykoch...
Používateľov profilový obrázok
materik
Používateľ
Používateľ
Príspevky: 2324
Dátum registrácie: Št 10. Apr, 2008, 14:00
Bydlisko: Prešov

Java Derby insert

Príspevok od používateľa materik »

robim teraz projekt do skoly - jsp stranka, posle cez "post" veci do servletu, ten to odovza triede, ktora by to mala zapisat do databazy.
(je to sice jak skrabat sa okolo hlavy ale tot su poziadavky :rolleyes: )

build zbehne bez chyby, po vyplneni formulara na jsp. a submit-nuti ale k zapisu do db nedojte, su tam furt len veci, kere som hodil
sql prikazmi... error to nehadze ziaden, tvari sa to ze zapis dat zbehol??
Zdrojaky

regis.jsp (len fragment)
Spoiler: ukázať
<form action="JavaAction" method="post">
<table cellspacing="2" cellpadding="3" border="0">
<tr><td>Meno: </td>
<td><input type="text" name="meno"></td>
</tr>
<tr><td>Priezvisko: </td>
<td><input type="text" name="priezvisko"></td>
</tr>
<tr><td>Nick: </td>
<td><input type="text" name="nick"></td>
</tr>
</table>
<button type="submit">Over dostupnost</button>
<table cellspacing="2" cellpadding="3" border="0">
<tr><td>Password: </td>
<td><input type="password" name="heslo"></td>
</tr>
<tr><td>E-mail: </td>
<td><input type="text" name="email"></td>
</tr>
</table>
<input type="submit" value="Odoslat">
<input type="reset" value="Vymaz formular">
</form>
JavaAction.java (cely kod) - servlet
Spoiler: ukázať
package mypackage;

import java.io.IOException;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

public class JavaAction extends HttpServlet {
private static final long serialVersionUID = 1L;

public JavaAction() {super();}

protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
doPost(request, response);
}

protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
String me, pri, nik, hes, eml;
Registracia reg = new Registracia();
me=request.getParameter("meno");
pri=request.getParameter("priezvisko");
nik=request.getParameter("nick");
hes=request.getParameter("heslo");
eml=request.getParameter("email");
reg.insertData(me, pri, nik, hes, eml);

request.getRequestDispatcher("regis.jsp").forward(request, response);
}
}
Registracia.java (cely kod) - trieda
Spoiler: ukázať
package mypackage;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.Statement;

public class Registracia {
static Connection conn;
public String vysledok;

public void insertData(String me, String pri, String nck, String hsl, String eml){
String driver = "org.apache.derby.jdbc.ClientDriver";
String connUrl = "jdbc:derby://localhost:1527/pouzivatelia";
try{
Class.forName(driver);
conn = DriverManager.getConnection(connUrl,"admin","Banan230");
Statement stmt = conn.createStatement();
PreparedStatement psInsert = conn.prepareStatement("insert into users values (?,?,?,?,?,?)");
psInsert.setString(1, me);
psInsert.setString(2, pri);
psInsert.setString(3, nck);
psInsert.setString(4, hsl);
psInsert.setString(5, eml);
psInsert.setInt(6, 01);
stmt.executeUpdate("insert into users values(");

// -- Inserting data
psInsert.executeUpdate();

conn.close();
}catch (Exception e) {e.printStackTrace();
}
}
}
Nemam tam vela komentov, nakolko som to uz x-krat prepisoval, ale dufam, ze vam z toho dojde funkcnost.... :)
Ak by ste niekto vedeli helpnut, bol by som rad
PC -> Topping DX7 Pro+ -> Meze 109 PRO / Microlab B77
Používateľov profilový obrázok
Scorp
Používateľ
Používateľ
Príspevky: 2225
Dátum registrácie: So 09. Apr, 2005, 20:00
Bydlisko: Krankenhaus

Re: Java Derby insert

Príspevok od používateľa Scorp »

trepnem prvé, čo ma napadne... máš innodb a nerobíš commit?
Me like Pentium
Používateľov profilový obrázok
materik
Používateľ
Používateľ
Príspevky: 2324
Dátum registrácie: Št 10. Apr, 2008, 14:00
Bydlisko: Prešov

Re: Java Derby insert

Príspevok od používateľa materik »

wait, what?
idem podla jedneho tutroialu na webe a takto to vyzera... inac v jave som lama, cize podrobnejsia
otazka by bodla
PC -> Topping DX7 Pro+ -> Meze 109 PRO / Microlab B77
Používateľov profilový obrázok
galen
Používateľ
Používateľ
Príspevky: 2237
Dátum registrácie: Št 01. Jún, 2006, 02:00
Bydlisko: Zilina

Re: Java Derby insert

Príspevok od používateľa galen »

Kód: Vybrať všetko

...
psInsert.setInt(6, 01);
stmt.executeUpdate("insert into users values(");

// -- Inserting data
psInsert.executeUpdate();
...
na stmt.executeUpdate(...) ti to asi drbne ... henten SQL command, ktory tam posielas nema hlavu ani patu
skus to odpoznamkovat, mozno to prebehne dalej, az na ten psInsert.executeUpdate();
lava, prava, lava, prava ...
Používateľov profilový obrázok
materik
Používateľ
Používateľ
Príspevky: 2324
Dátum registrácie: Št 10. Apr, 2008, 14:00
Bydlisko: Prešov

Re: Java Derby insert

Príspevok od používateľa materik »

stmt.executeUpdate("insert into users values(");

toto sa tu nemalo dostat... ten kod som prepisoval uz x-krat, mam v tom bordel :)
PC -> Topping DX7 Pro+ -> Meze 109 PRO / Microlab B77
Používateľov profilový obrázok
Scorp
Používateľ
Používateľ
Príspevky: 2225
Dátum registrácie: So 09. Apr, 2005, 20:00
Bydlisko: Krankenhaus

Re: Java Derby insert

Príspevok od používateľa Scorp »

Akú db tam máš?
Me like Pentium
Používateľov profilový obrázok
materik
Používateľ
Používateľ
Príspevky: 2324
Dátum registrácie: Št 10. Apr, 2008, 14:00
Bydlisko: Prešov

Re: Java Derby insert

Príspevok od používateľa materik »

Derby DB
PC -> Topping DX7 Pro+ -> Meze 109 PRO / Microlab B77
Používateľov profilový obrázok
Scorp
Používateľ
Používateľ
Príspevky: 2225
Dátum registrácie: So 09. Apr, 2005, 20:00
Bydlisko: Krankenhaus

Re: Java Derby insert

Príspevok od používateľa Scorp »

máš tam zapatý autocommit?
Me like Pentium
Používateľov profilový obrázok
materik
Používateľ
Používateľ
Príspevky: 2324
Dátum registrácie: Št 10. Apr, 2008, 14:00
Bydlisko: Prešov

Re: Java Derby insert

Príspevok od používateľa materik »

fu... dobra otazka, nevim :-)

mam v tom chaos, dost solidny nakolko musim teraz este riesit dalsie predmety... skusim to tu v piatok postnut komplexnejsie
aj s chybovymi hlaskami
PC -> Topping DX7 Pro+ -> Meze 109 PRO / Microlab B77
Používateľov profilový obrázok
materik
Používateľ
Používateľ
Príspevky: 2324
Dátum registrácie: Št 10. Apr, 2008, 14:00
Bydlisko: Prešov

Re: Java Derby insert

Príspevok od používateľa materik »

okis, db bezi ako ma, riesim uz len jeden problem

potrebujem spravit sql Select specifickych udajov (login, password - prebrate ako argument ziskane servletom) z db.
lenze, ak v sql stringu pouzijem toto
Spoiler: ukázať
"select login, heslo from users where login = ' " + nik + " ' and heslo = ' " + hes + " ' "
/**
* nik a hes su argumenty prebrate z funkcie, urcitie nie su null :-)
*/
tak ma zastavi ze narazil na neznamy/chybny znak = ???

string spustam prikazom executeQuerry();
Naposledy upravil/-a materik v Ut 04. Jan, 2011, 12:08, upravené celkom 2 krát.
PC -> Topping DX7 Pro+ -> Meze 109 PRO / Microlab B77
Používateľov profilový obrázok
bubo47
Používateľ
Používateľ
Príspevky: 281
Dátum registrácie: Št 28. Sep, 2006, 02:00
Bydlisko: KE / BA

Re: Java Derby insert

Príspevok od používateľa bubo47 »

Kód: Vybrať všetko

"select login, heslo from users where login = ' " + nik + " ' , and heslo = ´" + hes + "´"
ram tam mas ' a raz ´ ... nebude to tym ? (pripadne by som skusil este klucove slova ako select, from atd napisat klasicky, velkymi pismenami)

edit:
takisto pred "AND" sa mi nezda ta ciarka ....
Používateľov profilový obrázok
materik
Používateľ
Používateľ
Príspevky: 2324
Dátum registrácie: Št 10. Apr, 2008, 14:00
Bydlisko: Prešov

Re: Java Derby insert

Príspevok od používateľa materik »

sql nie je case sensitive... takze to je prakticky jedno

prikaz som nekopiroval, pisal som ho tu, tie dlzne v programe nemam :-) (opravene)
ciarka je tiez preklep kery som spravil tu :red:
PC -> Topping DX7 Pro+ -> Meze 109 PRO / Microlab B77
Používateľov profilový obrázok
bubo47
Používateľ
Používateľ
Príspevky: 281
Dátum registrácie: Št 28. Sep, 2006, 02:00
Bydlisko: KE / BA

Re: Java Derby insert

Príspevok od používateľa bubo47 »

tak skus sem priamo skopirovat sql, co mas napisane v kode :)
Používateľov profilový obrázok
materik
Používateľ
Používateľ
Príspevky: 2324
Dátum registrácie: Št 10. Apr, 2008, 14:00
Bydlisko: Prešov

Re: Java Derby insert

Príspevok od používateľa materik »

no super, teraz mi to v bocnom projekte ide... chvilu sa este pohram s kodom
Spoiler: ukázať
String find = "select nick from users where nick = ' " + nik + " ' ";
ResultSet results = stmt.executeQuery(find);
PC -> Topping DX7 Pro+ -> Meze 109 PRO / Microlab B77
Používateľov profilový obrázok
materik
Používateľ
Používateľ
Príspevky: 2324
Dátum registrácie: Št 10. Apr, 2008, 14:00
Bydlisko: Prešov

Java Derby + Servlet problemy

Príspevok od používateľa materik »

oka, tak dufam posledny problem v tomto topic-u

udaje z databazy sa snazim vypisat na jsp stranku
Spoiler: ukázať
<c:forEach var="liAt" items="${listPrint }">
<tr>
<td>${liAt.meno}</td>
<td>${liAt.priezvisko }</td>
<td>${liAt.nick}</td>
<td>${liAt.email}</td>
</tr>
</c:forEach>
zastavuje ma javax.el.PropertyNotFoundException: Property 'meno' not found on type printPackage.ListAtrib
kde robim chybu? :smutny:

tu je Servlet kery to ma vypisat
Spoiler: ukázať
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
List<ListAtrib> listAtrib = dbSA.dbSelect();
request.setAttribute("listPrint", listAtrib);
request.getRequestDispatcher("dblist.jsp").forward(request, response);
}
udaje z derby databazy su hadzane do listu objektov triedy ListAtrib, tento list vracia metoda dbSelect()
PC -> Topping DX7 Pro+ -> Meze 109 PRO / Microlab B77

Návrat na "Programovanie"