eclipse ile sqlite arasındaki bağlantı problemi

    2
    wertyus 2.9.2020 16:47
    bir iş görüşmesi sonrası benden sqlite veri tabanını kullandığımız bir program yazmamı istediler. programın genel tasarımını yaptım. konsol kısmında kaydetme, güncelleme işlevlerini kullanabiliyorum ama kaydetme işlevi ile veri eklemeye çalıştığımda bir sıkıntı yaşamadım. ancak bu verileri görmek için listelediğim de [sqlıte_error] sql error or missing database (no such table: database.db) hatası alıyorum.

    bakmadığım site danışmadığım adam kalmadı. bir türlü sorunu bulamadım.

    bu konu ile ilgili bir fikriniz bir düşünceniz bir çözümünüz var mıdır?

    ayriyeten karşılaştığım bir diğer hata yetersiz ram hatası (picked up _java_optıons: -xmx1024m)
  • 1
    martin 2.9.2020 17:26
    aslında stack trace paylaşsan daha iyi bir yönlendirme yapabilirim. db file bulamıyor gibi görünüyor. path'ini doğru verdiğinden emin misin?

    picked up _java_optıons: -xmx1024m hatası için burayıtakip edebilirsin.
    0
    wertyus 2.9.2020 17:32

    import java.sql.;
    import java.util.scanner;

    public class faz1 {

    static connection con;
    static statement stmt;
    static string vtad ;


    public static void main(string[] args) {
    vtad = "database.db";
    try
    {
    yenivtolustur(vtad);
    }catch(exception e){ system.out.println(e);}

    scanner scan= new scanner(system.in,"iso-8859-9");
    int secim;

    while(true)
    {
    system.out.println("***********");
    system.out.println("1.kaydet");
    system.out.println("2.listele");
    system.out.println("3.güncelle");
    system.out.println("4.raporlama");
    system.out.println("5.çıkış");
    system.out.print("seçiminiz:");
    secim=scan.nextınt();

    system.out.println("***********
    ");


    if(secim==1) kaydet();
    if(secim==2) listele();
    if(secim==3) guncelle();

    if(secim==5) {
    try{
    stmt.close();
    con.close();
    }catch(exception e){
    system.out.println(e);
    }

    break;
    }
    }
    }

    public static void yenivtolustur(string faz1) throws classnotfoundexception {
    try{
    class.forname("org.sqlite.jdbc");
    con = drivermanager.getconnection("jdbc:sqlite:c:\\users\\ziyae\\desktop\\db browser for sqlite\\database.db");
    stmt = con.createstatement();
    string sql = "create table if not exists database " +
    "(urun no ınt prımary key not null," +
    " urun adı char not null, " +
    " urun fiyatı float not null," + " urun barkodu ınt not null, " + " urun kdv ınt not null )";
    stmt.executeupdate(sql);
    system.out.println("veritabanı oluşturma başarılı");
    } catch (sqlexception e) {
    system.out.println(e.getmessage());
    }
    }
    public static void listele()
    {
    try{

    statement stmt=con.createstatement();
    resultset rs=stmt.executequery("select
    from database.db");
    while(rs.next())
    system.out.println(rs.getınt(1)+" "+rs.getstring(2)+" "+rs.getfloat(3)+" "+rs.getınt(4)+" "+rs.getınt(5));

    }catch(exception e){ system.out.println(e);}

    }
    public static void kaydet()
    {
    scanner scan= new scanner(system.in,"iso-8859-9");
    system.out.print("yeni ürün no :");
    int yenino = scan.nextınt();

    system.out.print("yeni ürün adı :");
    string ad=scan.next();

    system.out.print("yeni ürün fiyatı :");
    float fiyat=scan.nextfloat();

    int kdv =0 ;
    int kdv1 = 0; int kdv2 = 1; int kdv3 = 8; int kdv4 = 18;
    if(kdv==kdv1) {
    system.out.print("yeni ürün kdv'si :");

    kdv = scan.nextınt();
    }

    system.out.print("yeni ürün barkodu :");
    int barkod = scan.nextınt();
    try{
    statement stmt=con.createstatement();
    string sorgu=string.format("insert into urun values( %d, '%s', '%d', '%f', '%d', '%d')", yenino,ad,fiyat,kdv,barkod);
    int ekleme = stmt.executeupdate(sorgu);
    system.out.println("kayıt eklendi");
    }catch(exception e){ system.out.println(e);}
    }

    bilmiyorum ya gezmediğim site kalmadı. gurur meselesi oldu artık. "kaydet" kısmı ve altı düz işlev orada hata olabilir. tam anlamıyla düzenleyemedim maalesef.
    0
    martin 2.9.2020 17:58
    aslında stack trace 'den kastım hata detayını demek istedim. hatayı aşağıdaki metotda mı alıyorsun? alıyorsan hangi satırda? "c:\\users\\ziyae\\desktop\\db browser for sqlite\\database.db" dizininde db dosyası mevcut mu?

    public static void yenivtolustur(string faz1) throws classnotfoundexception {
    try{
    class.forname("org.sqlite.jdbc");
    con = drivermanager.getconnection("jdbc:sqlite:c:\\users\\ziyae\\desktop\\db browser for sqlite\\database.db");
    stmt = con.createstatement();
    string sql = "create table if not exists database " +
    "(urun no ınt prımary key not null," +
    " urun adı char not null, " +
    " urun fiyatı float not null," + " urun barkodu ınt not null, " + " urun kdv ınt not null )";
    stmt.executeupdate(sql);
    system.out.println("veritabanı oluşturma başarılı");
    } catch (sqlexception e) {
    system.out.println(e.getmessage());
    }
    }
    0
    wertyus 2.9.2020 18:05 ~ 18:10
    satır bazında hata gözükmüyor.
    dizinde dosya mevcut.
    beynim pelteye döndü kusura bakma anlayamıyorum artık.