基于mysql數(shù)據(jù)庫的注冊

前期準(zhǔn)備:

1.下載并安裝mysql數(shù)據(jù)庫5.X版本即可

2.學(xué)習(xí)相關(guān)的sql語法?

3.在lib包導(dǎo)入mysql-connector-java-5.1.38-bin.jar數(shù)據(jù)庫連接的jar包

創(chuàng)建數(shù)據(jù)庫和用戶表:

也可以用Navicat Premium圖形化工具快速創(chuàng)建

CREATE TABLE user (

`id` int(16) NOT NULL AUTO_INCREMENT,

`username` varchar(32) NOT NULL,

`password` varchar(32) NOT NULL,

PRIMARY KEY (`id`)

) ENGINE=InnoDB? DEFAULT CHARSET=utf8mb4;

總的目錄 ? 相比而言多了JdbcConnection.java和UserServlet2.java

JdbcConnection.java主要是用來寫獲取與數(shù)據(jù)庫連接的方法getConnection()

其中最為重要的是:

private static String url="jdbc:mysql://localhost/demo";//數(shù)據(jù)庫的URL

private static String driverClass="com.mysql.jdbc.Driver";//mysql數(shù)據(jù)庫驅(qū)動

private static String user="root";//數(shù)據(jù)庫連接帳號,默認(rèn)為root

private static String password="****";//數(shù)據(jù)庫連接密碼,根據(jù)安裝mysql時的密碼

在加載數(shù)據(jù)庫驅(qū)動和連接數(shù)據(jù)庫時可能會有異常,可以try catch捕獲或throws拋出

Class.forName(driverClass);//加載數(shù)據(jù)庫驅(qū)動

con=DriverManager.getConnection(url, user, password);//獲取數(shù)據(jù)庫連接

UserServlet2.java

新建一個servlet類名為UserServlet2,只需要重寫doget和dopost方法即可,web.xml自動配置

關(guān)鍵屬性:

Connection conn;//獲取數(shù)據(jù)庫連接

String sql;//執(zhí)行的sql語句

PreparedStatement ps;//用來執(zhí)行sql語句的對象

User user=new User();//封裝數(shù)據(jù)的對象

由于是注冊,也就是向數(shù)據(jù)庫插入數(shù)據(jù),所以sql語句為 ?id由于是自動增長可以不傳值,注意sql語句的寫法

sql="INSERT INTO user (username,password) values(?,?)";

別忘了用request獲取傳過來的數(shù)據(jù),在這里我對傳過來的數(shù)據(jù)做了下判斷,意思是兩次密碼不同的,用戶名或密碼為空或空格的都不能注冊,也就是不會寫入數(shù)據(jù)庫

if(password.equals(confirmpass)&&username.trim().length()!=0&&password.trim().length()!=0)

PreparedStatement的對象負(fù)責(zé)執(zhí)行sql語句,先對插入字段選好插入的位置,與數(shù)據(jù)庫字段相對應(yīng),不然會報java.sql.SQLException: No value specified for parameter 1這樣的錯誤,第一個位置的index索引值為0

ps=conn.prepareStatement(sql);

ps.setString(1, username);

ps.setString(2, password);

ps.executeUpdate();

另外 由于是插入操作,所以是executeUpdate()方法,更新數(shù)據(jù)庫,executeQuery()是搜索操作,誤寫會報java.sql.SQLException: Can not issue data manipulation statements with executeQuery().

還有 測試的時候要action到UserServlet2,所以稍微改下

action="servlet/UserServlet2"

具體的效果可以測試下

完整項目完整代碼

項目地址:github.com/JinBinPeng/JSPdemo

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容