学习day24

学习的内容:
	jsp实战,查、删、增、改。


	###查:
     <%
	//1创建DBHelper对象
        DBHelper hp = new DBHelper();
        //创一个 返回上下文路径
        String pa = request.getContextPath();
        //2拼写sql
        String sql = "select * from student";
        //3执行方法,手抓异常
        try {
            ResultSet rs = hp.executeQuery(sql);
            //4、显示结果
            while(rs.next()){
                //把id提出来更直观
                String id = rs.getString("studentid");
                out.print("<tr align=\"center\">");
                out.print("<td>"+id+"</td>");
                out.print("<td>"+rs.getString("studentname")+"</td>");
                out.print("<td>"+rs.getInt("studentage")+"</td>");
                out.print("<td>"+rs.getString("studentaddress")+"</td>");
                //因为在jsp界面下,java代码需要" '引起来
                out.print("<td><a href='"+pa+"/do/dodelete.jsp?id="+id+"'>删chu</a></td>");
                out.print("<td><a href='"+pa+"/update.jsp?id="+id+"'>xiu改</a></td>");
                out.print("</tr>");
                out.flush();
            }


        }catch (SQLException e){
            e.printStackTrace();
        }finally {
            //关闭资源
            hp.close();
        }
     %>


	###删:创一个dodelete.jsp文件专门来执行删除操作。


  <%
    //接受请求参数
    String id = request.getParameter("id");
    String pa = request.getContextPath();
    String message = "";
//    out.print(id);


    //创建 DB对象
    DBHelper helper = new DBHelper();
    //拼写sql语句
    String sql1 = "delete from student where studentid=?";
    //执行 sql
    int i = helper.executeUpdate(sql1,id);
    if (i>0){
        message = "success!要节制啊!!";
    }else{
        message = "fales!!找找问题吧。";
    }
    //返回结果
    request.setAttribute("message",message);
    //跳转 请求跳转
    request.getRequestDispatcher("/index.jsp").forward(request,response);
%>


	###增:需要新建一个增加属性元素的界面add.jsp和一个执行的doadd.jsp


	增加元素的界面功能是
	<%--${pageContext.request.contextPath}--%>
<form action="do/doadd.jsp" method="post">
    <%--下面的name 需要和doadd的getParameter的值对应--%>
    学号:<input type="text" name="stid" value="2018041200"><br>
    姓名:<input type="text" name="stn" placeholder="如“张三”、“王五”"><br>
    年龄:<input type="text" name="sta" placeholder="int类型的"><br>
    性别:<input type="text" name="stsex" value="男"><br>
    地址:<input type="text" name="stadd" value="湖北"><br>
    班级:<select name="cid">
    <%
        //1.创建DBH对象
        DBHelper hp = new DBHelper();
        //2.拼写sql
        String sql = "select * from class";
        //3.执行sql
        ResultSet rs = hp.executeQuery(sql);
        //4.显示结果
        while(rs.next()){
            //分开写可以更容易看 但是代码多
            out.print("<option value='"+rs.getInt("classid"));
            out.print("'>");
            out.print(rs.getString("classname"));
            out.print("</option>");
            //可以直接写
//          out.print("<option value='"+rs.getInt("classid")+"'>"+rs.getString("classname")+"</option>");
        }
        //5.guan资源
        hp.close();
    %>


</select>
    <input type="submit" value="添加">
</form>


	doadd.jsp的功能是执行添加操作
<%
    //1.设置字符编码
    request.setCharacterEncoding("utf-8");
    response.setCharacterEncoding("utf-8");
    //为跳转 定义一个message
    String message = "";
    //2.huoqu请求参数 6个
    String sI = request.getParameter("stid");
    String sN = request.getParameter("stn");
    String sA = request.getParameter("sta");
    String sG = request.getParameter("stsex");
    String sAdd = request.getParameter("stadd");
    String classId = request.getParameter("cid");
    //3.创建DBH
    DBHelper hp = new DBHelper();
    //4.pinxie语句 一定要填完6个
    String sql = "insert into student values(?,?,?,?,?,?)";
    //5.执行(备注不能用感叹号...)
    //创建一个object数组 花括号中的数要按顺序写
    Object [] ob = new Object[]{sI,sN,sA,sG,sAdd,classId};
    int i = hp.executeUpdate(sql,ob);
    hp.close();
    //6.跳转界面
    if (i>0){
        message="找找看,加了哪一个";
    }else{
        message="没添加,即添加失败";
    }
    //用session来包装message
    session.setAttribute("message",message);
    //避免表单重复提交 利用重定向
//    String w = request.getContextPath();
//    out.print(w);
    response.sendRedirect(request.getContextPath()+"/index.jsp");
%>
	
	###改:和增加的功能相似,需要显示和传递参数
	
	<%
    //1.设置字符编码和定义数组
    request.setCharacterEncoding("utf-8");
    response.setCharacterEncoding("utf-8");
    //即使是int也可以用string来使用
    String sn = "";
    String si = "";
    String sa = "";
    String sg = "";
    String sadd = "";
    String cid = "";
    //2.接收 请求参数
    String id = request.getParameter("id");
    //DBH
    DBHelper HP = new DBHelper();


    String sql = "select * from student where studentid=?";


    ResultSet rs = HP.executeQuery(sql,id);


    while(rs.next()){
        //getString里面的是数据库中的属性名
        sn = rs.getString("studentname");
        sa=rs.getString("studentage");
        sg=rs.getString("studentsex");
        si =rs.getString("studentid");
        sadd = rs.getString("studentaddress");
        cid = rs.getString("classid");
    }
%>
<form action="${pageContext.request.contextPath}/do/doupdate.jsp" method="post">
    学号:<input type="text" name="sid" value="<%=si%>" readonly="readonly"><br>
    姓名:<input type="text" name="sname" value="<%=sn%>" ><br>
    年龄:<input type="text" name="sage" value="<%=sa%>" ><br>
    性别:<input type="text" name="sgender" value="<%=sg%>" ><br>
    地址:<input type="text" name="saddress" value="<%=sadd%>" ><br>
    班级:<select name="clid">
    <%
        //写语句
        String sql1 = "select * from class";
        //执行语句
        ResultSet rs1 = HP.executeQuery(sql1);
        //显示
        while(rs1.next()){
            if (cid.equals(rs1.getString("classid"))){
                out.print("<option selected value='"+rs1.getInt("classid")+"'>"+rs1.getString("classname")+"</option>");


            }else{
                out.print("<option value='"+rs1.getInt("classid")+"'>"+rs1.getString("classname")+"</option>");
            }
        }
//        while (rs1.next()){
//            if(cid.equals(rs1.getString("classid"))){
//                out.print("<option selected value='"+rs1.getInt("classid")+"'>");
//                out.print(rs1.getString("classname"));
//                out.print("</option>");
//            }else{
//                out.print("<option value='"+rs1.getInt("classid")+"'>");
//                out.print(rs1.getString("classname"));
//                out.print("</option>");
//            }
                out.print("<option value='"+rs.getInt("classid")+"'>"+rs.getString("classname")+"</option>");
//        }
        //关闭资源
            HP.close();


    %>
</select>


    <input type="submit" value="确认修改">


	doupdate.jsp的功能获取update.jsp的对应的name值
<%
    //1.设置字符编码
    request.setCharacterEncoding("utf-8");
    response.setCharacterEncoding("utf-8");
    String message = "";
    //2.获取六个请求参数 括号里面的是update也面中的input框和select选项中的name值
    String si = request.getParameter("sid");
    String sn = request.getParameter("sname");
    String sa = request.getParameter("sage");
    String sg = request.getParameter("sgender");
    String sad = request.getParameter("saddress");
    String ci = request.getParameter("clid");
    //3、DBH
    DBHelper helper = new DBHelper();
    //4、sql studentid在后面 就不用设置了
    String sql = "update student set studentname=?,studentage=?,studentsex=?,studentaddress=?,classid=? where studentid= ?";
    //5、执行sql 利用obj数组 赋的值和语句对应
    Object [] obj = new Object[]{sn,sa,sg,sad,ci,si};
    int i = helper.executeUpdate(sql,obj);
    //6 判断 并 跳转页面
    if (i>0){
        message="Nice!修改成功了";
    }else{
        message="oh my god~修改了个屁";
    }


    //封装message
    session.setAttribute("message",message);
    //重定向 避免表单重复 url不改变导致报错
    response.sendRedirect(request.getContextPath()+"/index.jsp");
%>






学习的问题:
	很充实的一天,都运行出来了,渐渐有了信心。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
以下是一个八字排盘的 Python 代码示例: ```python from LunarSolarConverter.LunarSolarConverter import LunarSolarConverter def get_bazi(birthday, birthtime): """ 根据生日和出生时间计算八字 :param birthday: 生日,格式为"YYYY-MM-DD" :param birthtime: 出生时间,格式为"HH:MM" :return: 八字字符串 """ # 将阳历转换为阴历 lunar = LunarSolarConverter().SolarToLunar(int(birthday[0:4]), int(birthday[5:7]), int(birthday[8:10])) lunar_month = lunar.lunarMonth # 阴历月份 lunar_day = lunar.lunarDay # 阴历日份 # 计算时辰 hour = int(birthtime.split(":")[0]) if hour >= 23: zhi_hour = "子" else: zhi_hour = "子丑寅卯辰巳午未申酉戌亥"[hour // 2] if hour % 2 == 0: zhi_hour += "初" else: zhi_hour += "正" # 计算年干支 gan_year = "甲乙丙丁戊己庚辛壬癸"[(int(birthday[0:4])-1900)%10] zhi_year = "子丑寅卯辰巳午未申酉戌亥"[(int(birthday[0:4])-1900)%12] # 计算月干支 jieqi = ['小寒', '大寒', '立春', '雨水', '惊蛰', '春分', '清明', '谷雨', '立夏', '小满', '芒种', '夏至', '小暑', '大暑', '立秋', '处暑', '白露', '秋分', '寒露', '霜降', '立冬', '小雪', '大雪', '冬至'] jieqi_date = [ [6, 6, 6, 5, 5, 4, 4, 4, 5, 6, 6, 7, 7, 8, 8, 8, 9, 9, 9, 10, 10, 11, 11, 11], [20, 21, 21, 19, 20, 19, 20, 20, 21, 22, 22, 22, 23, 23, 24, 24, 24, 24, 25, 26, 26, 27, 27, 27] ] if lunar_month <= 2 or lunar_month == 12: year_index = (int(birthday[0:4])-1900) % 12 else: year_index = (int(birthday[0:4])-1899) % 12 index = jieqi.index(jieqi[year_index*2]) if lunar_month == 1: index -= 1 if lunar_day < jieqi_date[1][index]: month_gan_index = (int(birthday[0:4])-1900+24) % 60 // 2 else: month_gan_index = (int(birthday[0:4])-1900+36) % 60 // 2 gan_month = "甲乙丙丁戊己庚辛壬癸"[(month_gan_index % 10)] zhi_month = "子丑寅卯辰巳午未申酉戌亥"[(lunar_month-1) % 12] # 计算日干支 gan_day = "甲乙丙丁戊己庚辛壬癸"[(int(birthday[8:10])%10+9)%10] zhi_day = "子丑寅卯辰巳午未申酉戌亥"[(lunar_month-1) % 12] day_offset = (int(birthday[5:7]) - 1) * 31 + int(birthday[8:10]) zhi_day_offset = (day_offset + 9) % 12 gan_day_offset = (day_offset // 2 + 5) % 10 gan_day = "甲乙丙丁戊己庚辛壬癸"[gan_day_offset] zhi_day = "子丑寅卯辰巳午未申酉戌亥"[zhi_day_offset] # 计算时干支 gan_hour = "甲乙丙丁戊己庚辛壬癸"[(int(birthday[11:13])%10+1)%10] zhi = "子丑寅卯辰巳午未申酉戌亥" index_hour = zhi.find(zhi_hour[0]) if zhi_hour[1] == "初": gan_hour_offset = index_hour * 2 elif zhi_hour[1] == "正": gan_hour_offset = index_hour * 2 + 1 else: gan_hour_offset = index_hour * 2 + 2 gan_hour = "甲乙丙丁戊己庚辛壬癸"[gan_hour_offset % 10] zhi_hour_offset = (int((hour+1)/2) + 1) % 12 zhi_hour = "子丑寅卯辰巳午未申酉戌亥"[zhi_hour_offset] # 拼接八字字符串 bazi = gan_year + zhi_year + gan_month + zhi_month + gan_day + zhi_day + gan_hour + zhi_hour return bazi ``` 此代码需要依赖 `LunarSolarConverter` 库,因此需要先安装该库。安装方法: ```bash pip install LunarSolarConverter ``` 在运行时,调用 `get_bazi` 方法即可得到八字字符串。例如: ```python bazi = get_bazi("1990-01-01", "12:00") print(bazi) # 输出:庚午年丙子月戊子日甲子时 ```

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值