作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有以下代码,使用 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 注入(inject)吗?
我的尝试:
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 使用 ?
字符作为绑定(bind)变量通常所在的占位符。您必须使用 PreparedStatement
才能使用 ?
占位符。然后你可以调用setXXX
方法(这里是从1开始索引!)来绑定(bind)变量然后执行。
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();
关于c# - 如何从 C# 转换为 Java JDBC,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22768632/
我是一名优秀的程序员,十分优秀!