數據庫連接准備:
一、
my sql、myeclipse、mysql-connector-java-5.1.40-bin.jar包。
數據庫的安裝不說了,網上有教程。需要注意的是:第一次用數據庫一定要記住賬號對應的密碼,否則再后來建立連接時忘記密碼需要重改非常麻煩。
mysql-connector-java-5.1.40-bin.jar包,網上有,自己下。
二、
eclipse開發只需要導入即可,myeclipse開發web一定要導入到服務器下。
需要注意的是這個jar包導入超級費勁,如果你按照網上的教程總是不成功,可以參考我的:把jar包放到這個目錄下:
C:\Users\Administrator\Workspaces\MyEclipse 2017 CI\Student_Magement_System\WebRoot\WEB-INF\lib,其中紅色部分是你的項目名稱。
//以下綠色字體是我無恥粘貼過來的。(http://blog.csdn.net/coolcoffee168/article/details/8237661)
首先,放在tomcat安裝目錄的lib文件夾下肯定沒有問題的。這時eclipse引用的jar文件可以在任意路徑。
其次,可以將jar文件放在webapp\web-inf\lib目錄下(及工程目錄中的webcontent\web-inf\lib目錄),這時eclipse引用的jar文件應在webcontent\web-inf\lib目錄下。
但是這兩種方式都不是很合理,放在tomcat安裝目錄的lib文件夾下相當於是全局共享這個包,但這真的有必要么?放在webapp\web-inf\lib目錄下,實際是把jar放到了jsp等文本代碼的目錄中了。明明eclipse工程中組織好的目錄是在src\web-inf\lib呀。
其實,完全可以把jar包放在src\WEB-INF\lib目錄下,這時開發時沒有問題,調試時tomcat會找不到這個包,很簡單,在項目屬性中Deloyment Assembly配置頁,設置src\WEB-INF\lib目錄發布到WEB-INF\lib目錄就好了,這樣調試時會自動復制到tomcat對應的目錄(build\classes\WEB-INF\lib)中。將來打包時也會正確處理的。
關於數據庫還有一點,my sql安裝好沒有圖形交互界面,就是一個指令窗口。所以一般推薦安裝一些良好的數據庫管理軟件,有良好的可視性,操作也方便。主要是新學調試方便。
推薦navicat(收費的),當然其他的也有,我沒試過。
三、
注冊驅動並建立數據庫連接:
建立驅動:
Class.forName("com.mysql.jdbc.Driver");
連接數據庫:數據庫連接字(數據庫服務器IP地址及訪問數據庫的端口號、數據庫名稱、訪問數據庫用戶名稱及密碼、有時指定采用字符編碼格式)
jdbc:mysql://localhost:3306/student?user=root&password=20143243&useUnicode=true&characterEncoding=gb2312
不會自己查,照着各種資料寫就可以。
以下是數據庫連接中的常出現的錯誤:
1.拼寫錯誤
是的,請看清楚,我第一次寫就把jdbc寫成jbdc卻一直找不到錯誤。這種錯誤很難發現,所以提個醒。
2.找不到驅動
忘了報錯的描述了,一般如果語法沒有錯誤,那就應該是connector.jar包導入出現問題。
3.漢字亂碼
設計web程序使用統一字符編碼:
1.數據庫數據表建立。
2.數據庫讀寫操作采用的編碼格式。
3.jsp頁面傳遞參數(request對象)。
4.jsp頁面(HTML)。
5.服務器響應(response),返回客戶端信息。
以上幾個過程一定注意聲明字符格式。一般使用UTF-8和gb2312。
注意以下代碼聲明字符格式的地方(紅色):
1 <%@ page language="java" import="java.sql.*" pageEncoding="gb2312"%> 2 <%request.setCharacterEncoding("gb2312");%> 3 <% 4 String path = request.getContextPath(); 5 String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/"; 6 %> 7 8 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> 9 <html> 10 <head> 11 <base href="<%=basePath%>"> 12 13 <title>My JSP 'insert_stu_1.jsp' starting page</title> 14 15 <meta http-equiv="pragma" content="no-cache"> 16 <meta http-equiv="cache-control" content="no-cache"> 17 <meta http-equiv="expires" content="0"> 18 <meta http-equiv="keywords" content="keyword1,keyword2,keyword3"> 19 <meta http-equiv="description" content="This is my page"> 20 <!-- 21 <link rel="stylesheet" type="text/css" href="styles.css"> 22 --> 23 24 </head> 25 26 <body> 27 <% 28 Class.forName("com.mysql.jdbc.Driver"); 29 Connection con=DriverManager.getConnection("jdbc:mysql://localhost:3306/student?user=root&password=20143243&useUnicode=true&characterEncoding=gb2312"); 30 String sql="Insert into stu_info(id,name,sex,age,weight,hight)values(?,?,?,?,?,?)"; 31 PreparedStatement pstmt=con.prepareStatement(sql); 32 int id=Integer.parseInt(request.getParameter("id")); 33 String name=request.getParameter("name"); 34 String sex=request.getParameter("sex"); 35 int age=Integer.parseInt(request.getParameter("age")); 36 float weight=Float.parseFloat(request.getParameter("weight")); 37 float hight=Float.parseFloat(request.getParameter("hight")); 38 pstmt.setInt(1,id); 39 pstmt.setString(2,name); 40 pstmt.setString(3,sex); 41 pstmt.setInt(4,age); 42 pstmt.setFloat(5,weight); 43 pstmt.setFloat(6,hight); 44 int n=pstmt.executeUpdate(); 45 if(n==1){%>數據插入成功<br><%} 46 else{%>數據插入失敗<br><%} 47 if(pstmt!=null){pstmt.close();} 48 if(con!=null){con.close();} 49 %> 50 </body> 51 </html>
1 <%@ page language="java" import="java.util.*" pageEncoding="gb2312"%> 2 <%request.setCharacterEncoding("gb2312");%> 3 <% 4 String path = request.getContextPath(); 5 String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/"; 6 %> 7 8 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> 9 <html> 10 <head> 11 <base href="<%=basePath%>"> 12 13 <title>My JSP 'insert_stu_2_tijiao.jsp' starting page</title> 14 15 <meta http-equiv="pragma" content="no-cache"> 16 <meta http-equiv="cache-control" content="no-cache"> 17 <meta http-equiv="expires" content="0"> 18 <meta http-equiv="keywords" content="keyword1,keyword2,keyword3"> 19 <meta http-equiv="description" content="This is my page"> 20 <!-- 21 <link rel="stylesheet" type="text/css" href="styles.css"> 22 --> 23 24 </head> 25 26 <body> 27 <form action="insert_stu_1.jsp"method="post"> 28 <table border="0"width="238"height="252"> 29 <tr><td>學號</td><td><input type="text"name="id"></td></tr> 30 <tr><td>姓名</td><td><input type="text"name="name"></td></tr> 31 <tr><td>性別</td><td><input type="text"name="sex"></td></tr> 32 <tr><td>年齡</td><td><input type="text"name="age"></td></tr> 33 <tr><td>體重</td><td><input type="text"name="weight"></td></tr> 34 <tr><td>身高</td><td><input type="text"name="hight"></td></tr> 35 <tr align="center"> 36 <td colspan="2"> 37 <input type="submit"value="提交"> 38 <input type="reset"value="取消"> 39 </td></tr> 40 </table></form> 41 </body> 42 </html>