写在前面
之前想要做这个东西,但是由于种种原因,去做了 django。今天我们要开始 Java Spring 框架的学习
相关技术
- MySql
- 表设计
- SQL 技巧
- 事务和行级锁
这个不知道是什么东西
- MyBatis
- DAO 层设计与开发
- MyBatis合理使用
- MyBatis 和 Spring 整合
- Spring
- Spring IOC整合 Service
这里是说依赖注入 - 声明式事务运用
- SpringMVC
- Restful 接口设计和使用
- 框架运作流程
- Controller 开发技巧
- 前端
- 交互设计
- Bootstrap
- jQuery
插件、ajax等等
- 高并发
- 高并发分析
- 优化思路和实现
2-2 创建项目和依赖
基于 Maven 创建项目
这里不要用命令行做,直接用 idea 来创建maveb项目就行了。一路next,然后 groupId 和 artifactId 按照他给的输入就行。
4-1 数据库设计与编码
这里的数据库设计与编码,就是跟我们 django 中 Models 的设计是一样的。不过在 java 后台中,没有类似对应的可以直接操作数据库的模块,需要我们手动写入数据库。所以才说为什么 SQL 语言或者说 数据库相关知识很重要。
这个教学中,我们在 main 目录下新建了一个 sql 目录,用于存放数据库表单相关的配置情况(数据库初始化脚本),这里命名为 schema.sql
最终呢,需要手动到 mysql 中将这些命令执行,从而创建相关的表单和字段。
4-2 DAO 实体和接口编码
创建实体 entity
对应上一步创建的2个表单,这里需要创建两个实体(entity)类,其中类对应一个表单,类中的成员对应一个字段,同时在类中写入成员的 get & set 方法(快捷键 alt+insert)。
dao实体 实体类内部定义
创建dao接口
dao接口这里都是 interface 并不是 class,因为没有涉及具体实现。
4-3 基于 myBatis实现 DAO 理论
MyBatis 用来做什么
实际上,MyBatis就是在做映射关系,将数据库和我们上一步创建的实体对象二者联系起来。
MyBatis映射数据库和entity
MyBatis 特点
特点就是需要参数 和 SQL 语言,来最终实现对DAO层实体接口的实现。
MyBatis特点
MyBatis怎么用
- SQL 写在哪里
这里我们使用 XML 提供 SQL - 如何实现 DAO接口
这里我们使用 Mapper 自动实现DAO接口。就是说我们的DAO只需要写接口,不用写具体的实现类。只需要告诉 MyBatis 参数的类型,返回的类型等等。
4-4 基于 MyBatis 实现 DAO 编程
MyBatis配置
首先配置 MyBatis mybatis-config.xml,再创建一个 mapper目录用于存放 sql 的映射。都放在 Resource 下
MyBatis配置和mapper
这里有很多配置,包括驼峰命名转换,表的列明转换等等。
MyBatis配置
Mapper中映射的实现
在Mapper目录下,对应前面创建的两个 DAO 接口,这里创建两个mapper的 xml(前面说过这里通过 xml来提供 sql语句)。
mapper中映射的实现
4-6 MyBatis整合 Spring 理论
整合目标
-
更少的编码
只写接口,不写实现。
接口能说明很多事 -
更少的配置
1.别名:MyBatis可以自动扫描,不用写包名,自动可以扫描到我们写的类名
2.配置扫描:自动扫描配置文件。就是这里 dao 对应的sql文件有很多,但是我们并不需要维持一个配置文件。
3.dao实现:自动实现 DAO 接口,自动注入Spring 容器 -
足够灵活性
可以自由传递参数,自由编写 sql
4-7 MyBatis整合 Spring 编码
Spring 配置
在 Resources 目录下,创建 Spring目录,用于存放 spring 的相关配置。首先,新建一个 spring-dao.xml,用于指定dao层的 spring 配置。在这里,具体要配置的有
- 数据库相关参数
- 数据库的连接池
- SQLSessionFactory对象
- 扫描dao接口包
4-8 DAO层单元测试编码和问题排查
这些测试代码写在test目录下。
我们在 dao层的接口代码中,右键 goto test ,来创建 junit4 的测试代码。idea就会自动在对应的包和目录下创建相关的 test 代码。
配置 Spring 和 junit 整合
整合是为了让 junit 启动时,加载 springIOC 容器。
需要 @RunWith() 接口来加载spring 容器
同时告诉 junit spring的配置文件
配置 Spring 和 junit 整合
注入依赖
test注入 Dao依赖其实就好像是给一个 Dao 对象而已。
测试代码
之后就是开始编写测试代码了。
具体测试代码
通过就说明我们之前做的所有的关于 DAO 层的工作完成了。
网友评论