JDBC之数据连接

1:数据库语句:
create database LandDB;
use LandDB;
create table T_BL_CANTON_CODE
(
    CTN_CODE int primary key,
    CTN_NAME varchar(60) not null,
    GOV_NAME varchar(60) not null,
    LAND_DP_NAME varchar(60) not null,
    PARENT_CODE int not null
);INSERT INTO `landdb`.`t_bl_canton_code`
(`CTN_CODE`,
`CTN_NAME`,
`GOV_NAME`,
`LAND_DP_NAME`,
`PARENT_CODE`)
VALUES(12000,‘长沙市‘,‘长沙市人民政府‘,‘长沙市国土资源厅‘,‘HN‘);INSERT INTO `landdb`.`t_bl_canton_code`
(`CTN_CODE`,
`CTN_NAME`,
`GOV_NAME`,
`LAND_DP_NAME`,
`PARENT_CODE`)
VALUES(11000,‘北京市‘,‘北京市人民政府‘,‘北京市国土资源厅‘,‘BN‘);

2:将提供的Images,css文件夹拷贝至建立的网站根目录下,也就是下项目的webroot目录中。

3:改写素材文件夹下所有html 文件为jsp文件到项目的webroot目录下。替换校正原来的链接,因为素材文件原来链接指向的是HTML文件,现在更名为了JSP文件,需要把原来指向的HTML改为JSP。

4:按照工程开发的需要,建立命名空间,一般应该有以下命名空间:
放置实体类的空间:entity或者model
放置过滤器的空间:filter
放置数据访问层的空间:dao
放置servlet的空间servlet

5:建立实体类:Canton,放置到entity命名空间下。
代码如下:
package com.laozhu.entity;

public class Canton {
    private int ctn_code;    //行政区代码
    private String ctn_name;    //行政区名称
    private String gov_name;    //政府名称
    private String land_dp_name;    //国土部门名称
    private int parent_code;    //上级行政区代码

    public int getCtn_code() {
        return ctn_code;
    }
    public void setCtn_code(int ctn_code) {
        this.ctn_code = ctn_code;
    }
    public String getCtn_name() {
        return ctn_name;
    }
    public void setCtn_name(String ctn_name) {
        this.ctn_name = ctn_name;
    }
    public String getGov_name() {
        return gov_name;
    }
    public void setGov_name(String gov_name) {
        this.gov_name = gov_name;
    }
    public String getLand_dp_name() {
        return land_dp_name;
    }
    public void setLand_dp_name(String land_dp_name) {
        this.land_dp_name = land_dp_name;
    }
    public int getParent_code() {
        return parent_code;
    }
    public void setParent_code(int parent_code) {
        this.parent_code = parent_code;
    }
}
6:建立数据库连接类,过程如下:
A:将MYSQL驱动如mysql-connector-java-5.1.18.jar复制到项目中,找到该文件后右键--build Path --add build path,从而将该驱动包引入到工程中。
B:确保数据库服务器Mysql已经启动而且存在数据库landb并且存在表t_bl_canton_code,该表结果正确。
C:建立数据库连接类,如BuildConn类,代码中的方法openconn()返回一个数据库的连接Connection.

7:创建字符集过滤器以便过滤字符集。
创建命名空间Filter,在该空间下新建类CharsetFilter,在新建时在接口选项Interfaces中添加Javax.Servlet.Filter接口,這样系统会自动引用相应的接口并且形成相应的方法。
自动形成的代码中有以下代码:
public void doFilter(ServletRequest arg0, ServletResponse arg1,
            FilterChain arg2) throws IOException, ServletException {
        // TODO Auto-generated method stub

    }
这就是形成的过滤器的方法,改写该方法;代码如下:

 arg0.setCharacterEncoding(encoding);
         arg1.setContentType("text/html;charset="+encoding);
         arg2.doFilter(arg0, arg1);
配置过滤器:代码写好以后打开web.xml,在</web-app>前添加类似以下代码:
 <filter>
  <filter-name>CharSetfilter</filter-name>  //过滤器名
  <filter-class>com.laozhu.filter.Charfilter</filter-class>  //过滤器类
    <init-param>
  <param-name>encoding</param-name>  //定义参数encoding
  <param-value>UTF-8</param-value>
  </init-param>
  </filter>
  <filter-mapping>   //定义映射。
  <filter-name>CharSetfilter</filter-name>
  <url-pattern>/*</url-pattern>  //映射到目录中的所有文件。也就是针对所有的文件进行过滤。
  </filter-mapping>

7:新建数据库访问类:CantonDaoImp,该类实现能对表的增删改查操作,完成对数据库的操作。代码参考例子。

8:新建一个servlet CantonAddServlet,用于执行数据库的插入。也就是新增数据。代码见参考代码。请注意web.xml中针对此servlet的映射路径。

9:打开addCanton.jsp,首先修改执行的页面,也就是代码:<form action="" 改成:<form action="CantonAddServlet" ,注意 CantonAddServlet是你映射的路径。
然后在文件中将参数名与表单中的字段名一一对应。如在CantonAddServlet中的:
int ctn_code = Integer.parseInt(request.getParameter("ctn_code"));
這是要获取ctn_code,就将addCanton.jsp中的城市代码表单的文本框字段名设置为:ctn_code,也就是将原来的代码修改为:<td width="132" height="9"><span class="style2"> 行政区代码</span></td>
      <td width="239"><input name="ctn_code" type="text" id="ctn_code" size="20">
其他的表单输入框一样处理。

10:可以调试增加记录了。

11:在servlet命名空间增加servlet ,名字为CantonListServlet,代码参考代码包。

12:修改listCanton.jsp。代码参考项目代码。

13:修改index_tree1.jsp,将原来的链接修改为CantonListServlet<A href="CantonListServlet" target="main1">行政区划</A>

14:测试。

步骤

布局图:

MySQL:

package com.caiduping.Dao;
import java.sql.DriverManager;
import java.sql.Connection;
import java.sql.SQLException;
public class BuildConn {

public Connection openconn()
{Connection conn=null;

    try {
        //加载Mysql驱动
        Class.forName("com.mysql.jdbc.Driver");
    } catch (ClassNotFoundException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }
    String URL="jdbc:mysql://localhost:3306/landdb";
    String username="user2";
    String userpassword="123456";
    try {
        //建立连接
        conn=DriverManager.getConnection(URL, username, userpassword);
    } catch (SQLException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }

return conn;
}
}

BuildConn类

package com.caiduping.Dao;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.Statement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;

import com.caiduping.Dao.BuildConn;
import com.caiduping.entity.Canton;
public class CantonDaoImp {

    //addCanton方法实现插入数据
    public boolean addCanton(Canton canton) throws SQLException {
        //设置标识
        boolean flag = false;
        //执行的sql语句,?为参数
        String sql = "insert into T_BL_CANTON_CODE values(?,?,?,?,?)";
         //定义连接对象
        Connection con = null;
        //定义命令对象
        PreparedStatement prst = null;
        //实例化BuildConn类
        BuildConn bd=new BuildConn();
        //调用BuildConn的openconn方法返回数据库的链接
        con = bd.openconn();
        try {
             //准备执行sql命令
            prst = con.prepareStatement(sql);
            //分别对应设置sql语句中的参数,应该在数据类型与参数一一对应
            prst.setInt(1, canton.getCtn_code());
            prst.setString(2, canton.getCtn_name());
            prst.setString(3, canton.getGov_name());
            prst.setString(4, canton.getLand_dp_name());
            prst.setString(5, canton.getParent_code());
            if(prst.executeUpdate()>0) {
                flag = true;
            }
        } catch (SQLException e) {
            e.printStackTrace();
        } finally {

        }con.close();
        return flag;
    }

    public boolean deleteCanton(int id) {
        // TODO Auto-generated method stub
        return false;
    }

    public Canton findCanton(int id) {
        // TODO Auto-generated method stub
        return null;
    }
    //以下方法返回Canton列表
    public List<Canton> listCanton() {
        List<Canton> list = new ArrayList<Canton>();
        String sql = "select * from T_BL_CANTON_CODE";
        Connection con = null;
        PreparedStatement prst = null;
        ResultSet rest = null;
        //实例化BuildConn类
        BuildConn bd=new BuildConn();
         //调用BuildConn的openconn方法返回数据库的链接
        con = bd.openconn();
        try {
            prst = con.prepareStatement(sql);
            //结果集对象rest
            rest = prst.executeQuery();
            while(rest.next()) {
                //定义一个canton对象
                Canton canton = new Canton();
                canton.setCtn_code(rest.getInt("ctn_code"));
                canton.setCtn_name(rest.getString("ctn_name"));
                canton.setGov_name(rest.getString("gov_name"));
                canton.setLand_dp_name(rest.getString("land_dp_name"));
                canton.setParent_code(rest.getString("parent_code"));
                //读出的该对象加入到list列表中
                list.add(canton);
            }
        } catch (SQLException e) {
            e.printStackTrace();
        }
        try {
            con.close();
        } catch (SQLException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
        //返回列表
        return list;
    }

    public boolean updateCanton(Canton canton) {
        // TODO Auto-generated method stub
        return false;
    }
    public int delCanton(long cantonID) throws SQLException
    {int a=0;
    Connection con = null;
    PreparedStatement prst = null;
    //实例化BuildConn类
    BuildConn bd=new BuildConn();
    con = bd.openconn();
    String sql="delete from t_bl_canton_code where CTN_CODE =" + cantonID;
    Statement st=con.createStatement();
    a=st.executeUpdate(sql);
    st.close();
    con.close();
    return a;
    }
    public int delCanton(Canton canton) throws SQLException
    {int a=0;
    Connection con = null;
    PreparedStatement prst = null;
    //实例化BuildConn类
    BuildConn bd=new BuildConn();
    con = bd.openconn();
    String sql="delete from t_bl_canton_code where CTN_CODE =" + canton.getCtn_code();
    Statement st=con.createStatement();
    a=st.executeUpdate(sql);
    st.close();
    con.close();
    return a;
    }
}

CantonDaoImp类

package com.caiduping.entity;

public class Canton {
    //行政区代码
    private int ctn_code;
    //行政区名称
    private String ctn_name;
    //政府名称
    private String gov_name;
    //国土部门名称
    private String land_dp_name;
    //上级行政区代码
    private String parent_code;    

    public int getCtn_code() {
        return ctn_code;
    }
    public void setCtn_code(int ctn_code) {
        this.ctn_code = ctn_code;
    }
    public String getCtn_name() {
        return ctn_name;
    }
    public void setCtn_name(String ctn_name) {
        this.ctn_name = ctn_name;
    }
    public String getGov_name() {
        return gov_name;
    }
    public void setGov_name(String gov_name) {
        this.gov_name = gov_name;
    }
    public String getLand_dp_name() {
        return land_dp_name;
    }
    public void setLand_dp_name(String land_dp_name) {
        this.land_dp_name = land_dp_name;
    }
    public String getParent_code() {
        return parent_code;
    }
    public void setParent_code(String parent_code) {
        this.parent_code = parent_code;
    }

}

Canton类

CharsetFilter继承Filter(javax.servlet.filter方法):

package com.caiduping.filter;

import java.io.IOException;

import javax.servlet.Filter;
import javax.servlet.FilterChain;
import javax.servlet.FilterConfig;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;

public class CharsetFilter implements Filter {
    //定义编码方式
    String encoding=null;
    public void destroy() {
        // TODO Auto-generated method stub

    }

    public void doFilter(ServletRequest arg0, ServletResponse arg1,
            FilterChain arg2) throws IOException, ServletException {
        // TODO Auto-generated method stub
         //设置Request的字符集编码
        arg0.setCharacterEncoding(encoding);
        //发送response的编码
        arg1.setContentType("text/html;charset="+encoding);
         //传递给下一过滤器
        arg2.doFilter(arg0, arg1);
    }
    //下面的方法是在过滤器加载时调用,用于初始化过滤器。
    public void init(FilterConfig arg0) throws ServletException {
        // TODO Auto-generated method stub
        //读取web.xml中的过滤器参数"encoding"
        encoding=arg0.getInitParameter("encoding");
    }

}

CharsetFilter类

package com.caiduping.servlet;

import java.io.IOException;
import java.io.PrintWriter;
import java.sql.SQLException;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import com.caiduping.Dao.CantonDaoImp;
import com.caiduping.entity.Canton;
public class CantonAddServlet extends HttpServlet {

    /**
     *
     */
    private static final long serialVersionUID = 1L;

    /**
     * Constructor of the object.
     */
    public CantonAddServlet() {
        super();
    }

    /**
     * Destruction of the servlet. <br>
     */
    public void destroy() {
        super.destroy(); // Just puts "destroy" string in log
        // Put your code here
    }

    /**
     * The doGet method of the servlet. <br>
     *
     * This method is called when a form has its tag value method equals to get.
     *
     * @param request the request send by the client to the server
     * @param response the response send by the server to the client
     * @throws ServletException if an error occurred
     * @throws IOException if an error occurred
     */
    public void doGet(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {

        response.setContentType("text/html");
        PrintWriter out = response.getWriter();
        out.println("<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\">");
        out.println("<HTML>");
        out.println("  <HEAD><TITLE>A Servlet</TITLE></HEAD>");
        out.println("  <BODY>");
        out.print("    This is ");
        out.print(this.getClass());
        out.println(", using the GET method");
        out.println("  </BODY>");
        out.println("</HTML>");
        out.flush();
        out.close();
    }

    /**
     * The doPost method of the servlet. <br>
     *
     * This method is called when a form has its tag value method equals to post.
     *
     * @param request the request send by the client to the server
     * @param response the response send by the server to the client
     * @throws ServletException if an error occurred
     * @throws IOException if an error occurred
     */
    public void doPost(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {

        response.setContentType("text/html");
        PrintWriter out = response.getWriter();
        int ctn_code = Integer.parseInt(request.getParameter("ctn_code"));
        String ctn_name = request.getParameter("ctn_name");
        String gov_name = request.getParameter("gov_name");
        String land_dp_name = request.getParameter("land_dp_name");
        String parent_code = request.getParameter("parent_code");
        Canton canton = new Canton();
        canton.setCtn_code(ctn_code);
        canton.setCtn_name(ctn_name);
        canton.setGov_name(gov_name);
        canton.setLand_dp_name(land_dp_name);
        canton.setParent_code(parent_code);
        CantonDaoImp cantonadd = new CantonDaoImp();
        try {
            if(cantonadd.addCanton(canton)) {
                request.getRequestDispatcher("CantonListServlet").forward(request, response);
            } else {
                System.out.println("fail");
                request.getRequestDispatcher("../index.jsp");
            }
        } catch (SQLException e) {
            // TODO Auto-generated catch block
            out.print(e.getMessage());
            e.printStackTrace();
        }
    }

    /**
     * Initialization of the servlet. <br>
     *
     * @throws ServletException if an error occurs
     */
    public void init() throws ServletException {
        // Put your code here
    }

}

CantonAddServlet类

package com.caiduping.servlet;

import java.io.IOException;
import java.io.PrintWriter;
import java.sql.SQLException;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import com.caiduping.Dao.CantonDaoImp;
public class CantonDelServlet extends HttpServlet {

    /**
     * Constructor of the object.
     */
    public CantonDelServlet() {
        super();
    }

    /**
     * Destruction of the servlet. <br>
     */
    public void destroy() {
        super.destroy(); // Just puts "destroy" string in log
        // Put your code here
    }

    /**
     * The doGet method of the servlet. <br>
     *
     * This method is called when a form has its tag value method equals to get.
     *
     * @param request the request send by the client to the server
     * @param response the response send by the server to the client
     * @throws ServletException if an error occurred
     * @throws IOException if an error occurred
     */
    public void doGet(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
        int ctn_code = Integer.parseInt(request.getParameter("ctn_code"));
        CantonDaoImp cdi=new CantonDaoImp();
        try {
            cdi.delCanton(ctn_code);
        } catch (SQLException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
        request.getRequestDispatcher("CantonListServlet").forward(request, response);
    }

    /**
     * The doPost method of the servlet. <br>
     *
     * This method is called when a form has its tag value method equals to post.
     *
     * @param request the request send by the client to the server
     * @param response the response send by the server to the client
     * @throws ServletException if an error occurred
     * @throws IOException if an error occurred
     */
    public void doPost(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {

        doGet(request,response);
    }

    /**
     * Initialization of the servlet. <br>
     *
     * @throws ServletException if an error occurs
     */
    public void init() throws ServletException {
        // Put your code here
    }

}

CantonDelServlet类

package com.caiduping.servlet;

import java.io.IOException;
import java.io.PrintWriter;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import com.caiduping.Dao.CantonDaoImp;
import com.caiduping.entity.Canton;

import java.util.List;
public class CantonListServlet extends HttpServlet {

    /**
     *
     */
    private static final long serialVersionUID = 1L;

    /**
     *
     */

    /**
     * Constructor of the object.
     */
    public CantonListServlet() {
        super();
    }

    /**
     * Destruction of the servlet. <br>
     */
    public void destroy() {
        super.destroy(); // Just puts "destroy" string in log
        // Put your code here
    }

    /**
     * The doGet method of the servlet. <br>
     *
     * This method is called when a form has its tag value method equals to get.
     *
     * @param request the request send by the client to the server
     * @param response the response send by the server to the client
     * @throws ServletException if an error occurred
     * @throws IOException if an error occurred
     */
    public void doGet(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {

         doPost(request, response);//以便不管提交数据是什么方式均专一到dopost
    }

    /**
     * The doPost method of the servlet. <br>
     *
     * This method is called when a form has its tag value method equals to post.
     *
     * @param request the request send by the client to the server
     * @param response the response send by the server to the client
     * @throws ServletException if an error occurred
     * @throws IOException if an error occurred
     */
    public void doPost(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
        //实例化CantonDaoImp,工程中可以写一个接口
        CantonDaoImp cantonService = new CantonDaoImp();
        //建立一个Canton列表 ,调用CantonDaoImp方法返回這个列表
        List<Canton> list = cantonService.listCanton();
        //放置這个列表到request对象中
        request.setAttribute("list", list);
        //转向到listCanton.jsp
        request.getRequestDispatcher("listCanton.jsp").forward(request, response);
    }

    /**
     * Initialization of the servlet. <br>
     *
     * @throws ServletException if an error occurs
     */
    public void init() throws ServletException {
        // Put your code here
    }

}

CantonListServlet类

<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<title>
</title>
<style type="text/css">
<!--
.style1 {color: #FF0000}
.style2 {font-size: 14px}
-->
</style>
</head>

<body>
<script language="javascript">
function check(){
if (form1.title.value==""){
  alert("请输入新闻标题")
  form1.title.focus();
  return false;
 }
if (form1.content.value==""){
  alert("请输入内容新闻内容");
  form1.content.focus();
  return false;
 }
}
</script>

<table width="397" border="0">
<tr><td width="391" align="left"><form action="CantonAddServlet" method="post" name="form1">
  <table width="378" height="162" border="1" align="left" style="border-collapse:collapse">
    <tr align="left">
      <td height="19" colspan="2"><span class="titletxt">行政区划信息录入(以下带<span class="style1">*</span>为必填项)</span></td>
    </tr>
    <tr>
      <td width="132" height="9"><span class="style2"> 行政区代码</span></td>
      <td width="239"><input name="ctn_code" type="text" id="ctn_code" size="20">
        <span class="style1">*</span>
        </td>
    </tr>
    <tr>
      <td width="132" height="4"><span class="style2"> 行政区名称 </span></td>
      <td><input name="ctn_name" type="text" id="ctn_name" size="20">
        <span class="style1">*
        </span></td>
    </tr>
    <tr>
      <td width="132" height="20"><span class="style2"> 政府名称</span></td>
      <td><input name="gov_name" type="text" id="gov_name" size="20"></td>
    </tr>
    <tr>
      <td width="132" height="20"><span class="style2"> 国土部门名称</span></td>
      <td><input name="land_dp_name" type="text" id="land_dp_name" size="20"></td>
    </tr>
    <tr>
      <td width="132" height="20"><span class="style2"> 上级行政区代码</span></td>
      <td><input name="parent_code" type="text" id="parent_code" size="20"></td>
    </tr>
    <tr>
      <td>&nbsp;</td>
      <td><input name="bt1" type="submit" id="bt1" value="确定"></td>
    </tr>
  </table>
</form></td>
</tr>
</table>
</body>
</html>

addCanton.jsp

<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title></title>
<link href="css/style.css" rel=stylesheet type=text/css>
</head>
<body topmargin=‘0‘ leftmargin=‘0‘>
<table cellpadding="0" cellspacing="0" height=‘23‘ width=‘100%‘ border=‘0‘>
    <tr>
    <td style="background-image: url(‘images/main_header_left.jpg‘); background-repeat: no-repeat" height=‘23‘ width=‘32‘>&nbsp;&nbsp;</td>
    <td class=‘lth‘ valign=‘bottom‘ background=‘images/main_header_title.jpg‘ nowrap>当前位置:操作员 &gt; </td>
    <td background=‘images/main_header_center.jpg‘ height=‘23‘ width=‘100‘>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</td>
    <td background=‘images/main_header_center1.jpg‘ height=‘23‘ width=‘100%‘></td>
    <td background=‘images/main_header_right.jpg‘ height=‘23‘ width=‘30‘ align=‘right‘>&nbsp;&nbsp;&nbsp;</td>
    </tr>
</table>
</body>
</html>

current_site.jsp

<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>无标题文档</title>
<LINK
href="css/content.css" type=text/css rel=stylesheet>
<style type="text/css">
<!--
.STYLE1 {font-size: 24px}
-->
</style>
</head>

<body>
<br />
<table width="800" border="0" align="center" cellpadding="0" cellspacing="0">
  <tr>
    <td width="100%" height="154" bgcolor="#80C6FF" class="titletxt"><div align="center" class="STYLE1">对不起,页面正在建设中!!</div></td>
  </tr>
</table>
<p>&nbsp;</p>
</body>
</html>

error.jsp

<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<title></title>
<LINK href="css/css.css" type=text/css rel=stylesheet>
<SCRIPT language=Javascript>

function onChange(i){
    childSort=document.all("child" + i);
    //theTd=document.all("td" + i);
    if(childSort.style.display=="none"){
        //theTd.bgcolor="#ffffff";
        childSort.style.display="";}
    else{
        //theTd.bgcolor="#000000";
        childSort.style.display="none";}
}

function leafF(url){
    window.parent.main1.location.href=url;
}

</SCRIPT>
</HEAD>
<body MS_POSITIONING="GridLayout" leftmargin="0" topmargin="0" marginwidth="0" marginheight="0" bgcolor="#E8E8E8" class=‘body‘>
        <TABLE style="BORDER-COLLAPSE: collapse" cellSpacing=0 cellPadding=0 width="300" border=‘0‘>
        <TR>
        <TD CLOSPAN=‘2‘ height=‘10‘ ></TD>
        </Tr>
          <TR>
        <TD width=5></TD>
        <TD width=295>

     <IMG height=22 src="images/rootmiddle.jpg" width=22 align=absMiddle border=0>
        <A href="javascript:onChange(2)">
            基础数据设置

        </A>
        <BR>
    <SPAN id=child2 style="DISPLAY: 0" valign=‘middle‘>
        <IMG height=22 src="images/line_tri.jpg" width=22 align=absMiddle border=‘0‘ ><IMG height=22 src="images/leaf.jpg" width=10 align=absMiddle border=‘0‘>
            <A href="error.html" target="main1">
            新设申请书

            </A>
            <BR>
        <SPAN id=child2 style="DISPLAY: 0" valign=‘middle‘>
        <IMG height=22 src="images/line_tri.jpg" width=22 align=absMiddle border=‘0‘ ><IMG height=22 src="images/leaf.jpg" width=10 align=absMiddle border=‘0‘>
            <A href="CantonListServlet" target="main1">
            行政区划

            </A>
            <BR>
    <SPAN id=child2 style="DISPLAY: 0" valign=‘middle‘>
        <IMG height=22 src="images/line_tri.jpg" width=22 align=absMiddle border=‘0‘ ><IMG height=22 src="images/leaf.jpg" width=10 align=absMiddle border=‘0‘>
            <A href="error.jsp" target="main1">
            设备仪器清单

            </A>
            <BR>        

    <IMG height=22 src="images/roottop.jpg" width=22 align=absMiddle border=0>
        <A href="javascript:onChange(1)">
            部级资质新设申请

        </A>
        <BR>     

      </SPAN>

        <IMG height=22 src="images/rootmiddle.jpg" width=22 align=absMiddle border=0>
        <A href="javascript:onChange(3)">
            数据导入导出

        </A>
        <BR>

        <IMG height=22 src="images/rootmiddle.jpg" width=22 align=absMiddle border=0>
        <A href="javascript:leafF(‘Login.jsp‘)">
            退出
        </A>
        <BR>  

        </TD></TR></TABLE>
</body>
</HTML>

index_tree1.jsp

<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<title></title>
<link href="css/style.css" rel=stylesheet type=text/css>
<script language="VBScript">
<!--
  Sub GoForward()
      history.go(1)
  End Sub

  Sub GoBack()
      history.go(-1)
  End Sub
-->
</script>

<SCRIPT language=Javascript>

function onChange(i){
    childSort=document.all("child" + i);
    //theTd=document.all("td" + i);
    if(childSort.style.display=="none"){
        //theTd.bgcolor="#ffffff";
        childSort.style.display="";}
    else{
        //theTd.bgcolor="#000000";
        childSort.style.display="none";}
}

function leafF(url){
    window.parent.main1.location.href=url;
}

</SCRIPT>

</head>
<body topmargin=‘0‘ leftmargin=‘0‘ background=‘images/bodybackground.jpg‘>
<table border="0" cellpadding="0" cellspacing="0" background=‘images/header.jpg‘ align=‘center‘ valign=‘top‘ width="100%" height="77">
 <tr>
 <td style="background-image: url(‘images/headerleft.jpg‘); background-repeat: no-repeat" width=‘35‘ height=‘24‘>
 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
 </td>
 <td align=‘left‘ width=‘100%‘>
 <font style=‘font-size:12pt;color:#000000;‘> 建设用地审批电子报盘管理软件 Ver1.0</font>
 </td>
 </tr>
 <tr>
 <td height=‘50‘ colspan=‘2‘ width=‘100%‘ >
 <table border="0" cellspacing="0">
        <tr>
          <td width="16">&nbsp;</td>
          <td width="50"><div align="center"><img src="images/back.gif" width="20" height="20" onClick="GoBack()"></div></td>
          <td width="50"><div align="center"><img src="images/next.gif" width="20" height="20" onClick="GoForward()"></div></td>
          <td width="50"><div align="center"><a href="index.jsp" target="_top"><img src="images/return.gif" width="20" height="20" border="0"></a></div></td>
          <td width="16">&nbsp;</td>
          <td width="68">&nbsp;</td>
          <td width="68">&nbsp;</td>
          <td width="68">&nbsp;</td>
          <td width="68">&nbsp;</td>
          <td width="68">&nbsp;</td>
          <td width="68">&nbsp;</td>
          <td width="68">&nbsp;</td>
          <td width="68">&nbsp;</td>
          <td width="68">&nbsp;</td>
          <td width="140">&nbsp;</td>
        </tr>
        <tr>
          <td>&nbsp;</td>
          <td><div align="center"><font color="#3074A2" style="font-size:9pt;color:#000000;">向前</font></div></td>
          <td><div align="center"><font color="#3074A2" style="font-size:9pt;color:#000000">向后</font></div></td>
          <td><div align="center"><font color="#3074A2" style="font-size:9pt;color:#000000">返回</font></div></td>
          <td>&nbsp;</td>
          <td width="68">&nbsp;</td>
          <td width="68">&nbsp;</td>
          <td width="68">&nbsp;</td>
          <td width="68">&nbsp;</td>
          <td width="68">&nbsp;</td>
          <td width="68">&nbsp;</td>
          <td width="68">&nbsp;</td>
          <td width="68"></td>
          <td width="68"></td>
          <td width="140"><div align="center"><div align="center"><font color="#3074A2" style="font-size:9pt;color:#000000">退出</font></div></td>
        </tr>
      </table>
 </td>
 </tr>
 <tr>
 <td  background=‘images/bodybackground.jpg‘ width=‘100%‘ nowrap colspan=‘2‘>
 <table width=‘100%‘ cellpadding="0" cellspacing="0" border=‘0‘>
 <tr>
 <td    background=‘images/bodybackground.jpg‘ nowrap width=‘186‘>
     <font style=‘font-size:9pt‘>导航区菜单</font>

 </td>
 <td width=‘100%‘ align=‘right‘ height=‘23‘>
     <iFRAME width=‘100%‘ height=‘100%‘  scrolling=‘no‘ frameborder=‘0‘ NAME="CurSite" SRC="current_site.jsp"></iframe>
 </td>
 </tr>
 </table>
 </td>
 </tr>
</table>
<table width="100%" cellpadding="0" cellspacing="0" height="500" align="center" topmargin=‘0‘ border=‘0‘>
  <tr>
      <td width="1" background=‘images/bodybackground.jpg‘ cellpadding="0" cellspacing="0">&nbsp;

    </td>
    <td valign=‘top‘ align=‘left‘ name="frmTitle1" id=frmTitle1 background="images/bodybackground.jpg" style="width:177">
        <iFRAME width=‘100%‘ height=‘100%‘  scrolling=‘auto‘ frameborder=‘0‘ NAME="index_tree" SRC="index_tree1.jsp" style="HEIGHT: 100%; VISIBILITY: inherit; WIDTH: 177px; Z-INDEX: 2"></iframe>
    </td>
    <TD background=‘images/bodybackground.jpg‘ width="0">
      <TABLE border=0 cellPadding=0 cellSpacing=0>
        <TBODY>
        <TR>
          <TD onclick=switchSysBar() style="HEIGHT: 100%;WIDTH: 100%">
              <SPAN class=navPoint id=switchPoint title=关闭/打开左栏></SPAN>
          </TD>
        </TR>
          </TBODY>
      </TABLE>
    </TD>
    <TD width=‘1‘>
      <TABLE border=0 cellPadding=0 cellSpacing=0 height=‘100%‘ width="16">
        <TR>
          <TD background=‘images/main_left_top.jpg‘ height=‘16‘ width=‘16‘>
          </TD>
        </TR>
        <TR>
          <TD background=‘images/main_left_middle.jpg‘ height=‘100%‘ width=‘16‘>
          </TD>
        </TR>
        <TR>
          <TD background=‘images/main_left_bottom.jpg‘ height=‘24‘ width=‘16‘>
          </TD>
        </TR>
      </TABLE>
    </TD>
    <TD width="100%" height=‘100%‘ valign=‘bottom‘>    <table border=‘0‘ cellpadding=0 cellspacing=0 height=‘100%‘ width=‘100%‘>
      <tr>
        <td background=‘images/main_top_center.jpg‘ height=‘16‘ width=‘16‘ colspan=‘2‘></td>
      </tr>
      <tr>
        <td height=‘100%‘ width=‘100%‘ colspan=‘2‘><iframe width=‘100%‘ height=‘100%‘ scrolling=‘no‘ frameborder=‘0‘ name="main1" ></iframe>
        </td>
      </tr>
      <tr>
        <td background=‘images/main_bottom_center.jpg‘ height=‘24‘ valign=‘bottom‘ width=‘100%‘></td>
        <td background=‘images/main_bottom_center_right.jpg‘ height=‘24‘ width=‘300‘ valign=‘bottom‘></td>
      </tr>
    </table></TD>
    <TD width="16" height=‘100%‘>
      <TABLE border=0 cellPadding=0 cellSpacing=0 height=‘100%‘>
        <TR>
          <TD background=‘images/main_right_top.jpg‘ height=‘16‘ width=‘16‘>
          </TD>
        </TR>
        <TR>
          <TD background=‘images/main_right_middle.jpg‘ height=‘100%‘>
          </TD>
        </TR>
        <TR>
          <TD background=‘images/main_right_bottom.jpg‘ height=‘30‘>
          </TD>
        </TR>
      </TABLE>
    </TD>

  </tr>
  <tr>
      <td height="20" colspan="6" align=‘right‘ background=‘images/bodybackground.jpg‘><font style=‘font-size:9pt‘> 第一开发小组&nbsp;&nbsp;&nbsp;</font></td>
  </tr>
</table>
</body>
</html>

index.jsp

<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
<%@ page import="com.caiduping.entity.Canton"%>
<%@ page import="java.util.List"%> 

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">

<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<title>无标题文档</title>
</head>

<body>
<table width="572" height="108" border="1" style="border-collapse:collapse">
  <tr>
    <td height="25" colspan="5" align="right">
      <input name="bt1" type="button" id="bt1" value="新增行政区划" onClick="javascript:window.location.href=‘addCanton.jsp‘">
    </td>
  </tr>
  <tr>
    <td width="87"><div align="center"> 行政区代码 </div></td>
    <td width="91"><div align="center">行政区名称</div></td>
    <td width="110"><div align="center">政府名称</div></td>
    <td width="122"><div align="center">国土部门名称</div>      <div align="center"></div></td>
    <td width="128"><div align="center">上级行政区代码</div>      </td>
    <td>操作</td>
  </tr><%List<Canton> list=(List<Canton>)request.getAttribute("list"); %> <!-- 定义一个canton 列表,将request中的列表都出来。-->
  <%for(Canton ct:list){ %> <!-- 读取列表所有内容输出 -->
  <tr>
    <td><div align="center"><%=ct.getCtn_code() %></div></td>
    <td><div align="center"><SPAN class=content><%=ct.getCtn_name() %></SPAN></div></td>
    <td><div align="center"> <%=ct.getGov_name() %></div></td>
    <td><div align="center"><%=ct.getLand_dp_name() %></div></td>
    <td><div align="center"><%=ct.getParent_code() %></div></td>
    <td><a href="cantondel?ctn_code=<%=ct.getCtn_code() %>">删除</a></td>
  </tr><%} %>

</table>
</body>
</html>

listCanton.jsp

run:

时间: 2024-11-07 23:48:50

JDBC之数据连接的相关文章

JDBC java数据连接 读取properties 数据库连接池 预编译

1.创建连接,下载MySQL驱动(JDBC接口的实现类,就是一个jar包) public class Demo01 { public static void main(String[] args) throws ClassNotFoundException, SQLException { //1. 注册驱动 告诉虚拟机使用的是哪个数据库软件 Class.forName("com.mysql.jdbc.Driver"); //2. 获取连接对象 Connection conn = Dri

Netbeans 中创建数据连接池和数据源步骤

1.启动glassfish服务器, 在浏览器的地址栏中输入 http://localhost:4848 2.首先建立JDBC Connection Pools: 3.new 一个Connectio Pools 4.对General Settings属性填写: 5.填写Datasource Classname:com.mysql.jdbc.jdbc2.optional.MysqlConnectionPoolDataSource Ping属性选中,可以用来检验数据连接池是否创建成功! . 6.对Ad

spring下,druid,c3p0,proxool,dbcp四个数据连接池的使用和配置

由于那天Oracle的数据连接是只能使用dbcp的数据库连接池才连接上了,所以决定试一下当下所有得数据库连接池连接orcale和mysql,先上代码 配置文件的代码 1 #=================dbcp连接池======================# 2 #Oracle数据库连接 3 #jdbc_driverClassName=oracle.jdbc.driver.OracleDriver 4 #jdbc_url=jdbc:oracle:thin:@localhost:1521:

记录一个简单的dbcp数据连接池

这个示例用到了ThreadLocal与dbcp,我觉得有点意思,就整理了下.使用dbcp,肯定要导入commons-dbcp.jar包.下面直接贴DBUtil代码: public class DBUtil { private static DataSource ds; //定义一个数据连接池 //threadLocal是线程的局部变量,它的实例通常是类中的 private static 字段 private static ThreadLocal<Connection> connLocal=ne

在Spring中基于JDBC进行数据访问时如何控制超时

超时分类 超时根据作用域可做如下层级划分: Transaction Timeout > Statement Timeout > JDBC Driver Socket Timeout Transaction Timeout指一组SQL操作执行时应在设定的时间内完成(提交或回滚),否则将引发超时.它的值应大于 N(语句数) * Statement Timeout Statement Timeout指完成单条SQL语句执行的最大允许时间.它的值应小于JDBC Driver Socket Timeou

eclipse下jdbc数据源与连接池的配置及功能简介

今天在做四则运算网页版的时候遇到了一个困惑,由于需要把每个产生的式子存进 数据库,所以就需要很多次重复的加载驱动,建立连接等操作,这样一方面写程序不方便,加大了程序量,另一方面,还有导致数据库的性能急剧下降,那么怎么解决这个问题呢? 我所学到的方法就是通过JDBC数据源和连接池的方式来解决这个问题.利用DataSource来建立数据库的连接不需要加载JDBC驱动,也不需要DriverManager类,通过向一个JNDI服务器查询来得到DataSource对象,然后调用DataSource对象的g

数据连接池JNDI

数据库连接有很多中方式,JDBC数据库的连接方式,前边我们已经介绍过了,而开发中我们经常使用的是DataBaseConnectionPool(数据库连接池,DBCP).数据库连接池到底是什么?它比jdbc数据库连接有什么优势呢?它又怎么使用呢? 一,先看一下JDBC连接,每次用户访问数据库时,需要JDBC为我们创建数据库连接,我们使用,然后关闭.而当我们加断点测试,可以发现这个过程中创建数据库连接这个过程是比较费时间的,而不是我们在数据库中操作数据费时间.所以JDBC这种方式的效率大大折扣.而且

帆软报表学习之数据连接

帆软报表FineReport中数据连接的JDBC连接池属性问题 连接池原理 在帆软报表FineReport中,连接池主要由三部分组成:连接池的建立.连接池中连接使用的治理.连接池的关闭.下面就着重讨论这三部分及连接池的配置问题. 1. 连接池原理 连接池技术的核心思想,是连接复用,通过建立一个数据库连接池以及一套连接使用.分配.治理策略,使得该连接池中的连接可以得到高效.安全的复用,避免了数据库连接频繁建立.关闭的开销. 另外,由于对JDBC中的原始连接进行了封装,从而方便了数据库应用对于连接的

c3p0 数据连接池 流行开源

注意事项:配置文件规定命名,不能更改   c3p0-config <?xml version="1.0" encoding="UTF-8"?><c3p0-config>    <default-config>        <property name="driverClass">com.mysql.jdbc.Driver</property>        <property n