Java Sqlite如何打印.rowname



我问自己如何使用jbdc-sqlite在Java中打印a.rowname。或者我采取了错误的解决方案来获取所有选定的数据?

我试过这个:

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"));
}
}

我得到了这个错误:

no such column: 'a.name' 

在Python中,它的工作方式有点像这样。稍后我可以从数组中获取选定的数据:

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()

您没有选择a.spieler

尝试:

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"));
}

问题编辑后更新对没有点的列使用别名:

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"));
}

最新更新