jsp连接数据库——数据库连接设置

数据库连接准备:

一、

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="提交">&nbsp;&nbsp;&nbsp;
38   <input type="reset"value="取消">
39   </td></tr>
40   </table></form>
41   </body>
42 </html>
原文地址:https://www.cnblogs.com/cxy2016/p/6486291.html