java和jdbc 登录时代码以及常见问题

package jdbc;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.Scanner;

import java.sql.PreparedStatement;

public class TestLogin {

public static void main(String[] args) {
Connection conn = null;
Statement sm = null;
PreparedStatement ps = null;
ResultSet rs = null;
try {
//1.加载驱动
Class.forName("com.mysql.jdbc.Driver");
//2.获得连接
conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/epet", "root", "root");
//3.发送SQL语句,得到结果
//sm = conn.createStatement();


Scanner input = new Scanner(System.in);
System.out.println("输入登录的用户名:");
String name = input.next();
System.out.println("输入密码:");
String password = input.next();

//String sql = "select * from master where name='"+name+"' and password='"+password+"'";
String sql = "select * from master where name=? and password=?";
//sql = "select * from master where name='"+name+"' and password='sdfsdf' or '1'='1'";
ps = conn.prepareStatement(sql);
ps.setString(1, name);
ps.setString(2, password);

//rs = sm.executeQuery(sql);
rs = ps.executeQuery();
boolean flag = false;
//4.处理结果
while(rs.next()) {
//name password
//String name1 = rs.getString("name");
//String password1 = rs.getString("password");

/*if(name1.equals(name) && password1.equals(password)) {
flag = true;
}*/
flag = true;

}
if(flag) {
System.out.println("登录成功!");
} else {
System.out.println("登录失败!");
}

} catch (ClassNotFoundException e) {
e.printStackTrace();
} catch (SQLException e) {
e.printStackTrace();
} finally {
try {
if(conn != null) {
conn.close();
}
//sm.close();
if(ps!=null) {
ps.close();
}
if(rs != null) {
rs.close();
}
} catch (SQLException e) {
e.printStackTrace();
}
}

}

}

原文地址:https://www.cnblogs.com/dongrilaoxiao/p/6758046.html