idea和mysql连接完成登录验证操作! | 您所在的位置:网站首页 › xampp如何安装 › idea和mysql连接完成登录验证操作! |
目的:完成idea和mysql数据库的连接,并获取mysql中某表的数据与控制台输入的数据进行对比验证! 逻辑:idea与mysql构建连接, 1、首先需要jar包!!然后就是 2、注册驱动(driver) 3、定义url、user、password三件套(连接数据库的url、登录数据库的账号、登录数据库的密码) 4、用三件套创建出connection这个真正与mysql相连的对象!最终目的就是为了创建出包含三件套的connection对象! 构思步骤: 初步:项目构建跳过! 1、资源获取(jar包依赖) 2、jdbc.properties配置文件设置(减少代码重复!) 3、写封装方法(选择写!将方法封装只是为了方便调用,减少代码篇幅) 3.1、构建connection方法(可以创建,也可以写在verify方法里!) 3.2、构建verify方法 (连接mysql、操作mysql、验证数据) 4、主题内容,调用封装好的方法!得到结果 实践: 1、资源获取(jar包依赖)-------跳过!载入即可 2、jdbc.properties配置文件设置 driverClassName=com.mysql.cj.jdbc.Driver url=jdbc:mysql://localhost:3306/a_learnsql?serverTimezone=Asia/Shanghai&characterEncoding=utf8 username=root password=123456 initialSize=5这里就包含了驱动、url、user(因为我导入了druid德鲁伊jar包,这里user就需要用username)、password三件套!initialSize是数据库连接池创建的连接数! 其中a_learnsql是数据库名称 3、写封装方法 3.1、构建connection方法 代码段部分截取!! public class jdbc { private static DataSource dataSource; static { try { InputStream resourceAsStream = jdbc.class.getClassLoader().getResourceAsStream("jdbc.properties"); Properties properties = new Properties(); properties.load(resourceAsStream); dataSource = DruidDataSourceFactory.createDataSource(properties); } catch (Exception e) { e.printStackTrace(); } } public static Connection getConnection(){ Connection connection=null; try { connection = dataSource.getConnection(); } catch (Exception throwables) { throwables.printStackTrace(); } return connection; }先在静态代码块中就先将 inputStream输入流、properties运输流数据、Druid创建连接池连接构建好!后用得到的连接构建mysql连接方法! (1)、jdbc.class.getClassLoader().getResourceAsStream("jdbc.properties"); 获取到jdbc.properties也就是前面写的mysql连接相关信息(url、user三件套) (2)、创建Properties的对象来传输获取到的三件套; (3)、 DruidDataSourceFactory.createDataSource(properties); 德鲁伊根据获取的三件套构建连接的中间量(相当于连接)!有实际意义! (4)、connection = dataSource.getConnection(); 方法中需要重新使用connection!前面dataSource是为了回避某些问题! 3.2、构建verify方法 验证登录代码块! public static void verify(String name,String password){ try { String sql = "select name,password from logintable where id=?"; PreparedStatement statement = dataSource.getConnection().prepareStatement(sql); statement.setInt(1,1);//数据库语句(sql)中的第1个问号,赋值为1 ResultSet resultSet = statement.executeQuery();//执行上方代码statement.setInt while (resultSet.next()){ if(resultSet.getString("name").equals(name)&& resultSet.getString("password").equals(password)){ System.out.println("登录成功"); return; }else { System.out.println("登录失败!用户名或密码错误"); } } } catch (SQLException throwables) { throwables.printStackTrace(); } }前面已经做好了连接,即已经跟数据库连接上,可以开始操作数据了! (1)、方法构造上我选择用有参方法,将输入的数据带进来方便对比! (2)、select name,password from logintable where id=? 数据库查询语句,返回logintable表中的name和password的属性,但条件是id等于?(问号是动态的,后面输入什么就是什么!) (3)、dataSource.getConnection().prepareStatement(sql); 构建prepareStatement运输工具来运输从数据库(前面定义的数据库语句里是sql,只是一句查询代码!真正的数据库早在前面url、user三件套时就连接好了)中拿到的数据! (4)、后面就是简单的循环判断语句,如果result有下一个值时,就开始循环验证! 4、主题内容 public static void main(String[] args) { Scanner scanner = new Scanner(System.in); System.out.println("请输入用户名:"); String name = scanner.next(); System.out.println("请输入密码:"); String password = scanner.next(); jdbc.verify(name,password); }结尾得到结果! 完成idea和mysql的连接,这里是固定的值,还可以添加循环完成验证! |
CopyRight 2018-2019 实验室设备网 版权所有 |