• 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>
  • 相关阅读:
    Hdu 5445 Food Problem (2015长春网络赛 ACM/ICPC Asia Regional Changchun Online)
    Hdu 3966 Aragorn's Story (树链剖分 + 线段树区间更新)
    大数模板 (C ++)
    后缀数组 DC3构造法 —— 详解
    后缀数组 (倍增法) 个人理解
    Hdu 2888 Check Corners (二维RMQ (ST))
    Marriage Match IV---hdu3416(spfa + Dinic)
    The Shortest Path in Nya Graph---hdu4725(spfa+扩点建图)
    Tram---poj1847(简单最短路)
    昂贵的聘礼---poj1062(最短路)
  • 原文地址:https://www.cnblogs.com/cxy2016/p/6486291.html
Copyright © 2020-2023  润新知