MyBatis 是一款持久层框架,它支持定制化 SQL、存储过程以及高级映射。MyBatis 避免了几乎所有的 JDBC 代码和手动设置参数以及获取结果集。MyBatis 可以使用简单的 XML 或注解来配置和映射原生信息,将接口和 Java 的 POJOs(实体类)映射成数据库中的记录
传统的JDBC过于繁琐,需要加载驱动,创建连接,操作数据库之后还需要释放资源,耦合度太高,可以使用mybatis来解耦,使程序员的精力只放在sql语句上。
解除sql与程序代码的耦合:通过提供DAO层,将业务逻辑和数据访问逻辑分离,使系统的设计更清晰,更易维护,更易单元测试。sql和代码的分离,提高了可维护性。
提供映射标签,支持对象与数据库的orm字段关系映射
提供对象关系映射标签,支持对象关系组建维护
提供xml标签,支持编写动态sql。
对于一个小白拿到一个java项目,第一反应是:这都是些啥啊。
dao方法中先去定义一个接口(书写所有的dao方法),这样是为了使代码更加清晰,逻辑层次更加明了,代码的可读性也大大提高。
Servlet只负责接受请求和返回响应
Service把业务逻辑都放到service中去实现;(先定义一个接口,然后去实现这个接口的实现类)
MVC模式
Model(模型) - 模型代表一个存取数据的对象或 JAVA POJO。它也可以带有逻辑,在数据变化时更新控制器。
View(视图) - 视图代表模型包含的数据的可视化。
Controller(控制器) - 控制器作用于模型和视图上。它控制数据流向模型对象,并在数据变化时更新视图。它使视图与模型分离开。
23种设计模式如果对开发感兴趣的可以研究一下,推荐一本书是《head first设计模式》,毕竟搞安全的只要能看懂代码就行了。
mybatis的demo项目:与其看理论,不如自己写一个demo感受一下过程学的快。
准备工作:编译器使用的是idea,jdk是1.8,创建的maven项目
1.首先写SqlMapConfig.xml也就是mybatis的配置文件,命名可以用其他的
然后创建pojo实体类
创建Dao接口,这里使用的是注解方法还可以用select标签配合xml写
完成这些就可以写测试类了
依次是读取配置文件,创建会话工厂,使用工厂创建会话,然后执行方法最后释放资源,这里使用的是工厂模式和代理模式的设计模式。
到此我们完成了mybatis demo的创建,感受到了Java项目中与数据库交互部分的代码是程序员如何写出来的。
#{}是预编译处理,${}是字符串替换。mybatis在处理#{}时,会将sql中的#{}替换为?号,调用PreparedStatement的set方法来赋值;mybatis在处理${}时,就是把${}替换成变量的值。使用#{}可以有效的防止SQL注入,提高系统安全性。
用户名 | 金币 | 积分 | 时间 | 理由 |
---|---|---|---|---|
veek | 30.00 | 0 | 2020-12-09 10:10:58 | 期待更多干货~ |
打赏我,让我更有动力~
© 2016 - 2024 掌控者 All Rights Reserved.