数据库连接准备:
一、
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:UsersAdministratorWorkspacesMyEclipse 2017 CIStudent_Magement_SystemWebRootWEB-INFlib,其中红色部分是你的项目名称。
//以下绿色字体是我无耻粘贴过来的。(http://blog.csdn.net/coolcoffee168/article/details/8237661)
首先,放在tomcat安装目录的lib文件夹下肯定没有问题的。这时eclipse引用的jar文件可以在任意路径。
其次,可以将jar文件放在webappweb-inflib目录下(及工程目录中的webcontentweb-inflib目录),这时eclipse引用的jar文件应在webcontentweb-inflib目录下。
但是这两种方式都不是很合理,放在tomcat安装目录的lib文件夹下相当于是全局共享这个包,但这真的有必要么?放在webappweb-inflib目录下,实际是把jar放到了jsp等文本代码的目录中了。明明eclipse工程中组织好的目录是在srcweb-inflib呀。
其实,完全可以把jar包放在srcWEB-INFlib目录下,这时开发时没有问题,调试时tomcat会找不到这个包,很简单,在项目属性中Deloyment Assembly配置页,设置srcWEB-INFlib目录发布到WEB-INFlib目录就好了,这样调试时会自动复制到tomcat对应的目录(buildclassesWEB-INFlib)中。将来打包时也会正确处理的。
关于数据库还有一点,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>