我正在尝试使用JDBC连接器连接Java和MySQL。所以,我从official cite下载了连接器,将其添加到类路径并添加到eclipse库中。 现在我正在使用下面的代码
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
public class LocalhostDBConnection
{
LocalhostDBConnection()
{
Connection connection;
try {
// Название драйвера
String driverName = "com.mysql.jdbc.Driver";
Class.forName(driverName);
// Create a connection to the database
String serverName = "localhost";
String mydatabase = "AvtoKovriki";
String url = "jdbc:mysql://" + serverName + "/" + mydatabase;
String username = "root";
String password = "";
connection = DriverManager.getConnection(url, username, password);
System.out.println("is connect to DB" + connection);
String query = "Select * FROM users";
Statement stmt = connection.createStatement();
ResultSet rs = stmt.execute(query);
String dbtime;
while (rs.next())
{
dbtime = rs.getString(1);
System.out.println(dbtime);
} // end while
connection.close();
} // end try
catch (ClassNotFoundException e)
{
e.printStackTrace();
// Could not find the database driver
} catch (SQLException e)
{
e.printStackTrace();
// Could not connect to the database
}
}
}
但是在字符串中:ResultSet rs = stmt.execute(query);有一个错误“类型不匹配:无法从布尔值转换为ResultSet”。 我无法理解问题所在。需要一些帮助。
答案 0 :(得分:4)
Statement#execute方法返回boolean
。您正在寻找Statement#executeQuery方法,该方法返回ResultSet
。
您的代码应该是这样的:
ResultSet rs = stmt.executeQuery(query);
答案 1 :(得分:1)
首先,这与MySQL无关 - 你没有得到运行代码,你的代码都没有处理特定于MySQL的类型。 (我的观点是你可能会或者可能没有MySQL jar文件在正确的地方;这个错误不是由于这个。)
如果查看Statement.execute(String)
的文档,您会看到返回boolean
,而不是ResultSet
。这就是你得到编译时错误的原因。
您想要executeQuery(String)
- 或 可以1>},如果它返回true,请致电execute(String)
。
答案 2 :(得分:0)
您需要使用executeQuery(String sql)
方法
有关提供的方法的详细信息,请参阅javadocs
http://docs.oracle.com/javase/6/docs/api/java/sql/Statement.html
答案 3 :(得分:0)
stmt.execute(query);
返回boolean而不是ResultSet。你可以得到
结果集使用stmt.executeQuery()
方法进行查询而不是
修改数据库中的数据。
如果要修改数据库中的数据,请使用executeUpdate()
方法,该方法将返回一个整数,以指示数据是否已被修改。