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的方法。

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