欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

使用JDBC工具類實(shí)現(xiàn)簡單的登錄管理系統(tǒng)

 更新時間:2022年02月24日 10:02:18   作者:勤奮的小鎮(zhèn)青年、  
這篇文章主要為大家詳細(xì)介紹了使用JDBC工具類實(shí)現(xiàn)簡單的登錄管理系統(tǒng),文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下

使用JDBC工具類實(shí)現(xiàn)一個簡單的登錄管理系統(tǒng),供大家參考,具體內(nèi)容如下

實(shí)現(xiàn)要求:

在控制臺實(shí)現(xiàn)一個用戶管理系統(tǒng),包含3個功能:

1.用戶登錄  2.注冊  3.用戶查詢。

啟動程序后,進(jìn)入主菜單選項(xiàng):

輸出:“請選擇您要操作的功能:1.用戶登錄  2.新用戶注冊 3所有用戶查詢: ”

功能說明:

1.用戶登錄:

請用戶輸入用戶名和密碼,接收后,去數(shù)據(jù)庫的users表中查詢是否存在該用戶名。并輸出合理的提示,例如:登錄成功!  用戶名不存在! 密碼錯誤!

不論登錄是否成功,都返回主菜單界面。

2.新用戶注冊 :

請用戶輸入用戶名和密碼,接收后,去數(shù)據(jù)庫的users表中執(zhí)行新增操作。并輸出合理的提示,例如:注冊成功!  用戶名已存在! 

3.所有用戶查詢:

該功能必須在用戶登錄后方可查看,如果用戶已經(jīng)登錄成功,即可在控制臺查看所有用戶的所有信息。如果沒有登錄,提示:您還沒有登錄呢,無權(quán)查看用戶信息!

第一步:創(chuàng)建JDBCUtils類和jdbc.properties文件

user=root
password=123456
url=jdbc:mysql://localhost:3306/db2?useSSLfalse&serverTimezone=UTC
//1.獲取連接對象 ?2.關(guān)閉連接對象---取代單元測試中的 ?@Before 和 @After 3.實(shí)現(xiàn)登錄驗(yàn)證
public class JDBCUtils {
? ? private static Connection conn;
? ? private static Properties prop;
? ? private ?static PreparedStatement prep;
? ? private static ResultSet rs;
? ? static {
? ? ? ? try {
? ? ? ? //使用類加載器加載jdbc.properties文件,返回一個字節(jié)流,和Properties關(guān)聯(lián)在一起
? ? ? ? ? ? InputStream is = JDBCUtils.class.getClassLoader().getResourceAsStream("jdbc.properties");
? ? ? ? ? ? //創(chuàng)建Properties對象
? ? ? ? ? ? prop = new Properties();
? ? ? ? ? ? prop.load(is);
? ? ? ? } catch (Exception e) {
? ? ? ? ? ? e.printStackTrace();
? ? ? ? }
? ? }
?? ?//1.獲取連接對象
? ? public static Connection getConnection(){
? ? ? ? try {
? ? ? ? ? ? return DriverManager.getConnection(prop.getProperty("url"),prop);
? ? ? ? } catch (SQLException e) {
? ? ? ? ? ? e.printStackTrace();
? ? ? ? }

? ? ? ? return null;
? ? }
?? ?//2.釋放資源
? ? public static void close(ResultSet rs, Statement state,Connection conn){
? ? ? ? if(rs !=null){
? ? ? ? ? ? try {
? ? ? ? ? ? ? ? rs.close();
? ? ? ? ? ? } catch (SQLException e) {
? ? ? ? ? ? ? ? e.printStackTrace();
? ? ? ? ? ? }
? ? ? ? }
? ? ? ? if(state !=null){
? ? ? ? ? ? try {
? ? ? ? ? ? ? ? state.close();
? ? ? ? ? ? } catch (SQLException e) {
? ? ? ? ? ? ? ? e.printStackTrace();
? ? ? ? ? ? }
? ? ? ? }
? ? ? ? if(conn !=null){
? ? ? ? ? ? try {
? ? ? ? ? ? ? ? conn.close();
? ? ? ? ? ? } catch (SQLException e) {
? ? ? ? ? ? ? ? e.printStackTrace();
? ? ? ? ? ? }
? ? ? ? }
? ? }
? ? 3.//判斷登錄
? ? public ?static ?boolean login(String user,String password){
? ? //3.1獲取連接對象
? ? ? ? Connection conn = JDBCUtils.getConnection();
? ? ? ? try {
? ? ? ? ?//3.2定義sql
? ? ? ? ? ? String sql="select * from user where username=? and password=?";
? ? ? ? ? ? //3.3獲取執(zhí)行sql的對象
? ? ? ? ? ? prep = conn.prepareStatement(sql);
? ? ? ? ? ? //3.3.1 給占位符賦值
? ? ? ? ? ? prep.setString(1,user);
? ? ? ? ? ? prep.setString(2,password);
? ? ? ? ? ? //3.4執(zhí)行sql
? ? ? ? ? ? ResultSet rs = prep.executeQuery();
? ? ? ? ? ? return rs.next();
? ? ? ? } catch (SQLException e) {
? ? ? ? ? ? e.printStackTrace();
? ? ? ? } finally{
? ? ? ? //3.4調(diào)用關(guān)閉連接靜態(tài)方法
? ? ? ? ?? ?JDBCUtils.close(rs,prep,conn);?? ?
? ? ? ? }
? ? ? ? return false;
? ? }
}

第二步:創(chuàng)建測試類:Hello01

public class Hello01 {
? ? public static void main(String[] args) {
? ? ? ? Scanner sc = new Scanner(System.in);
? ? ? ? Connection conn=null;
? ? ? ? PreparedStatement prep=null;
? ? ? ? ResultSet rs=null;
? ? ? ? Statement state=null;
? ? ? ? //判斷是否登錄過,如果沒有登錄,就無法查詢
? ? ? ? boolean a=false;
? ? ? ? //判斷用戶是否登錄,登錄過就無法再次登錄
? ? ? ? boolean b=true;
? ? ? ? String name;
? ? ? ? String psw;
? ? ? ? while (true){
? ? ? ? ? ? System.out.println("請輸入你要執(zhí)行的操作:1.登錄 2.注冊 3.查詢");
? ? ? ? ? ? int i = sc.nextInt();
? ? ? ? ? ? switch (i){
? ? ? ? ? ? ? ? case 1:
? ? ? ? ? ? ? ? ? ? if(b){
? ? ? ? ? ? ? ? ? ? ? ? System.out.println("請輸入你的賬號:");
? ? ? ? ? ? ? ? ? ? ? ? name= sc.next();
? ? ? ? ? ? ? ? ? ? ? ? System.out.println("請輸入你的密碼:");
? ? ? ? ? ? ? ? ? ? ? ? psw= sc.next();
? ? ? ? ? ? ? ? ? ? ? ? //JDBCUtils.login(name,psw) 這個方法的返回值是Boolean類型 可以當(dāng)if的條件判斷
? ? ? ? ? ? ? ? ? ? ? ? if(JDBCUtils.login(name,psw)){
? ? ? ? ? ? ? ? ? ? ? ? ? ? System.out.println("恭喜您登錄成功");
? ? ? ? ? ? ? ? ? ? ? ? ? ? //登錄成功 a的值變?yōu)閠urn ?
? ? ? ? ? ? ? ? ? ? ? ? ? ? a=true;
? ? ? ? ? ? ? ? ? ? ? ? } else {
? ? ? ? ? ? ? ? ? ? ? ? ? ? System.out.println("不好意思登錄失敗,請重新操作?。?!");
? ? ? ? ? ? ? ? ? ? ? ? }
? ? ? ? ? ? ? ? ? ? ? ? b=false;
? ? ? ? ? ? ? ? ? ? }else {
? ? ? ? ? ? ? ? ? ? ? ? System.out.println("您已經(jīng)登錄?。?!");
? ? ? ? ? ? ? ? ? ? }

? ? ? ? ? ? ? ? ? ? break;
? ? ? ? ? ? ? ? case 2:
? ? ? ? ? ? ? ? ? ? try {
? ? ? ? ? ? ? ? ? ? ? ? System.out.println("請輸入您要注冊的賬號:");
? ? ? ? ? ? ? ? ? ? ? ? name = sc.next();
? ? ? ? ? ? ? ? ? ? ? ? conn = JDBCUtils.getConnection();
? ? ? ? ? ? ? ? ? ? ? ? //開啟事務(wù)
? ? ? ? ? ? ? ? ? ? ? ? conn.setAutoCommit(false);
? ? ? ? ? ? ? ? ? ? ? ? while (true){
? ? ? ? ? ? ? ? ? ? ? ? String sql = "select * from user where username=?";
? ? ? ? ? ? ? ? ? ? ? ? prep = conn.prepareStatement(sql);
? ? ? ? ? ? ? ? ? ? ? ? prep.setString(1,name);
? ? ? ? ? ? ? ? ? ? ? ? ?rs = prep.executeQuery();
? ? ? ? ? ? ? ? ? ? ? ? if(rs.next()){
? ? ? ? ? ? ? ? ? ? ? ? ? ? System.out.println("用戶名已存在,請重新輸入:");
? ? ? ? ? ? ? ? ? ? ? ? ? ? name = sc.next();
? ? ? ? ? ? ? ? ? ? ? ? }else {
? ? ? ? ? ? ? ? ? ? ? ? ? ? break;
? ? ? ? ? ? ? ? ? ? ? ? }
? ? ? ? ? ? ? ? ? ? ? ? ?}
? ? ? ? ? ? ? ? ? ? ? ? System.out.println("請輸入您的密碼:");
? ? ? ? ? ? ? ? ? ? ? ? psw = sc.next();
? ? ? ? ? ? ? ? ? ? ? ? String sql1="insert into user values (null,?,?)";
? ? ? ? ? ? ? ? ? ? ? ? ?prep = conn.prepareStatement(sql1);
? ? ? ? ? ? ? ? ? ? ? ? ?prep.setString(1,name);
? ? ? ? ? ? ? ? ? ? ? ? ?prep.setString(2,psw);
? ? ? ? ? ? ? ? ? ? ? ? ?prep.executeUpdate();
? ? ? ? ? ? ? ? ? ? ? ? ?//int i1=3/0;
? ? ? ? ? ? ? ? ? ? ? ? System.out.println("恭喜您注冊成功?。?!");
? ? ? ? ? ? ? ? ? ? ? ? //提交事務(wù)
? ? ? ? ? ? ? ? ? ? ? ? conn.commit();
? ? ? ? ? ? ? ? ? ? } catch (SQLException e) {
? ? ? ? ? ? ? ? ? ? ? ? try {
? ? ? ? ? ? ? ? ? ? ? ? ?? ?//事務(wù)回滾
? ? ? ? ? ? ? ? ? ? ? ? ? ? conn.rollback();
? ? ? ? ? ? ? ? ? ? ? ? } catch (SQLException ex) {
? ? ? ? ? ? ? ? ? ? ? ? ? ? ex.printStackTrace();
? ? ? ? ? ? ? ? ? ? ? ? }
? ? ? ? ? ? ? ? ? ? ? ? e.printStackTrace();
? ? ? ? ? ? ? ? ? ? }finally {
? ? ? ? ? ? ? ? ? ? ? ? JDBCUtils.close(rs,prep,conn);
? ? ? ? ? ? ? ? ? ? }
? ? ? ? ? ? ? ? ? ? break;
? ? ? ? ? ? ? ? case 3:
? ? ? ? ? ? ? ? //當(dāng)a的值為turn時才可以查詢 否則返回操作頁面
? ? ? ? ? ? ? ? ? ? if(a){
? ? ? ? ? ? ? ? ? ? ? ? try {
? ? ? ? ? ? ? ? ? ? ? ? ? ? conn = JDBCUtils.getConnection();
? ? ? ? ? ? ? ? ? ? ? ? ? ? String sql ="select * from user";
? ? ? ? ? ? ? ? ? ? ? ? ? ? state = conn.createStatement();
? ? ? ? ? ? ? ? ? ? ? ? ? ? rs = state.executeQuery(sql);
? ? ? ? ? ? ? ? ? ? ? ? ? ? ArrayList<User> users = new ArrayList<>();
? ? ? ? ? ? ? ? ? ? ? ? ? ? while (rs.next()){
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? int id = rs.getInt("id");
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? String username = rs.getString("username");
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? String password = rs.getString("password");
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? User user = new User(id,username,password);
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? users.add(user);
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? System.out.println(user);
? ? ? ? ? ? ? ? ? ? ? ? ? ? }
? ? ? ? ? ? ? ? ? ? ? ? } catch (SQLException e) {
? ? ? ? ? ? ? ? ? ? ? ? ? ? e.printStackTrace();
? ? ? ? ? ? ? ? ? ? ? ? } finally {
? ? ? ? ? ? ? ? ? ? ? ? ? ? JDBCUtils.close(rs,state,conn);
? ? ? ? ? ? ? ? ? ? ? ? }
? ? ? ? ? ? ? ? ? ? }else {
? ? ? ? ? ? ? ? ? ? ? ? System.out.println("請先登錄,在查詢?。?!");
? ? ? ? ? ? ? ? ? ? }
? ? ? ? ? ? ? ? ? ? break;
? ? ? ? ? ? }
? ? ? ? }
? ? }
}

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

最新評論