SSM(Spring+SpringMVC+MyBatis)框架学习心路历程【二】
来源:互联网 发布:腾讯所有软件 编辑:程序博客网 时间:2024/05/14 04:00
这是第二次写框架的项目,上一次已经是几个月之前了,为了加深记忆且方便回顾,特整理出思路,以供大家,尤其是我本人参考。
这次,是工作室的寒假任务,我负责我们项目的建表,实体类,xml,mapper,service,serviceImpl的编写。
第一,确定写项目顺序
1、建表
2、实体类
3、xml
4、mapper
5、service
6、serviceImpl
先给大家简单看看项目结构
1、建表
首先,确定建表的对象是实体SchoolRoll【学籍】,根据原型,确定都有哪些字段。
在这里,我借鉴了项目之前的StudentInformation.java实体类,一些字段的命名。
根据红色字来确定是否允许空值。
长度是个问题,还没想好如何确定?
2、实体类
在这里介绍下,用到的spring的几个注解。
@Entity 标注该类为实体类@Id 标注id,主键@Column(name = "数据库中字段名") 重命名@Transient 不跟数据库中的字段映射,进一步解释说明某一字段
作用:定义数据库中的所有字段,写出对应get,set,toString方法。
3、xml
通过parameterType指定输入参数的类型。
类型可以是简单类型,pojo,包装类型,hashmap。
ResultType,输出为简单类型
输出简单类型时,必须查询出来的结果集有一条记录,最终将第一个字段的值转换为输出类型。使用session中的selectOne可进行查询单条记录。
ResultType,输出为pojo类型
输出pojo对象和输出pojo列表在sql中定义的resultType是一样的。
返回单个pojo对象要保证sql查询出来的结果集为单条,内部使用session.selectOne方法调用,mapper接口使用pojo对象作为方法返回值。
返回pojo列表表示查询出来的结果集可能为多条,内部使用session.selectList方法,mapper接口使用List对象作为方法返回值。
resultMap
ResultType可以指定pojo,将查询结果映射成pojo的属性。但是要求数据库列名与pojo属性名必须相同,才能映射成功。
如过查询的字段名与pojo的属性名不同,则通过resultMap,将字段名和属性名做一个映射,resultMap实质上,还是将数据库字段映射到pojo中。
resultMap可以实现将查询结果映射为复杂类型的pojo。如:在查询结果映射对象中,包括pojo和list实现一对一和一对多的查询。
#{}实现向prepareStatement中的预处理语句中设置参数值,sql语句中#{}表示一个占位符。使用占位符可以防止sql的注入,在使用时不需要关心参数的类型,mybatis会自动的进行Java与jdbc的转换。#{} 可以接受简单类型和pojo的属性值。如果parameterType中指定的是单个的简单类型,#{}中可以使用value或是其他值。#{}与${}的不同: 通过${}可以将parameterType传入的内容拼接在sql中,并且不进行jdbc类型转换,${}可以接受简单类型和pojo的属性值,若parameterType为单个简单类型时,${}中必须使用value。使用${}不能防止sql注入,但有时会很方便
问题一:
SQL数据库中SELECT AS中的AS代表的是重命名列名或者表名。
其用法是
SELECT 列名1 AS 列1,列名2 AS 列1 FROM 表1
语句表示的意思是从表1中读取列名1和列名2的数据,并且为列名1和列名2分别重命名为列1和列2.
问题二:
order by ts.id desc
desc是降序,asc是升序
问题三
(SELECT sex_id FROM t_sex_code WHERE sex = #{sex})和#{sex_id}的区别
之前,参考项目中的student.mapper.xml的写法【第一种】,写了好多,虽然方法什么的,都可以跑通,但是经过讨论,这种写法没必要,因为jsp页面,只有是有连接附表的部分,肯定有下拉框
<label>专业</label> <select class="textTheme" autocomplete="off" name="majorId"> <option value="">请选择</option> <c:forEach var = "item" items="${majors}"> <option value="${item.majorId}">${item.majorName}</option> </c:forEach> </select>
所以,没有必要再去用第一种办法。
4、mapper
这里的方法和xml中的id要完全相同
5、service
这个依旧和mapper中方法名相同
6、serviceImpl
切记,要继承service。
@Service 标注service@Autowired 自动装配成java bean
- SSM(Spring+SpringMVC+MyBatis)框架学习心路历程【二】
- SSM(Spring+SpringMVC+MyBatis)框架学习心路历程【一】
- ssm框架学习---详细整合教程(Spring+SpringMVC+MyBatis)
- 学习日记:java SSM框架(Spring+SpringMVC+MyBatis)
- SSM框架(Spring SpringMvc Mybatis)流程
- SSM框架搭建(Spring+SpringMVC+MyBatis)
- SSM框架整合(Spring+SpringMVC+MyBatis)
- SSM框架(springmvc+spring+mybatis)整合
- SSM框架整合(Spring+SpringMVC+Mybatis)
- SSM框架整合(Spring+SpringMVC+MyBatis)
- SSM框架(Spring+SpringMVC +Mybatis)
- SSM框架整合(Spring+SpringMVC+MyBatis)
- SSM框架搭建(SpringMVC+Spring+Mybatis)
- SSM框架:SpringMVC + Spring + MyBatis
- SSM框架(二)--Spring、SpringMVC和MyBatis整合(详细教程)
- Java Web学习总结(24)——SSM(Spring+SpringMVC+MyBatis)框架快速整合入门教程
- Maven学习笔记(五)-Maven整合SSM(spring+springMVC+Mybatis)框架
- SSM(springMVC+spring+MyBatis)
- Java获取客户端IP
- 【积分赛一】L/QAQ and twin lock
- 数字排序
- Oracle JVM加载类时出现的一个异常退出问题
- 交互式输入行编辑收录
- SSM(Spring+SpringMVC+MyBatis)框架学习心路历程【二】
- 《合成孔径雷达成像——算法与实现》之【15】仿真图7.3
- 讲FastReport.net封装为ActiveX供BS调用
- linux下条件变量的实验研究
- ab测试,四种问题解决方法:编译安装
- Java获取客户端真实IP地址的两种方法
- 根据包名,在指定空间中创建对象
- 简单实现activity限时两次点击物理返回键退出
- 啊啊啊,我的处女面就这样给了阿里