Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/356.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何从C#转换为Java JDBC_C#_Java_Mysql_Jdbc - Fatal编程技术网

如何从C#转换为Java JDBC

如何从C#转换为Java JDBC,c#,java,mysql,jdbc,C#,Java,Mysql,Jdbc,我使用C#操作SQL Server中的数据时得到了以下代码: using (SqlConnection myDatabaseConnection = new SqlConnection(myConnectionString.ConnectionString)) { myDatabaseConnection.Open(); using (SqlCommand SqlCommand = new SqlCommand("Select * from Users where Usernam

我使用C#操作SQL Server中的数据时得到了以下代码:

using (SqlConnection myDatabaseConnection = new SqlConnection(myConnectionString.ConnectionString))
{
    myDatabaseConnection.Open();
    using (SqlCommand SqlCommand = new SqlCommand("Select * from Users where Username = @UserName and Password = @Password", myDatabaseConnection))
    {
        SqlCommand.CommandType = CommandType.Text;
        SqlCommand.Parameters.AddWithValue("@UserName", TextBox1.Text);
        SqlCommand.Parameters.AddWithValue("@Password", TextBox2.Text);
        SqlDataReader DR1 = SqlCommand.ExecuteReader();
        if (DR1.Read())
        {
            //some code
        }
    }
}
如何使用JDBC和MySQL作为数据库将其转换为Java?我可以避免SQL注入吗

我的尝试:

try (Connection conn = DriverManager.getConnection(dbURL, username, password)) {
    String sql = "Select * from Users where Username = @UserName and Password = @Password";
    Statement statement = conn.createStatement();
    //parameters?
    ResultSet result = statement.executeQuery(sql);
    while (result.next()) {
        //some code
    }        
} catch (SQLException ex) {
    ex.printStackTrace();
}

JDBC使用
字符作为占位符,绑定变量通常会放在占位符中。必须使用
PreparedStatement
才能使用
占位符。然后可以调用
setXXX
方法(这里是基于1的索引!)绑定变量,然后执行

String sql = "Select * from Users where Username = ? and Password = ?";
PreparedStatement pStatement = conn.prepareStatement(sql);
pStatement.setString(1, username);
pStatement.setString(2, password);
ResultSet rs = statement.executeQuery();

DataReader.Read()是否等同于result.next()?从我在网上可以了解到的关于
SqlDataReader
Read()
(我不是C语言人),它似乎等同于
ResultSet
next()
方法。它前进到下一条记录,如果有下一条记录,则返回一个
布尔值。