数据库连接准备:
一、
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,其中红色部分是你的项目名称。
//以下绿色字体是我无耻粘贴过来的。
首先,放在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>