Upload
serbiaduke
View
11
Download
0
Embed Size (px)
DESCRIPTION
Java
Citation preview
VEŽBE 09 – DATABASE ACCESS OBJECT (DAO)
ZADATAK:
M
Kreirati klasu Osoba opisanu sa atributima:
idosoba, ime, prezime, JMBG, vremeUpisa (Timestamp)
Dodati potrebne get i set metode kao i konstruktore.
Kreirati klasu OsobaDAO koja u konstruktoru podešava konekciju sa MySQL bazom podataka i kao funkcionalnosti pri radu implementira sledeće metode:
public void insertOsoba(Osoba osoba) public void deleteOsoba(int idosoba) public Osoba getOsobaById(int idosoba) public ArrayList<Osoba> getLast10Osoba()
V
Kreirati stranicu index.jsp sa linkom na stranicu unos.jsp i linkom na ServletOsaba sa parametrom akcija=ispis“.
Kreirati stranicu unos.jsp sa formom za prosleđivanje imena, prezimena i JMBG na ServletOsaba metodom POST.
Kreirati stranicu ispis.jsp koji preuzima prosleđenu listu studenata i ispisuje je u tabelu sledećeg formata.
C
Kreirati ServletOsoba koji u :
post metodi obrađuje akciju „unos“, provera da li JMBG ima 13 karaktera i ako je OK unosi studenta u bazu, u suprotnom vraća poruku „JMBG pogrešan“
get metodi obrađuje akciju „ispis“. Iz baze uzima poslednjih 10 studenata metodom DAO klase i tako dobijenu listu studenata prosleđuje na ispis.jsp
1
REŠENJE: VAŽNIJI DELOVI KODA
public class Osoba {private int idosoba;private String ime;private String prezime;private String JMBG;private Timestamp vremeUpisa;
}
public class OsobaDAO { private DataSource ds;
// DEFINICIJA KONEKCIONIH STRINGOVAprivate static String INSERTOSOBA =
"INSERT INTO osoba (ime, prezime, JMBG, vremeUpisa) VALUES (?, ?, ?, CURRENT_TIMESTAMP)";
// DEFINICIJA KONSTRUKTORA ZA PODESAVNJE KONEKCIJEpublic OsobaDAO(){try {
InitialContext cxt = new InitialContext();if ( cxt == null ) { } ds = (DataSource) cxt.lookup( "java:/comp/env/jdbc/mysql" ); if ( ds == null ) { } } catch (NamingException e) {}
}
// DEFINICIJA METODE ZA UNOS OSOBE U BAZUpublic void insertOsoba(Osoba osoba){
Connection con = null;PreparedStatement pstm = null;
try {con = ds.getConnection();pstm = con.prepareStatement(INSERTOSOBA);
pstm.setString(1, osoba.getIme());pstm.setString(2, osoba.getPrezime());pstm.setString(3, osoba.getJMBG());
pstm.execute();}
catch (SQLException e) {
e.printStackTrace();}try {
con.close();} catch (SQLException e) {
e.printStackTrace();}
}// DEFINICIJA OSTALIH METODA ...
}
2
public class ServletOsoba extends HttpServlet {
protected void doGet(request, response) {//prikupljanje parametara
String akcija = new String(request.getParameter("akcija"));
//inicijalizacija DAO klase za konekciju sa bazomOsobaDAO od = new OsobaDAO();ArrayList<Osoba> lo = new ArrayList<Osoba>();
//obavezna provera tacnosti prosledjenih parametara if (akcija != null && akcija.length()>0){
if(akcija.equals("ispis")){
// poziv DAO metodelo = od.getLast10Osoba();
// setovanje atributa ListaOsoba lorequest.setAttribute("lo", lo);
// prosledjivanje odgovora na ispis.jsp request.getRequestDispatcher("ispis.jsp").forward(request, response);
}}else{
//odgovor za lose primljene parametre request.setAttribute("msg","Greska!!!"); request.getRequestDispatcher("unos.jsp").forward(request, response);}
}
protected void doPost(request, response) {
// prikupljanje parametaraString ime = new String(request.getParameter("ime"));String prezime = new String(request.getParameter("prezime"));String JMBG = new String(request.getParameter("JMBG"));String akcija = new String(request.getParameter("akcija"));
// inicijalizacija DAO klase za konekciju sa bazomOsobaDAO od = new OsobaDAO();
// obavezna provera tacnosti prosledjenih parametaraif (ime != null && ime.length()>0 &&
prezime != null && prezime.length()>0 && JMBG != null && JMBG.length()>0 && akcija != null && akcija.length()>0){
// obrada zahteva ako su svi parametri dobro prosledjeni if(akcija.equals("UNOS")){
if (JMBG.length()!= 13){ request.setAttribute("msg", "JMBG pogresan !!!"); request.getRequestDispatcher("unos.jsp").forward(request, response);}else{
// kreiranje osobe od prosledjenih parametaraOsoba osoba = new Osoba(ime, prezime, JMBG);
// unos osobe u bazu pomocu metode DAO klaseod.insertOsoba(osoba);
3
// odgovor posle obradjenih parametara request.setAttribute("msg", "Uspesan unos !!!"); request.getRequestDispatcher("unos.jsp").forward(request, response);}
}}else{
//odgovor ako parametri nisu dobro prosledjeni request.setAttribute("msg","Morate popuniti sva polja !!!");request.getRequestDispatcher("unos.jsp").forward(request, response);
}}}index.jsp<a href="unos.jsp"><font color="blue"> UNOS </font></a><br><a href="ServletOsoba?akcija=ispis"><font color="blue"> ISPIS </font></a><br>unos.jsp<table>
<form name="myform" action="ServletOsoba" method=post><tr height="25">
<td align="right" width="20%" bgcolor="#FFFF66">IME :</td><td><input type="text" name="ime" id="ime" size="20"></td>
</tr><tr height="25">
<td align="right" width="20%" bgcolor="#FFFF66">PREZIME :</td><td><input type="text" name="prezime" id="prezime" size="20"></td>
</tr><tr height="25">
<td align="right" width="20%" bgcolor="#FFFF66">JMBG :</td><td><input type="text" name="JMBG" id="adresa" size="20"></td>
</tr><tr height="25">
<td align="center" width="20%" colspan="2"><input type="submit"name="akcija" value="UNOS"></td>
</tr></form><tr height="25">
<td colspan="2"> <a href="index.jsp"><font color="blue"><<== povratak </font></a> </td>
</tr><%String msg = (String) request.getAttribute("msg");if (msg!= null && msg.length()>0){%><tr height="25">
<td colspan="2"><%= msg %></td></tr>
<%} %></table>ispis.jsp
<table width="70%" border="0" cellspacing="1" align="center"><tr height="12">
<td colspan="6"></td></tr><tr bgcolor="#C2B1F0">
<td align="center">RB</td><td align="center">ID OSOBE</td><td align="center">IME</td><td align="center">PREZIME</td><td align="center">JMBG</td><td align="center">VREME UNOSA</td>
</tr>
4
<%ArrayList<Osoba> lo = (ArrayList<Osoba>)request.getAttribute("lo");
if (lo != null) {ListIterator itr = lo.listIterator();
int i = 0;
while (itr.hasNext()) {Osoba pom = (Osoba) itr.next();
%><tr bgcolor="#EBC7D0">
<td align="center"><%= ++i %></td><td align="center"><%= pom.getIdosoba()%></td><td align="center"><%= pom.getIme()%></td><td align="center"><%= pom.getPrezime()%></td><td align="center"><%= pom.getJMBG()%></td><td align="center"><%= pom.getVremeUpisa().toLocaleString()%></td>
</tr><%}
}%>
<tr><td align="center" colspan="8">
<a href="index.jsp"><font color="blue"> <<== povratak </font></a> </td>
</tr></table>
5