JDBC连接数据库实现登录功能
在MySQL数据库中创建用户以及密码实现登录功能连接MySQL数据库登录验证在MySQL数据库中创建用户以及密码
选中要使用的数据库,在数据库中创立一个user的table ,其中包含两列varchar型数据,分别命名为LoginName和LoginPwd,然后在其中分别添加字符串作为用户名和密码。这里也可以增加登录人员的角色,如admin或者用户等。
实现登录功能
首先需要初始化界面,使用Map<String,String>来记录用户的登录信息
private static Map<String, String> initUI() {Scanner s=new Scanner(System.in);System.out.print("用户名:");String loginName=s.nextLine();System.out.print("密码:");String loginPwd=s.nextLine();Map<String,String> userLoginInfo=new HashMap<>();userLoginInfo.put("loginName",loginName);userLoginInfo.put("loginPwd",loginPwd);return userLoginInfo;}
连接MySQL数据库
连接数据库共分为六步,分别是
第一步:注册驱动(告诉JVM要连接那个公司数据库)
第二步:获取连接(JVM和数据库之间的通道打开)
第三步:获取数据库操作对象 (专门执行SQL语句的对象)
第四步:执行SQL语句
第五步:处理查询结果集(只有当第四部执行的是select的话,才有第五步)
第六步:释放资源(使用完资源之后关闭.Java和数据库属于进程间的通信)
将输入的用户名与密码与MySQ数据库中数据进行查询与比对
private static boolean Login(Map<String, String> userInfo) {boolean LoninSuccess=false;//JDBCConnection conn=null;PreparedStatement ps=null;ResultSet res=null;//单独定义从之前定义的userInfo的map中得到的用户名和密码String loginName=userInfo.get("loginName");String loginPwd=userInfo.get("loginPwd");try {//1注册驱动Class.forName("com.mysql.jdbc.Driver");//第二部:获取连接(JVM和数据库之间的通道打开)conn= DriverManager.getConnection("jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=utf-8","root","这里输入自己的数据库的密码");//第三部:获取预编译的数据库操作对象 (专门执行SQL语句的对象)String sql="select * from user where LoginName=? and LoginPwd=?"; // ?为占位符ps=conn.prepareStatement(sql);ps.setString(1,loginName);//给占位符?传递值ps.setString(2,loginPwd);//第四部:执行SQL语句res=ps.executeQuery();//第五步: 处理结果集if (res.next()){LoninSuccess=true; //若查询结果有数据返回则登录成功}}catch (Exception e){e.printStackTrace();}finally {//第六部:释放资源(使用完资源之后关闭.Java和数据库属于进程间的通信)if(res!=null){try {res.close();} catch (SQLException e) {e.printStackTrace();}}if(ps!=null){try {ps.close();} catch (SQLException e) {e.printStackTrace();}}if(conn!=null){try {conn.close();} catch (SQLException e) {e.printStackTrace();}}}return LoninSuccess;}
登录验证
对以上登录功能进行验证
public class LogIn {public static void main(String[] args) {//初始化界面Map<String,String> userInfo=initUI();//验证用户名和密码boolean LogInSuccess=Login(userInfo);System.out.println(LogInSuccess?"登录成功":"登录失败");}//以上登录与连接数据库代码}
效果如下