Dopiero zaczołem poznawac iBatis i bazy danych.
Próbowałem zrzutowac na Integer błędu nie ma ale tez jest 0
moze pokaze calosc:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE sqlMap
PUBLIC "-//ibatis.apache.org//DTD SQL Map 2.0//EN"
"http://ibatis.apache.org/dtd/sql-map-2.dtd">
<sqlMap namespace="Towary">
<insert id="dodaj" parameterClass="Towary">
insert into Towary (id_p, ilosc)
values (#id_p#,#ilosc#)
</insert>
<insert id="dodajT" parameterClass="Towary">
insert into IDPRODUKTU (id_p, nazwa, cena)
values (#id_p#, #nazwa#, #cena#)
</insert>
<!--- Showing all data of table -->
<select id="all" resultClass="Towary">
select * from produkty1
</select>
<select id="wysAll" resultClass="Towary">
select a.id_p, a.ilosc , b.nazwa, b.cena
from TOWARY a, IDPRODUKTU b
where (a.id_p = b.id_p);
</select>
<select id="wysID" resultClass="Towary">
select a.id_p, a.ilosc , b.nazwa, b.cena
from TOWARY a, IDPRODUKTU b
where (a.id_p = b.id_p)AND a.id_p=#id#;
</select>
<select id="lastID" resultClass="Towary">
select MAX(id_p) from TOWARY
</select>
<update id="Dostawa" parameterClass="int">
update TOWARY set ILOSC=ILOSC+1 where id_p=#id#;
</update>
<update id="Stan" parameterClass="int">
update TOWARY set ILOSC=(ILOSC-1) where id_p=#id#;
</update>
</sqlMap>
public class Towary {
String nazwa;
int ilosc;
int cena;
int id;
int id_p;
public Towary(int id_p,String nazwa, int ilosc, int cena){
this.id_p=id_p;
this.nazwa=nazwa;
this.ilosc=ilosc;
this.cena=cena;
}
// plus getery i setery
import com.ibatis.common.resources.Resources;
import com.ibatis.sqlmap.client.SqlMapClient;
import com.ibatis.sqlmap.client.SqlMapClientBuilder;
import java.io.*;
import java.sql.SQLException;
import java.util.*;
public class Sklep {
static SqlMapClient sqlMap;
Reader reader;
public Sklep() throws IOException, SQLException {
this.reader = Resources.getResourceAsReader("sqlMapConfig.xml");
this.sqlMap = SqlMapClientBuilder.buildSqlMapClient(reader);
lista();
}
public static List<Towary> lista()throws SQLException{
return (List<Towary>)sqlMap.queryForList("Towary.wysAll", null);
}
public static void dostawaProduktu(int kodTowaru)throws SQLException{
sqlMap.update("Towary.Dostawa",kodTowaru);
}
public static void dostawaWielu(int kodProduktu, int ileProduktow)throws SQLException{
for(int i=0; i<ileProduktow; i++){
dostawaProduktu(kodProduktu);
}
}
public static void wysProdukt(int kod) throws SQLException{
Towary t = (Towary)sqlMap.queryForObject("Towary.wysID", kod);
System.out.println(t.getNazwa()+ " " + t.getCena()+"zl "+" na stanie:"+t.getIlosc() );
}
public Towary kup(int kod, int ilosc)throws SQLException{
Towary t =(Towary)sqlMap.queryForObject("Towary.wysID", kod);
int doZaplaty= t.getCena()*ilosc;
System.out.println("kupiles: "+t.getNazwa()+" - ilosc: "+ilosc+" do zaplaty: "+doZaplaty+" zl");
for(int i=0; i<ilosc; i++){
sqlMap.update("Towary.Stan", kod);
}
return t;
}
public static void kupProdukt(int kod) throws SQLException{
sqlMap.update("Towary.Stan", kod);
}
public static void dodajTowar(int kod, String nazwa, int ilosc, int cena)throws SQLException{
Towary towar = new Towary(kod, nazwa, ilosc,cena);
sqlMap.insert("Towary.dodaj", towar); //1. dodaje wiersz to tabeli towary
sqlMap.insert("Towary.dodajT", towar); //2 dodaje towar
}
public void wyswietl() throws SQLException{
System.out.println("w sklepie na stanie: ");
System.out.println("---------------------------");
System.out.printf("%1$4s| %2$-7s| %3$-5s|%4$-6s","kod","nazwa", "cena", "ilosc"+"\n");
System.out.print("---------------------------"+"\n");
for(Towary tt: lista())
System.out.printf("%1$4s|%2$-8s|%3$6s|%4$6s",tt.getId_p(), tt.nazwa, tt.getCena(), tt.getIlosc()+"\n");
//System.out.printf("%2$s",tt.getId_p());
//+" " + tt.getCena()+ " "+ tt.ilosc+"\n");
//System.out.printf("%1$s", tt.getNazwa());
System.out.println("---------------------------");
}
public static void main(String[] args) throws SQLException, IOException{
Sklep sklep =new Sklep();
//Sklep.dodajTowar(127, "keczup", 10, 4, sklep.sqlMap); // zwieksz zawsze o jeden zeby kody sie nie powtarzaly
//List<Towary> tow = (List<Towary>)sklep.sqlMap.queryForList("Towary.all",null);
//kupProdukt(124); // odejmuje 1 sztuke ze stanu(kup);
wysProdukt(111);
//System.out.println(" ostani : "+ lastID());
//Sklep.dostawaProduktu(123); // dostawa jednego poduktu o podanym kodzie
//dostawaWielu(124, 5); // dostawa wielu produktow o podanym kodzie
System.out.println(sklep.kup(124,1));
// System.out.println("tak czy nie : "+sklep.sprawdz(150));
sklep.wyswietl();
}
}
i jeszcze jeden konfiguracyjny połączenie ale juz nie będę go wklejał.