JDBC基础----用户登录案例
来源:互联网 发布:mac 抹除系统 重装 编辑:程序博客网 时间:2024/06/11 18:07
概念:JDBC(java database connectivity),就是一种API,提供了规范,定义了接口和类,用于方便操作不同数据库
掌握JDBC的基础就在于四个类
1. DriverManager 驱动类2. Connection 连接类3. PreparedStatement 语句类4. ResultSet 结果类
驱动类:因为市面上有很多的数据库产品,那么相应的就会有许多的驱动,这些都是由数据库厂商提供的
连接类:这是数据库与程序之间的桥梁
语句类:用于编写各种SQL语句来操作数据库
结果类:自然是用来接收返回的数据的
其中重点的方法:
//1. 加载mysql驱动类Class.forName("com.mysql.jdbc.Driver");//2. 获得连接对象/**'jdbc:mysql://' 为连接mysql固定写法'localhost:3306/' 表示为连接本机IP的mysql的默认3306端口'test' 要连接的数据库名 */String url = "jdbc:mysql://localhost:3306/test"; String user = "abc";String password = "123";Connection conn = DriverManager.getConnection(url, user, password);//3. 准备SQL语句/**sql中的*号可以使用setString()方法被替换成条件被执行*/String sql = "SELECT * FROM user WHERE name = ? AND pwd = ?";PreparedStatement ps = conn.prepareStatement(sql);ps.setString(1, name);ps.setString(2, pwd);//4. 处理结果ResultSet rs = ps.executeQuery(); //执行查询语句,接收返回结果while(rs.next()) { 一笔一笔循环取值,若没有值,返回false String s = rs.getString(1); //取出当前行中第一个字段 Int i = rs.getInt(2); //取出当前行中第二个字段 ...}//5. 别忘了关闭资源rs.close();ps.close();conn.close();
贴上代码
package util;import java.sql.Connection;import java.sql.DriverManager;import java.sql.ResultSet;import java.sql.SQLException;import java.sql.Statement;import java.util.ResourceBundle;public class DBUtils { private static String driveClass; private static String url; private static String user; private static String password; static { url = "jdbc:mysql:///test?useSSL=false"; user = "abc"; password = "123"; try { Class.forName("com.mysql.jdbc.Driver"); } catch(ClassNotFoundException e) { e.printStackTrace(); } } //得到连接 public static Connection getConnection() throws SQLException{ return DriverManager.getConnection(url, user, password); } //关闭资源 public static void closeAll(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 service;import java.sql.Connection;import java.sql.PreparedStatement;import java.sql.ResultSet;import java.sql.SQLException;import entity.User;import util.DBUtils;public class DoLogin { public User findUser(String name, String password) { Connection conn = null; PreparedStatement ps = null; ResultSet rs = null; User u = null; try { conn = DBUtils.getConnection(); String sql = "SELECT * FROM user WHERE name = ? AND pwd = ?"; ps = conn.prepareStatement(sql); ps.setString(1, name); ps.setString(2,pwd); rs = ps.executeQuery(); if(rs.next()) { u = new User(); u.setName(rs.getString(1)); u.setPassword(rs.getString(2)); } } catch(SQLException e) { e.printStackTrace(); } finally { DBUtils.closeAll(rs, ps, conn); } return u; }}
package client;import java.util.Scanner;import entity.User;import service.DoLogin;public class Login { public static void main(String[] args) { // TODO Auto-generated method stub System.out.println("请输入用户名"); Scanner scan = new Scanner(System.in); String name = scan.nextLine(); System.out.println("请输入密码"); String password = scan.nextLine(); DoLogin dl = new DoLogin(); User u = dl.findUser(name, password); if(u != null) { System.out.println("欢迎登陆" + " " + u.getName()); } else { System.out.println("用户名或者密码有误"); } }}
package entity;public class User { private String name; private String password; public User() { } public String getName() { return name; } public void setName(String name) { this.name = name; } public String getPassword() { return password; } public void setPassword(String password) { this.password = password; } @Override public String toString() { return "User [name=" + name + ", password=" + password + "]"; }}
阅读全文
0 0
- JDBC基础----用户登录案例
- 用户注册登录案例
- 用户登录注册案例
- Session案例 用户登录
- jdbc用户登录
- 用户登录注册案例分析
- PHP案例实现用户登录
- structs2入门 用户登录案例
- 用户自动登录案例分析
- 用户注册和登录案例
- 用户登录注册案例分析
- 用户登录记住密码案例
- 案例------用户登录记住密码
- 用户登录记住密码案例
- 案例------用户登录记住密码
- 用户登录记住密码案例
- 用户登录记住密码案例
- 用户登录系统 by JDBC
- 阿里云ubutu服务器安装jdk、tomact
- 小蓝退出舞台,谁能挺过O2O的第一个寒冬?
- 调用caffe的Python和C++的方法
- 线程传值风险
- Qt的Json数据生成--备忘
- JDBC基础----用户登录案例
- 文章标题
- React Native 聊天室置底输入框的设计
- Android实战系列(二)---多用户类型登录(webview)
- Swing 有关JList的问题
- java调用dll文件
- 建设部,住建部,住房和城乡建设部,区别?
- 使用Apache ab进行压测
- React | 高效前端之浅谈