我正在尝试创建一个可以访问托管在那里的MySQL数据库的Java应用程序,并将SELECT
和UPDATE
语句发送到特定的表。
我当前的连接代码如下所示:
import com.mysql.jdbc.jdbc2.optional.MysqlDataSource;
MysqlDataSource dataSource = new MysqlDataSource();
dataSource.setUser("username"); -- line 1
dataSource.setPassword("password"); -- line 2
dataSource.setURL("db url"); -- line 3
然而,最后三行是在Eclipse中抛出这些错误:
第1行和第2行:
- Syntax error on token ";", @ expected
- Syntax error on token ".", @ expected after
第3行:
- Syntax error, insert "SimpleName" to complete
QualifiedName
- Syntax error, insert ")" to complete MethodDeclaration
- Syntax error, insert "Identifier (" to complete
MethodHeaderName
我查看了MysqlDataSource
的源代码,setUser
肯定是公开的(以及setPassword
和setServerName
)。我不知道它为什么会引起问题。
答案 0 :(得分:0)
可执行代码必须包装在类块中。 javac
期待注释,例如@Entity
(来自javax.persistence)或类声明。根据上面的代码,您的代码应如下所示:
import com.mysql.jdbc.jdbc2.optional.MysqlDataSource;
class DBCheck {
private MysqlDataSource dataSource;
public DBCheck() {
dataSource = new MysqlDataSource();
}
public Connection connect() throws SQLException {
dataSource.setUser("username");
dataSource.setPassword("password");
dataSource.setURL("db url");
return dataSource.getConnection();
}
public static main( String[] args ) {
Connection conn = null;
try {
DBCheck dbc = new DBCheck();
conn = dbc.connect();
} catch( SQLException e ) {
// code to handle exception
} finally {
if( conn != null ) {
conn.close();
}
}
}
}
有关使用不带JNDI的DataSource的更好解释,请参阅this short tutorial