//通过键盘录入用户名和密码 //连接数据库 //判断用户是否登录成功
配置文件:
url=jdbc:mysql://localhost:3306/db2 user=root password=*********//写自己数据库的密码 driver=com.mysql.cj.jdbc.Driver
JDBCUtil工具类:
package demo7; import java.io.FileNotFoundException; import java.io.FileReader; import java.io.IOException; import java.net.URL; import java.sql.*; import java.util.Properties; public class JDBCUtils { private static String url; private static String user; private static String password; private static String driver; //配置文件读取一次,用静态代码块 static { try { //读取文件 //创建集合类 Properties prop = new Properties(); ClassLoader classLoader = JDBCUtils.class.getClassLoader(); URL resource = classLoader.getResource("jdbc.properties"); String path = resource.getPath(); //加载文件 prop.load(new FileReader(path)); url=prop.getProperty("url"); user=prop.getProperty("user"); password=prop.getProperty("password"); driver=prop.getProperty("driver"); //注册驱动 Class.forName(driver); } catch (ClassNotFoundException e) { throw new RuntimeException(e); } catch (FileNotFoundException e) { throw new RuntimeException(e); } catch (IOException e) { throw new RuntimeException(e); } } //获取连接 public static Connection getConnection() throws SQLException { return DriverManager.getConnection(url,user,password); } //释放资源 public static void close(Statement stmt,Connection conn) { if(stmt != null) { try{ stmt.close(); }catch (SQLException e) { e.printStackTrace(); } } if(conn != null) { try { conn.close(); }catch (SQLException e) { e.printStackTrace(); } } } //重载 public static void close(ResultSet rs, Statement stmt, Connection conn) { if(rs!= null) { try{ rs.close(); }catch (SQLException e) { e.printStackTrace(); } } if(stmt != null) { try{ stmt.close(); }catch (SQLException e) { e.printStackTrace(); } } if(conn != null) { try { conn.close(); }catch (SQLException e) { e.printStackTrace(); } } } }
测试类:
package demo7; import java.sql.Connection; import java.sql.ResultSet; import java.sql.SQLException; import java.sql.Statement; import java.util.Scanner; //通过键盘录入用户名和密码 //判断用户是否登录成功 public class JDBCtest { public static void main(String[] args) { //键盘录入 Scanner sc = new Scanner(System.in); System.out.println("Enter the name"); String name = sc.nextLine(); System.out.println("Enter the password"); String password = sc.nextLine(); //调用方法 boolean flag = new JDBCtest().login(name, password); if (flag) { System.out.println("You have successfully logged in!"); } else { System.out.println("You have unsuccessfully logged in!"); } } //登录方法 public boolean login(String username, String password) { //健壮性判断 if (username == null || password == null) { return false; } //连接数据库 Connection conn = null; Statement stmt = null; ResultSet rs = null; //1.获取连接 try { conn = JDBCUtils.getConnection(); //定义sql String sql = "select * from user where name='"+username+"' and password='"+password+"'"; //获取执行的sql对象 stmt = conn.createStatement(); //执行查询 rs = stmt.executeQuery(sql); //判断 return rs.next();//如果有下一行,返回true } catch (SQLException e) { throw new RuntimeException(e); }finally { JDBCUtils.close(rs, stmt, conn); } } }