不想做开发的运维不是好渗透测试--走进Javaweb(mybatis)

g1870412862   ·   发表于 2020-12-09 00:13:48   ·   技术文章

什么是Mybatis

  1. MyBatis 是一款持久层框架,它支持定制化 SQL、存储过程以及高级映射。MyBatis 避免了几乎所有的 JDBC 代码和手动设置参数以及获取结果集。MyBatis 可以使用简单的 XML 或注解来配置和映射原生信息,将接口和 Java POJOs(实体类)映射成数据库中的记录

为什么要用mybatis

  1. 传统的JDBC过于繁琐,需要加载驱动,创建连接,操作数据库之后还需要释放资源,耦合度太高,可以使用mybatis来解耦,使程序员的精力只放在sql语句上。
  2. 解除sql与程序代码的耦合:通过提供DAO层,将业务逻辑和数据访问逻辑分离,使系统的设计更清晰,更易维护,更易单元测试。sql和代码的分离,提高了可维护性。
  3. 提供映射标签,支持对象与数据库的orm字段关系映射
  4. 提供对象关系映射标签,支持对象关系组建维护
  5. 提供xml标签,支持编写动态sql

小白看这里:

对于一个小白拿到一个java项目,第一反应是:这都是些啥啊。

  1. dao方法中先去定义一个接口(书写所有的dao方法),这样是为了使代码更加清晰,逻辑层次更加明了,代码的可读性也大大提高。
  2. Servlet只负责接受请求和返回响应
  3. Service把业务逻辑都放到service中去实现;(先定义一个接口,然后去实现这个接口的实现类)

MVC模式

  1. Model(模型) - 模型代表一个存取数据的对象或 JAVA POJO。它也可以带有逻辑,在数据变化时更新控制器。
  2. View(视图) - 视图代表模型包含的数据的可视化。
  3. Controller(控制器) - 控制器作用于模型和视图上。它控制数据流向模型对象,并在数据变化时更新视图。它使视图与模型分离开。

23种设计模式如果对开发感兴趣的可以研究一下,推荐一本书是《head first设计模式》,毕竟搞安全的只要能看懂代码就行了。

回到mybatis

mybatis的demo项目:与其看理论,不如自己写一个demo感受一下过程学的快。

准备工作:编译器使用的是idea,jdk是1.8,创建的maven项目
1.首先写SqlMapConfig.xml也就是mybatis的配置文件,命名可以用其他的

然后创建pojo实体类

创建Dao接口,这里使用的是注解方法还可以用select标签配合xml写

完成这些就可以写测试类了

依次是读取配置文件,创建会话工厂,使用工厂创建会话,然后执行方法最后释放资源,这里使用的是工厂模式和代理模式的设计模式。

到此我们完成了mybatis demo的创建,感受到了Java项目中与数据库交互部分的代码是程序员如何写出来的。

#{}和${}

  1. #{}是预编译处理,${}是字符串替换。mybatis在处理#{}时,会将sql中的#{}替换为?号,调用PreparedStatement的set方法来赋值;mybatis在处理${}时,就是把${}替换成变量的值。使用#{}可以有效的防止SQL注入,提高系统安全性。
用户名金币积分时间理由
veek 30.00 0 2020-12-09 10:10:58 期待更多干货~

打赏我,让我更有动力~

0 条回复   |  直到 2020-12-9 | 940 次浏览
登录后才可发表内容
返回顶部 投诉反馈

© 2016 - 2024 掌控者 All Rights Reserved.