IntelliJ IDEA+ jquery Easyui+MSSQLSERVER 实战3、建立web应用和JDBC封装和数据访问。

IntelliJ IDEA+ jquery Easyui+MSSQLSERVER 实战3、建立web应用和JDBC封装和数据访问。

看了网上不少文章,没有一篇写清楚,冒火得很,很想提武器火拼了,自己写清楚,未完,稍后更新....

本节主要是让读者初步熟悉IDE和WEB应用的开发方法,后续文章 实战4 会介绍 另外一种方式,使用框架来把SQL语句和操作全部封装为类,建议实际建立项目时用实战4的方法。

1、安装apache-tomcat-9.0.35,下载https://tomcat.apache.org/download-90.cgi   (下载安装包)

2、IntelliJ IDEA新建 项目->java EE->Web Application   ,取名为myweb

3、下载 Easy UI     http://www.jeasyui.net/download/jquery.html

下载后把 jquery-easyui-1.7.0 整个目录拷贝入 myweb目录,这时返回打开 IntelliJ IDEA,可见IDE中已有 jquery-easyui-1.7.0

4、IntelliJ IDEA  web目录下新建HTML 文件index

代码如下:

<html contentType="text/html"; language="java" ;lang="en" >


<html>
<head>
    <meta charset="UTF-8">

    <link rel="stylesheet" type="text/css" href="../jquery-easyui-1.7.0/themes/default/easyui.css">
    <link rel="stylesheet" type="text/css" href="../jquery-easyui-1.7.0/themes/icon.css">
    <link rel="stylesheet" type="text/css" href="jquery-easyui-1.7.0/demo.css">
    <script type="text/javascript" src="../jquery-easyui-1.7.0/jquery.min.js"></script>
    <script type="text/javascript" src="../jquery-easyui-1.7.0/jquery.easyui.min.js"></script>

    <meta charset="UTF-8">
    <title>web数据访问平台</title>

    <style type="text/css">
        body {
            font-family: microsoft yahei;
        }
    </style>
</head>
<body class="easyui-layout">
<div region="north" style="height: 78px; background-color: #E0ECFF">
</div>
<div region="west" style="width: 200px" title="导航菜单" split="true">
</div>
<div data-options="region:'center'" style="background:#eee;">
</div>
<div region="south" style="height: 25px;padding: 5px" align="center">
</div>
</body>
</html>

/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

其中这段代码——

<link rel="stylesheet" type="text/css" href="../jquery-easyui-1.7.0/themes/default/easyui.css">

<link rel="stylesheet" type="text/css" href="../jquery-easyui-1.7.0/themes/icon.css">

<link rel="stylesheet" type="text/css" href="jquery-easyui-1.7.0/demo.css">

<script type="text/javascript" src="../jquery-easyui-1.7.0/jquery.min.js"></script>

<script type="text/javascript" src="../jquery-easyui-1.7.0/jquery.easyui.min.js"></script>

为引用  jquery-easyui-1.7.0 的文件,自己的文件中拷如就可以了。

5、IntelliJ IDEA  web目录下 index.html  文件上点 右键 选 open in browse ,即可

可在浏览器中见我们写好的index.html  运行效果

到此我们基本完成了一个web应用构架,稍后我会继续更新,完成  数据访问页面的建立....静待

我们建立一个 main.asp的文件

main.asp的文件

<%@page import="java.util.Calendar"%>
<%@ page language="java" contentType="text/html; charset=utf-8"
         pageEncoding="utf-8"%>
<%@ page import="java.util.*"%>
<!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=utf-8">
    <title>web数据访问和JDBC 封装 主界面</title>

    <!-- 权限验证 -->
    <%
      /*  if(session.getAttribute("currentUser")==null){
              response.sendRedirect("index.jsp");
            return;
        }   */
    %>
    <!-- 引用的包 -->
    <link rel="stylesheet" type="text/css" href="../web/jquery-easyui-1.7.0/themes/default/easyui.css">
    <link rel="stylesheet" type="text/css" href="../web/jquery-easyui-1.7.0/themes/icon.css">
    <script type="text/javascript" src="../web/jquery-easyui-1.7.0/jquery.min.js"></script>
    <script type="text/javascript" src="../web/jquery-easyui-1.7.0/jquery.easyui.min.js"></script>
    <script type="text/javascript" src="../web/jquery-easyui-1.7.0/locale/easyui-lang-zh_CN.js"></script>

    <script type="text/javascript">

        /* 重置操作
            function resetValue(){
            document.getElementById("userName").value="";
            document.getElementById("password").value="";
        }*/
        $(function(){
            // 数据,一级菜单
            var treeData=[{
                text:"web数据访问和JDBC数据封装",
                children:[{
                    text:"数据访问",
                    attributes:{
                        url:"sjll.jsp"
                    }
                },{
                    text:"数据更新",
                    attributes:{
                        url:"studentManage.jsp"
                    }
                },{
                    text:"关于",
                    attributes:{
                        url:"about.jsp"
                    }
                }],
            }];

            // 实例化树菜单
            $("#tree").tree({
                data:treeData,
                lines:true,//线
                //单击事件
                onClick:function(node){
                    if(node.attributes){
                        openTab(node.text,node.attributes.url);
                    }
                }
            });

            // 新增Tab,单击一级菜单时在右边显示
            function openTab(text,url){
                if($("#tabs").tabs('exists',text)){//防止重复点击事件
                    $("#tabs").tabs('select',text);
                }else{
                    var content="<iframe frameborder='0' scrolling='auto' style='width:100%;height:100%' src="+url+"></iframe>";
                    $("#tabs").tabs('add',{
                        title:text,
                        closable:true,
                        content:content
                    });
                }
            }
        });
    </script>
</head>
<body class="easyui-layout">
<!-- 北边布局 -->
<div region="north" style="height:80px; background-color: #E0EDFF;" >
    <div align="left" style="width:80%; float:left"><img src="images/main.jpg"></div>
    <div style="padding-top: 50px;padding-right: 20px;">当前用户:&nbsp;<font color="red" >${currentUser.userName }</font>
        <a href="" style="text-decoration: none; color:red;">退出</a>
    </div>
</div>
<!-- 中间布局 -->
<div region="center">
    <div class="easyui-tabs" fit="true" border="false" id="tabs">
        <div title="首页">
            <div align="center" style="padding-top:100px;"><font color="red" size="10">欢迎使用</font></div>
        </div>
    </div>
</div>
<!-- 西边布局 -->
<div region="west" style="width:150px;" title="导航菜单" split="true">
    <ul id="tree"></ul>
</div>
<!-- 南边布局 -->
<%
    Calendar calendar=Calendar.getInstance();
    int year=calendar.get(Calendar.YEAR);
%>
<div region="south" style="height:25px" align="center">fxd编程 版权所有 &copy;2017-<%=year %> </a> 联系邮箱:[email protected]</div>

</body>
</html>

数据访问页面 sjll.asp

1、先在File->project structure->libraries  中点 + 号,引入mssql-jdbc-7.0.0.jre8.jar   ,MSSQLSERVER  JDBC包。

2、引入上篇文章中,我们自定义类  JdbcUtils.JdbcUtils 

/////////////////////////////////////////////////////////////////////////////////////////////////////////

<%@ page language="java" contentType="text/html; charset=UTF-8"
         pageEncoding="UTF-8"%>
<%@ page language="java" import="java.util.*" %>
<%@ page import="JdbcUtils.JdbcUtils"%>
<%@ page  import= "java.sql.*" %>
<%@ page import="javax.swing.table.DefaultTableModel" %>
<%@ page  import="java.sql.PreparedStatement" %>
<%@ page  import="java.sql.ResultSet" %>

<%@ page import="java.awt.*" %>
<%@ page import="java.awt.event.*" %>
<%@ page import="javax.swing.*" %>


<%@ page import="java.util.List" %>
<%@ page import=" java.util.Vector" %>
<%@ page import=" javax.swing.border.*" %>
<%@ page import=" javax.swing.table.DefaultTableModel" %>
<%@ page import=" javax.swing.JTable" %>
<%@ page import=" java.util.ArrayList" %>

<!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=UTF-8">
    <title>web数据访问和JDBC封装</title>
    <!-- 权限验证 -->
    <%
      /*  if(session.getAttribute("currentUser")==null){
            response.sendRedirect("index.jsp");
            return;
        } */
    %>

    <!-- 引用的包 -->
    <link rel="stylesheet" type="text/css" href="../web/jquery-easyui-1.7.0/themes/default/easyui.css">
    <link rel="stylesheet" type="text/css" href="../web/jquery-easyui-1.7.0/themes/icon.css">
    <script type="text/javascript" src="../web/jquery-easyui-1.7.0/jquery.min.js"></script>
    <script type="text/javascript" src="../web/jquery-easyui-1.7.0/jquery.easyui.min.js"></script>
    <script type="text/javascript" src="../web/jquery-easyui-1.7.0/locale/easyui-lang-zh_CN.js"></script>


    <script type="text/javascript">
        var url;
        function searchGrade(){
            $('#dg').datagrid('load',{
                jqmc:$('#s_jqmc').val()
            });

        }
        function deleteGrade()
        {
            var selectedRows=$("#dg").datagrid('getSelections');
            if(selectedRows.length==0){
                $.messager.alert("系统提示","请选择要删除的数据!");
                return;
            }
           var row=selectedRows[0];


                    $("#dlg2").dialog("open").dialog("setTitle","删除信息");
                    $("#fm2").form("load",row);//把用户的选择的数据塞入表格中
            <%

                            String  jqmc1;
                            request.setCharacterEncoding("UTF-8");
                            jqmc1= request.getParameter("jqmc");

                             Connection con4= null;
                             List para4=null;
                             boolean  f4;

                            //DefaultTableModel tableModel = (DefaultTableModel) DG.getModel();
                            //int selectedRowIndex = table1.getSelectedRow(); // 取得用户所选单行


                            JdbcUtils JdbcUtils4=new JdbcUtils();
                            JdbcUtils4.JdbcUtils();
                            con4=JdbcUtils4.getConnection();
                         // 进行相关处理
                          String sql4 = "DELETE from info_jqmc WHERE jqmc=fanxd5";  //删除test表中某行

                        List param4 = new ArrayList();


                        param4.add(null);


                          try
                          {
                              f4=JdbcUtils4.updateByPreparedStatement(sql4, param4);
                              }
                            catch (Exception e3)
                             {
                            e3.printStackTrace();
                              }

            %>


        }

        function openGradeAddDialog(){
            $("#dlg").dialog("open").dialog("setTitle","添加信息");
            <%
             Connection con5= null;
            PreparedStatement statement5 = null;
            ResultSet res5 = null;
            List parm5=null;
            boolean  f5;

            if(request.getMethod().equals("GET"));
            //out.print("GET");

            else{
                //out.print("POST");
                request.setCharacterEncoding("UTF-8");
                String t1 = request.getParameter("jqmc");
                String t2 = request.getParameter("jqip");

                JdbcUtils JdbcUtils5 =new JdbcUtils();
                JdbcUtils5.JdbcUtils();
                con5=JdbcUtils5.getConnection();

                String sql5="insert into info_jqmc values (?,?) ";

                List param5= new ArrayList();

                param5.add(t1);
                param5.add(t2);

                try
                {
                    f5=JdbcUtils5.updateByPreparedStatement(sql5, param5);
                }
                catch (Exception e5)
                {
                    e5.printStackTrace();
                }
            }
            %>

          /*  url="GradeSave"; */
        }

        function openGradeModifyDialog(){
            var selectedRows=$("#dg").datagrid('getSelections');//获取用户选择的集合
            if(selectedRows.length!=1){
                $.messager.alert("系统提示","请选择一条要编辑的数据!");
                return;
            }
            var row=selectedRows[0];
            $("#dlg").dialog("open").dialog("setTitle","编辑信息");
            $("#fm").form("load",row);//把用户的选择的数据塞入表格中
            /* url="GradeSave?id="+row.id;*/
         <%   Connection con2= null;
            PreparedStatement statement2 = null;
            ResultSet res2 = null;
            List parm2=null;
            boolean  fl;

            if(request.getMethod().equals("GET"));
            //out.print("GET");

            else{
                //out.print("POST");
                request.setCharacterEncoding("UTF-8");
                String t1 = request.getParameter("jqmc");
                String t2 = request.getParameter("jqip");

                JdbcUtils JdbcUtils3 =new JdbcUtils();
                JdbcUtils3.JdbcUtils();
                con2=JdbcUtils3.getConnection();

                String sql2="UPDATE  info_jqmc SET jqmc=?,jqip=?  WHERE jqmc=?";

                List param2 = new ArrayList();

                param2.add(t1);
                param2.add(t2);
                param2.add(t1);


                try
                {
                    fl=JdbcUtils3.updateByPreparedStatement(sql2, param2);
                }
                catch (Exception e1)
                {
                    e1.printStackTrace();
                }
            }
            %>

            $("#dg").datagrid("reload");
        }

        function closeGradeDialog(){
            $("#dlg").dialog("close");
            reseValue();
        }
        function reseValue(){    //关闭对话框时置空操作
            $("#gradeName").val("");
            $("#college").val("");
            $("#major").val("");
            $("#beizhu").val("");
        }

        function saveGrade(){
            $("#fm").form("submit",{
                url:url,
                onSubmit:function(){
                    return $(this).form("validate");
                },
                success:function(result){
                    if(result.errorMsg){
                        $.messager.alert("系统提示",result.errorMsg);
                        return;
                    }else{
                        $.messager.alert("系统提示","保存成功");
                        $("#dlg").dialog("close");
                        $("#dg").datagrid("reload");//添加成功刷新页面
                        reseValue();
                    }
                }

        });
        }

        function saveGrade2(){
            $("#fm2").form("submit",{
                url:url,
                onSubmit:function(){
                    return $(this).form("validate");
                },
                success:function(result){
                    if(result.errorMsg){
                        $.messager.alert("系统提示",result.errorMsg);
                        return;
                    }else{
                        $.messager.alert("系统提示","保存成功");
                        $("#dlg2").dialog("close");
                        $("#dg").datagrid("reload");//添加成功刷新页面
                        reseValue();
                    }
                }

            });
        }

    </script>
</head>

<%
    Connection con1 = null;
    PreparedStatement statement = null;
    ResultSet res = null;
    List parm1=null;
    try {

        JdbcUtils JdbcUtils2 =new JdbcUtils();
        JdbcUtils2.JdbcUtils();
        con1=JdbcUtils2.getConnection();

        String sql;//查询test表
        sql = "SELECT * FROM info_jqmc";
        res=JdbcUtils2.findMoreResult(sql,parm1);  //调用jdbc封装类中  查询函数

%>

<body style="margin:5px;">
<table id="dg" title="信息" class="easyui-datagrid" fitColumns="true"
       pagination="true" data-options="singleSelect:true" rownumbers="true" url=" " fit="true" toolbar="#tb"><!-- fit="true"默认填充 -->
    <thead>
    <tr>

        <th field="jqmc" width="50" align="center">机器名称</th>
        <th field="jqip"width="200" align="center">机器地址</th>

    </tr>
    </thead>
    <% while (res.next())
    {  %>
    <tr align="center">

        <td><% out.print(res.getString("jqmc"));%></td>
        <td><% out.print(res.getString("jqip"));%></td>

    </tr>
    <% } %>
</table>

<%
    } catch (Exception e1) {
        // TODO: handle exception

        e1.printStackTrace();

    }finally{
        try {
            if(res != null) res.close();
            if(statement != null) statement.close();
            if(con1 != null) con1.close();
        } catch (Exception e2) {
            // TODO: handle exception
            e2.printStackTrace();
        }
    }


%>


<div id="tb">
    <div>
        <a href="javascript:openGradeAddDialog()" class="easyui-linkbutton" iconCls="icon-add" plain="true">添加</a>
        <a href="javascript:openGradeModifyDialog()" class="easyui-linkbutton" iconCls="icon-edit" plain="true">修改</a>
        <a href="javascript:deleteGrade()" class="easyui-linkbutton" iconCls="icon-remove" plain="true">删除</a>
    </div>
    <div>&nbsp;机器名称:&nbsp;<input type="text" name="jqmc" id="jqmc"/><a href="javascript:searchGrade()" class="easyui-linkbutton" iconCls="icon-search" plain="true">搜索</a></div>
</div>

<div id="dlg" class="easyui-dialog" style="width: 400px;height: 280px;padding: 10px 20px"
     closed="true" buttons="#dlg-buttons">
    <form id="fm" method="post">
        <table>
            <tr>
                <td>机器名称:</td>
                <td><input type="text" name="jqmc" id="jqmc" class="easyui-validatebox" required="true"></td>
            </tr>
            <tr>
                <td>机器地址:</td>
                <td><input type="text" name="jqip" id="jqip" class="easyui-validatebox" required="true"></td>
            </tr>

        </table>
    </form>
</div>
<div id="dlg-buttons">
    <a href="javascript:saveGrade()" class="easyui-linkbutton" iconCls="icon-ok" >确定</a>
    <a href="javascript:closeGradeDialog()" class="easyui-linkbutton" iconCls="icon-cancel" >关闭</a>
</div><!-- 添加对话框 -->

<div id="dlg2" class="easyui-dialog" style="width: 400px;height: 280px;padding: 10px 20px"
     closed="true" buttons="#dlg2-buttons">
    <form id="fm2" method="post">
        <table>
            <tr>
                <td>机器名称:</td>
                <td><input type="text" name="jqmc" id="jqmc" class="easyui-validatebox" required="true"></td>
            </tr>


        </table>
    </form>
</div>

<div id="dlg2-buttons">
    <a href="javascript:saveGrade2()" class="easyui-linkbutton" iconCls="icon-ok" >确定</a>
    <a href="javascript:closeGradeDialog()" class="easyui-linkbutton" iconCls="icon-cancel" >关闭</a>
</div><!-- 添加对话框 -->

</body>
</html>

///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

源代码下载  链接: https://pan.baidu.com/s/1GnoXHCx8cX0kL0_fxI3jiw 提取码: 332m 

此种方式基本实现了数据的访问,后续文章 实战4 会介绍 另外一种方式,使用框架来把SQL语句和操作全部封装为类,建议用实战4的方法。

未完待续.....

后续文章 实战4 会介绍 另外一种方式,使用框架来把SQL语句和操作全部封装为类,建议用实战4的方法。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章