国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

MySQL筆記 —— jdbc工具類(網(wǎng)站的修改密碼,注冊(cè)賬號(hào),注銷賬號(hào)功能)

NickZhou / 1238人閱讀

摘要:比如將建立連接的代碼放入工具類里面,工具類提供給外界一個(gè)獲取的方法,需要的時(shí)候直接調(diào)用方法即可。

在之前的這篇博客里面MySQL筆記 —— jdbc連接數(shù)據(jù)庫(kù)(增刪改查,sql注入,網(wǎng)站登錄檢查)
寫了網(wǎng)站登錄檢查的代碼,通過將用戶輸入的用戶名和密碼與數(shù)據(jù)庫(kù)中存儲(chǔ)的用戶名和密碼進(jìn)行比較,如果一致則登錄成功,不一致則登陸失敗

現(xiàn)在再給出網(wǎng)站登錄列表中的,修改密碼,注冊(cè)賬號(hào),注銷賬號(hào)功能

先給出userInfo用戶信息表的數(shù)據(jù)

package mysql;import java.sql.Connection;import java.sql.DriverManager;import java.sql.PreparedStatement;import java.sql.SQLException;public class LoginUpdate {    public static void main(String[] args) throws Exception {        System.out.println("修改密碼");        String update = update("654321", "root");        System.out.println(update);        System.out.println("注冊(cè)賬號(hào)");        String insert = insert("demo","222222");        System.out.println(insert);        System.out.println("注銷賬號(hào)");        String delete = delete("test");        System.out.println(delete);    }    //修改密碼    public static String update(String password,String username) throws Exception{        Class.forName("com.mysql.jdbc.Driver");        Connection conn = DriverManager.getConnection("jdbc:mysql://master:3306/show1", "root", "123456");        String sql = "update userInfo set password=? where username=?";        PreparedStatement ps = conn.prepareStatement(sql);        ps.setString(1,password);        ps.setString(2,username);        int i = ps.executeUpdate();        conn.close();        ps.close();        if(i!=1){            return "修改失敗";        }        return "修改成功";    }    //注冊(cè)賬號(hào)    public static String insert(String username,String password) throws Exception{        Class.forName("com.mysql.jdbc.Driver");        Connection conn = DriverManager.getConnection("jdbc:mysql://master:3306/show1", "root", "123456");        String sql = "insert into userInfo values(?,?)";        PreparedStatement ps = conn.prepareStatement(sql);        ps.setString(1,username);        ps.setString(2,password);        int i = ps.executeUpdate();        conn.close();        ps.close();        if(i!=1){            return "注冊(cè)失敗";        }        return "注冊(cè)成功";    }    //注銷賬號(hào)    public static String delete(String username) throws Exception{        Class.forName("com.mysql.jdbc.Driver");        Connection conn = DriverManager.getConnection("jdbc:mysql://master:3306/show1", "root", "123456");        String sql = "delete from userInfo where username=?";        PreparedStatement ps = conn.prepareStatement(sql);        ps.setString(1,username);        int i = ps.executeUpdate();        conn.close();        ps.close();        if(i!=1){            return "注銷失敗";        }        return "注銷成功";    }}


查詢一下數(shù)據(jù)庫(kù)里面的表,select * from userInfo;

密碼確實(shí)被修改了,test用戶被注銷,新增了一個(gè)demo用戶

jdbc工具類

現(xiàn)在來思考一個(gè)問題,上面代碼里面有三個(gè)功能,修改密碼,注冊(cè)賬號(hào),注銷賬號(hào)。三個(gè)功能分別對(duì)應(yīng)三個(gè)方法,但是方法內(nèi)的語(yǔ)句有大量重復(fù)的地方,比如獲取驅(qū)動(dòng)和獲取連接的代碼,獲取執(zhí)行器,以及最后關(guān)閉的代碼其實(shí)都是重復(fù)的。這不符合我們寫代碼的精簡(jiǎn)思想,所以能不能把這些重復(fù)的代碼都提取出來,放進(jìn)一個(gè)工具類里面。比如將建立連接的代碼放入工具類里面,工具類提供給外界一個(gè)獲取的方法,需要的時(shí)候直接調(diào)用方法即可。

這個(gè)工具類就是jdbc工具類,現(xiàn)在給出工具類的全部代碼

package mysql;import sun.security.util.Password;import java.io.InputStream;import java.sql.*;import java.util.Properties;public class JDBCUtil {    private static String URL;    private static String DRIVER;    private static String USERNAME;    private static String PASSWORD;    private static Connection conn=null;    private static PreparedStatement ps=null;    private static ResultSet rs=null;    static{        try{            //獲取配置文件里面的參數(shù)信息            Properties properties = new Properties();            //利用反射加載配置文件            InputStream is = JDBCUtil.class.getClassLoader().getResourceAsStream("mysql.properties");            //利用Properties對(duì)象加載輸入流is            properties.load(is);            DRIVER=properties.getProperty("driver");            URL=properties.getProperty("url");            USERNAME=properties.getProperty("username");            PASSWORD=properties.getProperty("password");            //獲取驅(qū)動(dòng)            Class.forName(DRIVER);            //獲取連接            conn=DriverManager.getConnection(URL,USERNAME,PASSWORD);        }catch(Exception e){            e.printStackTrace();        }    }    //獲取連接    public static Connection getConn(){        return conn;    }    //獲取執(zhí)行器    public static PreparedStatement getPs(String sql){        try {            ps = conn.prepareStatement(sql);        } catch (SQLException e) {            e.printStackTrace();        }        return ps;    }    //獲取查詢語(yǔ)句的結(jié)果集    public static ResultSet getRs(){        try {            rs=ps.executeQuery();        } catch (SQLException e) {            e.printStackTrace();        }        return rs;    }    //獲取增刪改語(yǔ)句的結(jié)果集    public static int update(){        int i=0;        try {            i=ps.executeUpdate();        } catch (SQLException e) {            e.printStackTrace();        }        return i;    }    //給執(zhí)行器傳參    public static void setPs(String...args){        try{            for (int i = 0; i < args.length; i++) {                ps.setString(i+1,args[i]);            }        } catch (SQLException e) {            e.printStackTrace();        }    }    //關(guān)閉    public static void closeAll(){        if(rs!=null){            try {                rs.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();            }        }    }}

利用工具類,再來重新寫一下之前的修改密碼,注冊(cè)賬號(hào),注銷賬號(hào)的方法

package mysql;public class LoginUpdate1 {    public static void main(String[] args) {        System.out.println("修改密碼");        String update = update("root", "123456");        System.out.println(update);        System.out.println("------------------");        System.out.println("注冊(cè)賬號(hào)");        String show = insert("show", "333333");        System.out.println(show);        System.out.println("------------------");        System.out.println("注銷賬號(hào)");        String demo = delete("demo");        System.out.println(demo);        JDBCUtil.closeAll();    }    public static String update(String username,String password){        JDBCUtil.getConn();        String sql = "update userInfo set password=? where username=?";        JDBCUtil.getPs(sql);        JDBCUtil.setPs(password,username);        int i = JDBCUtil.update();        if(i!=1){            return "修改失敗";        }        return "修改成功";    }    public static String insert(String username,String password){        JDBCUtil.getConn();        String sql = "insert into userInfo values(?,?)";        JDBCUtil.getPs(sql);        JDBCUtil.setPs(username,password);        int i = JDBCUtil.update();        if(i!=1){            return "注冊(cè)失敗";        }        return "注冊(cè)成功";    }    public static String delete(String username){        JDBCUtil.getConn();        String sql = "delete from userInfo where username=?";        JDBCUtil.getPs(sql);        JDBCUtil.setPs(username);        int i = JDBCUtil.update();        if(i!=1){            return "注銷失敗";        }        return "注冊(cè)成功";    }}


文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://m.specialneedsforspecialkids.com/yun/123004.html

相關(guān)文章

  • python初學(xué)——面向?qū)ο缶幊套鳂I(yè):學(xué)校選課系統(tǒng)

    摘要:如上海北京等管理員自己創(chuàng)建其他地方的學(xué)校管理員創(chuàng)建的課程。包含名字性別年齡等學(xué)員查詢可上課程學(xué)員選課,選擇學(xué)校課程,并付款。課程價(jià)格,周期課程價(jià)格,周期課程價(jià)格,周期創(chuàng)建講師屬于北京校區(qū),屬于上海校區(qū)。 作業(yè)需求 創(chuàng)建北京、上海 2 所學(xué)校 創(chuàng)建linux , python , go 3個(gè)課程,linuxpy在北京開, go 在上海開 課程包含,周期,價(jià)格,通過學(xué)校創(chuàng)建課程 通過學(xué)校...

    kbyyd24 評(píng)論0 收藏0
  • Java數(shù)據(jù)庫(kù)開發(fā)-Mysql連接

    摘要:是訪問數(shù)據(jù)庫(kù)的標(biāo)準(zhǔn)規(guī)范。提供了一種基準(zhǔn)據(jù)此可以構(gòu)建更高級(jí)的工具和接口,使數(shù)據(jù)庫(kù)開發(fā)人員能夠編寫數(shù)據(jù)庫(kù)應(yīng)用程序。代碼如下工具類數(shù)據(jù)庫(kù)驅(qū)動(dòng)注冊(cè)失敗提供獲取連接的方法獲得連接返回連接 本文為大家介紹 Java 如何使用JDBC 連接 MySQL 數(shù)據(jù)庫(kù)。 JDBC概述 JDBC(Java Data Base Connectivity,java數(shù)據(jù)庫(kù)連接)是一種用于執(zhí)行SQL語(yǔ)句的Java A...

    Ververica 評(píng)論0 收藏0
  • Java數(shù)據(jù)庫(kù)開發(fā)-Mysql連接

    摘要:是訪問數(shù)據(jù)庫(kù)的標(biāo)準(zhǔn)規(guī)范。提供了一種基準(zhǔn)據(jù)此可以構(gòu)建更高級(jí)的工具和接口,使數(shù)據(jù)庫(kù)開發(fā)人員能夠編寫數(shù)據(jù)庫(kù)應(yīng)用程序。代碼如下工具類數(shù)據(jù)庫(kù)驅(qū)動(dòng)注冊(cè)失敗提供獲取連接的方法獲得連接返回連接 本文為大家介紹 Java 如何使用JDBC 連接 MySQL 數(shù)據(jù)庫(kù)。 JDBC概述 JDBC(Java Data Base Connectivity,java數(shù)據(jù)庫(kù)連接)是一種用于執(zhí)行SQL語(yǔ)句的Java A...

    kun_jian 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<