Skip to content
Advertisement

Java Sqlite how to print a.rowname

I asked myself how I print a.rowname in Java with jbdc sqlite. Or did I take the wrong solution to fetch all the Selected data?

I tried this:

String vergleichVon ="DB_18_12_2021_02h13m05s";
String vergleichBis ="DB_18_12_2021_08h28m19s";

Connection connection = null;
try
{
    //Connect to Database
    connection = DriverManager.getConnection("jdbc:sqlite:"+dataBasePath+"");
    Statement c = connection.createStatement();
    c.setQueryTimeout(30);  // set timeout to 30 sec.

    ResultSet rs = c.executeQuery("SELECT a.name, a.pt, b.pt, a.sz, a.bd"+
                                    "FROM "+vergleichVon+" AS a, "+vergleichBis+" AS b "+
                                    "WHERE a.name= b.name AND a.pt>'1000' AND b.pt>='1000' AND a.pt!='n/v' AND b.pt!='n/v' "+
                                    "ORDER BY a.pt DESC");
    while(rs.next())
    {
      // read the result set
      System.out.print("nameA = " + rs.getString("a.name"));
      System.out.print(" ");
      System.out.println("ptB = " + rs.getString("b.pt"));
    }
}

And I get this error:

no such column: 'a.name' 

In Python it works kind of like this. I can later just get the Selected data from the array:

c.execute('''SELECT a.name, a.pt, b.pt, a.sz, a.bd
          FROM '''+vergleich_von+''' AS a, '''+vergleich_bis+''' AS b
          WHERE a.name= b.name AND a.pt>'1000' AND b.pt>='1000' AND a.pt!='n/v' AND b.pt!='n/v'
          ORDER BY a.pt DESC''')
array = c.fetchall()

Advertisement

Answer

You do not select a.spieler

try:

ResultSet rs = c.executeQuery("SELECT a.name as spieler, a.pt, b.pt as bpt, a.sz, a.bd"+
                                "FROM "+vergleichVon+" AS a, "+vergleichBis+" AS b "+
                                "WHERE a.name= b.name AND a.pt>'1000' AND b.pt>='1000' AND a.pt!='n/v' AND b.pt!='n/v' "+
                                "ORDER BY a.pt DESC");
while(rs.next())
{
  // read the result set
  System.out.print("nameA = " + rs.getString("spieler"));
  System.out.print(" ");
  System.out.println("ptB = " + rs.getString("bpt"));
}

Update after question edit Use aliases for the columns without dots:

ResultSet rs = c.executeQuery("SELECT a.name as name, a.pt as apt, b.pt as bpt, a.sz as asz, a.bd as adb"+
                                "FROM "+vergleichVon+" AS a, "+vergleichBis+" AS b "+
                                "WHERE a.name= b.name AND a.pt>'1000' AND b.pt>='1000' AND a.pt!='n/v' AND b.pt!='n/v' "+
                                "ORDER BY a.pt DESC");
while(rs.next())
{
  // read the result set
  System.out.print("nameA = " + rs.getString("name"));
  System.out.print(" ");
  System.out.println("ptB = " + rs.getString("bpt"));
}
User contributions licensed under: CC BY-SA
5 People found this is helpful
Advertisement