开发者社区> 推荐码发放> 正文
阿里云
为了无法计算的价值
打开APP
阿里云APP内打开

如何在Docker中测验Jsp连接数据库mysql的操作(制作成一个镜像)

简介: 如何在Docker中测验Jsp连接数据库mysql的操作(制作成一个镜像)http://www.bieryun.com/3398.html 在docker中运行tomcat和数据库的操作流程 首先导入镜像(tomcatdababase。
+关注继续查看

如何在Docker中测验Jsp连接数据库mysql的操作(制作成一个镜像)http://www.bieryun.com/3398.html

在docker中运行tomcat和数据库的操作流程

  1. 首先导入镜像(tomcatdababase。tar是我们之前保存的镜像)
  2. 然后运行容器
  3. 之后启动mysql服务
    这里写图片描述
  4. 启动tomcat服务
    这里写图片描述
  5. 外部检测
    这里写图片描述
    mysql启动成功
  6. 外部检测tomcat
    这里写图片描述
  7. docker 环境已经搭好

现在进行显示网页

  1. 注意要将自己的tomcat文件夹的lib文件夹下,放置一个
    mysql的jar包
    这里写图片描述
  2. 首先布置数据库(mydb.person)
-- 删除表
DROP TABLE person ;
-- 建立person表
CREATE TABLE person
(
    -- 生成一个流水号,观察显示的记录数
    id int AUTO_INCREMENT NOT NULL PRIMARY KEY ,
    -- 用户的登陆ID
    uid varchar(32) ,
    -- 用户的真实姓名
    name varchar(32) ,
    -- 用户的登陆密码
    password varchar(20)
) ;
-- 插入测试数据
INSERT INTO person(uid,name,password) VALUES ('Avaya01','Jeremy01','pwd01') ;
INSERT INTO person(uid,name,password) VALUES ('Avaya02','Jeremy02','pwd02') ;
INSERT INTO person(uid,name,password) VALUES ('Avaya03','Jeremy03','pwd03') ;
INSERT INTO person(uid,name,password) VALUES ('Avaya04','Jeremy04','pwd04') ;
INSERT INTO person(uid,name,password) VALUES ('Avaya05','Jeremy05','pwd05') ;
INSERT INTO person(uid,name,password) VALUES ('Avaya06','Jeremy06','pwd06') ;
INSERT INTO person(uid,name,password) VALUES ('Avaya07','Jeremy07','pwd07') ;
INSERT INTO person(uid,name,password) VALUES ('Avaya08','Jeremy08','pwd08') ;
INSERT INTO person(uid,name,password) VALUES ('Avaya09','Jeremy09','pwd09') ;
INSERT INTO person(uid,name,password) VALUES ('Avaya10','Jeremy10','pwd10') ;
INSERT INTO person(uid,name,password) VALUES ('Avaya11','Jeremy11','pwd11') ;
INSERT INTO person(uid,name,password) VALUES ('Avaya12','Jeremy12','pwd12') ;
INSERT INTO person(uid,name,password) VALUES ('Avaya13','Jeremy13','pwd13') ;
INSERT INTO person(uid,name,password) VALUES ('Avaya14','Jeremy14','pwd14') ;
INSERT INTO person(uid,name,password) VALUES ('Avaya15','Jeremy15','pwd15') ;
INSERT INTO person(uid,name,password) VALUES ('Avaya16','Jeremy16','pwd16') ;
INSERT INTO person(uid,name,password) VALUES ('Avaya17','Jeremy17','pwd17') ;
INSERT INTO person(uid,name,password) VALUES ('Avaya18','Jeremy18','pwd18') ;
INSERT INTO person(uid,name,password) VALUES ('Avaya19','Jeremy19','pwd19') ;
INSERT INTO person(uid,name,password) VALUES ('Avaya20','Jeremy20','pwd20') ;
INSERT INTO person(uid,name,password) VALUES ('Avaya21','Jeremy21','pwd21') ;
INSERT INTO person(uid,name,password) VALUES ('Avaya22','Jeremy22','pwd22') ;
INSERT INTO person(uid,name,password) VALUES ('Avaya23','Jeremy23','pwd23') ;
  1. test_db.Jsp 文件
<%@ page contentType="text/html;charset=gb2312"%>
<%@ page import="java.sql.*"%>
<html>
<head>
    <title>分页显示</title>
</head>
<body>
<center>
    <h1>人员列表</h1>
    <hr>
    <br>
    <%!
        final String jspUrl = "list_person_false_05.jsp" ;
    %>
    <%
        // 定义如下分页变量
        // 1、定义没页要显示的记录数
        int lineSize = 10 ;
        // 2、定义一个当前是第几页
        int currentPage = 1 ;
        // 计算出总页数
        int pageSize = 0 ;
        // 总记录数 / 每页显示的记录数
        int allRecorders = 30 ;
    %>
    <%
        // 接收传过来的当前页
        try
        {
            currentPage = Integer.parseInt(request.getParameter("cp")) ;
        }
        catch(Exception e)
        {}
    %>
    <%
        final String DBDRIVER = "com.mysql.jdbc.Driver" ;
        final String DBURL = "jdbc:mysql://127.0.0.1:3306/mydb" ;
        final String DBUSER = "root" ;
        final String DBPASSWORD = "123456" ;
        Connection conn = null ;
    %>
    <%
        try
        {
            Class.forName(DBDRIVER) ;
            conn = DriverManager.getConnection(DBURL,DBUSER,DBPASSWORD) ;
             if(!conn.isClosed()) 
             {System.out.println("Succeeded connecting to the Database!");}
           else{
            System.out.println("not Succeeded connecting to the Database!");
            }

            PreparedStatement pstmt = null ;
            String sql = "SELECT COUNT(id) from person" ;

            pstmt = conn.prepareStatement(sql) ;
            ResultSet rs = pstmt.executeQuery() ;
            if(rs.next())
            {
                allRecorders = rs.getInt(1) ;
            }
            rs.close() ;
            pstmt.close() ;

            // 计算总页数
            pageSize = (allRecorders+lineSize-1)/lineSize ;

            sql = "SELECT id,uid,name,password FROM person" ;
            pstmt = conn.prepareStatement(sql) ;
            rs = pstmt.executeQuery() ;
    %>
    <script language="javaScript">
        function openPage(curpage)
        {
            document.spage.cp.value = curpage ;
            // alert(cupage) ;
            document.spage.submit() ;
        }
        function selOpenPage()
        {
            document.spage.cp.value = document.spage.selpage.value ;
            document.spage.submit() ;
        }
    </script>
    <form name="spage" action="<%=jspUrl%>">
        <input type="button" value="首页" onClick="openPage(1)" <%=currentPage==1?"disabled":""%>>
        <input type="button" value="上一页" onClick="openPage(<%=currentPage-1%>)" <%=currentPage==1?"disabled":""%>>
        <input type="button" value="下一页" onClick="openPage(<%=currentPage+1%>)" <%=currentPage==pageSize?"disabled":""%>>
        <input type="button" value="尾页" onClick="openPage(<%=pageSize%>)" <%=currentPage==pageSize?"disabled":""%>>
        <input type="hidden" name="cp" value="">
        <font color="red" size="5"><%=currentPage%></font>
        /
        <font color="red" size="5"><%=pageSize%></font>
        跳转到
            <select name="selpage" onChange="selOpenPage()">
            <%
                for(int x=1;x<=pageSize;x++)
                {
            %>
                <option value="<%=x%>" <%=currentPage==x?"selected":""%>><%=x%></option>
            <%
                }   
            %>
            </select></form>
    <table border="1" width="80%">
    <tr>
        <td>编号</td>
        <td>登陆名称</td>
        <td>姓名</td>
        <td>密码</td>
        <td colspan="2">操作</td>
    </tr>
    <%
            int i = 0 ;
            for(int x=0;x<(currentPage-1)*lineSize;x++)
            {
                rs.next();
            }
            // 对于输出代码之前要求按显示的页数空出
            for(int x=0;x<lineSize;x++)
            {
                if(rs.next())
                {
                    i++ ;
                    int id = rs.getInt(1) ;
                    String userid = rs.getString(2) ;
                    String name = rs.getString(3) ;
                    String password = rs.getString(4) ;
        %>
                <tr>
                    <td><%=id%></td>
                    <td><%=userid%></td>
                    <td><%=name%></td>
                    <td><%=password%></td>
                    <td>更新</td>
                    <td>删除</td>
                </tr>
        <%
                }
            }
            rs.close() ;
            pstmt.close() ;
            if(i==0)
            {
    %>
                <tr>
                    <td colspan="6">没有任何数据!!</td>
                </tr>
    <%
            }
    %>
    </table>
    <%
        }
        catch(Exception e)
        {
    %>
            <h2>系统出错!!!</h2>
    <%
        }
        finally
        {
            conn.close() ;
        }
    %>
</center>
</body>
</html>

将此Jsp文件放置在

/usr/local/apache-tomcat-8.5.30/webapps/my

然后在
这里写图片描述

在可以和host通信的机器上,进行测试

这里写图片描述

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
全方位解读服务网格(Service Mesh)的背景和概念
为了解决微服务框架的侵入性问题,我们引入服务网格。
1245 0
PolarDB 并行查询的前世今生
本文会深入介绍PolarDB MySQL在并行查询这一企业级查询加速特性上做的技术探索、形态演进和相关组件的实现原理,所涉及功能随PolarDB MySQL 8.0.2版本上线。
510 0
企业内部应用接入钉钉获取部门及人员信息
企业内部应用接入钉钉,同时通过API获取当前企业下部门及人员信息
1191 0
MySQL模糊查询再也用不着 like+% 了!
我们都知道 InnoDB 在模糊查询数据时使用 "%xx" 会导致索引失效,但有时需求就是如此,类似这样的需求还有很多,例如,搜索引擎需要根基用户数据的关键字进行全文查找,电子商务网站需要根据用户的查询条件,在可能需要在商品的详细介绍中进行查找,这些都不是B+树索引能很好完成的工作。 通过数值比较,范围过滤等就可以完成绝大多数我们需要的查询了。但是,如果希望通过关键字的匹配来进行查询过滤,那么就需要基于相似度的查询,而不是原来的精确数值比较,全文索引就是为这种场景设计的。
25671 0
阿里云云原生一体化数仓正式发布  助力企业数据驱动业务创新
云原生一体化数仓是集阿里云大数据产品MaxCompute、DataWorks、Hologres三种产品能力于一体的一站式大数据处理平台。核心是3个一体化和全链路数据治理能力,包括离线实时一体、湖仓一体、分析服务一体、全链路数据治理。
1614 0
全面公测|Grafana服务:一张图表胜过千行指标&日志
Grafana 帮助运维人员轻松处理各类运维过程中遇到的各类数据可视化与分析难题。目前阿里云 Grafana 服务全面免费公测,帮助企业轻松构建运维数据可视化平台,轻松实现数据驱动运维!
1163 0
一起学Golang系列(五)初次接触Go语言可能遇到的各种坑!
前面介绍了Go语言的基础语法,所谓磨刀不误砍柴工,希望大家还是能熟悉掌握这些基础知识,这样后面真正学起Go来才会得心应手。 作为初学者。Go语言的语法有些和java类似,但也有很多不一样的地方。刚开始都会遇到各种各样的坑。下面就来总结下学习go语言的过程中,遇到的各种坑。
1035 0
设备接入--海康摄像头SDK
springboot-对接海康摄像头,兼容window和Linux环境
1350 0
Flink SQL 在快手的扩展和实践
快手实时计算团队技术专家张静、张芒在 FFA 2021 的分享
1152 0
无影云桌面,企业与个人的应用神器
阿里云无影云桌面( Elastic Desktop Service)的原产品名为弹性云桌面,融合了无影产品技术后更名升级。它可以为您提供易用、安全、高效的云上桌面服务,帮助您快速构建、高效管理桌面办公环境,提供安全、灵活的办公体系。
276299 0
+关注
推荐码发放
阿里云优惠码阿里云推荐券bieryun.com
381
文章
5
问答
文章排行榜
最热
最新
相关电子书
更多
低代码开发师(初级)实战教程
立即下载
阿里巴巴DevOps 最佳实践手册
立即下载
冬季实战营第三期:MySQL数据库进阶实战
立即下载