连续检查Java应用程序中的外部数据库

时间:2016-05-09 22:21:42

标签: java database database-connection

我正在尝试创建一个可以访问托管在那里的MySQL数据库的Java应用程序,并将SELECTUPDATE语句发送到特定的表。

我当前的连接代码如下所示:

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肯定是公开的(以及setPasswordsetServerName)。我不知道它为什么会引起问题。

1 个答案:

答案 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