前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >回顾以前的代码经历

回顾以前的代码经历

作者头像
栖西
发布2023-10-17 08:21:48
1870
发布2023-10-17 08:21:48
举报
文章被收录于专栏:栖西栖西
1、Servlet模板模式的应用

MyServlet06.java

代码语言:javascript
复制
public class MyServlet06 extends HttpServlet {


    @Override
    protected void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        //获取url-path
        String path = request.getServletPath();
        if("/student/save.do".equals(path)){
            save(request,response);
        }else if("/student/update.do".equals(path)){
            update(request,response);
        }else if("/student/delete.do".equals(path)){
            delete(request,response);
        }else if("/student/select.do".equals(path)){
            select(request,response);
        }
    }

    public void save(HttpServletRequest request, HttpServletResponse response){
        System.out.println("执行了保存操作");
    }

    public void update(HttpServletRequest request, HttpServletResponse response){
        System.out.println("执行了修改操作");
    }

    public void delete(HttpServletRequest request, HttpServletResponse response){
        System.out.println("执行了删除操作");
    }

    public void select(HttpServletRequest request, HttpServletResponse response){
        System.out.println("执行了查询操作");
    }

}

web.xml

代码语言:javascript
复制
<servlet>
    <servlet-name>MyServlet06</servlet-name>
    <servlet-class>com.myfdc.servlet.MyServlet06</servlet-class>
</servlet>
<servlet-mapping>
    <servlet-name>MyServlet06</servlet-name>
    <url-pattern>/student/save.do</url-pattern>
    <url-pattern>/student/update.do</url-pattern>
    <url-pattern>/student/delete.do</url-pattern>
    <url-pattern>/student/select.do</url-pattern>
</servlet-mapping>

页面

代码语言:javascript
复制
<a href="student/save.do">添加操作</a><br/><br/>
<a href="student/update.do">修改操作</a><br/><br/>
<a href="student/delete.do">删除操作</a><br/><br/>
<a href="student/select.do">查询操作</a><br/><br/>
2、mybatis的动态SQL
代码语言:javascript
复制
元素					   作用					备注
if						 判断语句				单条件分支
choose(when、otherwise)	相当于 Java 中的 if else	多条件分支
trim(where、set)			辅助元素			用于处理 SQL 拼接问题
foreach					 循环语句	批量插入, 更新, 查询时经常用到
bind					 创建一个变量, 并绑定到上下文中	用于兼容不同的数据库, 防止 SQL 注入等

详细使用在我的这篇文章中,里面的案例仅为介绍动态SQL:mysql的使用以及mybatis中的SQL语句

3、常用封装实体类
代码语言:javascript
复制
PageResult
Result
StatusCode
代码语言:javascript
复制
/**
 * 分页结果类
 */
public class PageResult<T> {

    private Long total;//总记录数
    private List<T> rows;//记录

    public PageResult(Long total, List<T> rows) {
        this.total = total;
        this.rows = rows;
    }

    public PageResult() {
    }

    public Long getTotal() {
        return total;
    }

    public void setTotal(Long total) {
        this.total = total;
    }

    public List<T> getRows() {
        return rows;
    }

    public void setRows(List<T> rows) {
        this.rows = rows;
    }
}
代码语言:javascript
复制
public class Result<T> implements Serializable {
    private boolean flag;//是否成功
    private Integer code;//返回码
    private String message;//返回消息
    private T data;//返回数据

    public Result(boolean flag, Integer code, String message, Object data) {
        this.flag = flag;
        this.code = code;
        this.message = message;
        this.data = (T) data;
    }

    public Result(boolean flag, Integer code, String message) {
        this.flag = flag;
        this.code = code;
        this.message = message;
    }

    public Result() {
        this.flag = true;
        this.code = StatusCode.OK;
        this.message = "操作成功!";
    }

    public boolean isFlag() {
        return flag;
    }

    public void setFlag(boolean flag) {
        this.flag = flag;
    }

    public Integer getCode() {
        return code;
    }

    public void setCode(Integer code) {
        this.code = code;
    }

    public String getMessage() {
        return message;
    }

    public void setMessage(String message) {
        this.message = message;
    }

    public T getData() {
        return data;
    }

    public void setData(T data) {
        this.data = data;
    }
}
代码语言:javascript
复制
/**
 * 返回状态码
 */
public class StatusCode {
    public static final int OK = 20000;//成功
    public static final int ERROR = 20001;//失败
    public static final int LOGINERROR = 20002;//用户名或密码错误
    public static final int ACCESSERROR = 20003;//权限不足
    public static final int REMOTEERROR = 20004;//远程调用失败
    public static final int REPERROR = 20005;//重复操作
    public static final int NOTFOUNDERROR = 20006;//没有对应的抢购数据
}
4、模态框
代码语言:javascript
复制
<!DOCTYPE html>
<html lang="en" xmlns:th="http://www.thymeleaf.org">
<head>
    <meta charset="UTF-8">
    <title>测试模态框2</title>

<!--    模态框只用这三个-->
    <link rel="stylesheet" href="https://cdn.staticfile.org/twitter-bootstrap/3.3.7/css/bootstrap.min.css">
    <script src="https://cdn.staticfile.org/jquery/2.1.1/jquery.min.js"></script>
    <script src="https://cdn.staticfile.org/twitter-bootstrap/3.3.7/js/bootstrap.min.js"></script>
</head>
<body>

    <h1>使用js函数控制</h1>
    <h2>模态框(Modal)插件事件</h2>
    <!-- 按钮触发模态框 -->
    <button class="btn btn-primary btn-lg" data-toggle="modal" data-target="#myModal">
        新增
    </button>
    <!-- 模态框(Modal) -->
    <div class="modal fade" id="myModal" tabindex="-1" role="dialog" aria-labelledby="myModalLabel" aria-hidden="true">
        <div class="modal-dialog">
            <div class="modal-content">
                <div class="modal-header">
                    <button type="button" class="close" data-dismiss="modal" aria-hidden="true">×
                    </button>
                    <h4 class="modal-title" id="myModalLabel">
                       新增商家类型
                    </h4>
                </div>
                <div class="modal-body">
                    商家类型:
                    <input type="text" name="shopName" value="请输入……">
                </div>
                <div class="modal-footer">
                    <button type="button" class="btn btn-default" data-dismiss="modal">
                        关闭
                    </button>
                    <button type="button" class="btn btn-primary">
                        提交更改
                    </button>
                </div>
            </div><!-- /.modal-content -->
        </div><!-- /.modal-dialog -->
    </div><!-- /.modal -->


    <!-- 按钮触发模态框 -->
    <button class="btn btn-primary btn-lg" data-toggle="modal" data-target="#myModal1">
        修改
    </button>

<div class="modal fade" id="myModal1" tabindex="-1" role="dialog" aria-labelledby="myModalLabel1" aria-hidden="true">
    <div class="modal-dialog">
        <div class="modal-content">
            <div class="modal-header">
                <button type="button" class="close" data-dismiss="modal" aria-hidden="true">×
                </button>
                <h4 class="modal-title" id="myModalLabel1">
                    修改商家类型
                </h4>
            </div>
            <div class="modal-body">
                商家类型:
                <input type="text" name="shopName" value="请输入……">
            </div>
            <div class="modal-footer">
                <button type="button" class="btn btn-default" data-dismiss="modal">
                    关闭
                </button>
                <button type="button" class="btn btn-primary">
                    提交更改
                </button>
            </div>
        </div><!-- /.modal-content -->
    </div><!-- /.modal-dialog -->
</div><!-- /.modal -->


    <script>
        $(function () { $('#myModal').modal('hide')});

        // 和上面的一样 商家类型 新增
        // $("#myModal").modal('hide')

        // myModal1
        $(function () { $('#myModal1').modal('hide')});
    </script>

</body>
<script>

</script>
</html>
附录
1、包名设计
代码语言:javascript
复制
分层开发
	数据持久层dao:只做对数据库的操作,返回数据或结果  
	业务逻辑层service:主要做业务逻辑处理,不做任何数据库操作,只做业务逻辑处理
	控制层controller:接受和响应前端请求
	pojo(domain):实体类对应数据库的表
	entity:存放特殊用途的实体类,返回值实体类的封装,常量封装,枚举等
	dto:发送给前端的实体类
	vo:实体类,存放接受前端用户发送的实体类
2、springboot注解
代码语言:javascript
复制
注解其实就是通过spring容器创建对象
	@Autowired  :spring 提供  
		private UserService userService = new UserServiceImpl()
	@Resource :等同于@AUtowired jdk提供
	@Controller:声明控制器
	@RestController 标识当前类是Controller
			并且返回的数据类型都是 responseBody json对象
	@RequestMapping 标注该类或方法的URL访问路径
	@Service  标识该类是业务逻辑层,交给spring容器管理
	@SpringBooyApplication 启动类
	@MapperScan mybatis提供的dao层扫描接口(不写MapperScan的话在dao层写下面的俩个)
				@Mapper     标示该类是数据持久层
				@Repository

以上会满足日常开发,其他的注解比较零碎,根据情况选择是否使用
3、学习路线
代码语言:javascript
复制
先学java基础
mysql
JDBC(可以琢磨一下,也可跳过)
javaWeb(jsp和servlet了解原理即可,servlet为后续springmvc做铺垫,jsp为数据交互做铺垫)
springboot路线
	spring-----IOC
	mybatis----crud
	springMVC
	mybatisplus
	springboot
	springboot整合各种框架
	学习微服务
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2023-10-13,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1、Servlet模板模式的应用
  • 2、mybatis的动态SQL
  • 3、常用封装实体类
  • 4、模态框
  • 附录
    • 1、包名设计
      • 2、springboot注解
        • 3、学习路线
        相关产品与服务
        数据库
        云数据库为企业提供了完善的关系型数据库、非关系型数据库、分析型数据库和数据库生态工具。您可以通过产品选择和组合搭建,轻松实现高可靠、高可用性、高性能等数据库需求。云数据库服务也可大幅减少您的运维工作量,更专注于业务发展,让企业一站式享受数据上云及分布式架构的技术红利!
        领券
        问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档