我们于2021/08/02 的学习目标是:MyBatis与HTML,核心任务为:
1、学习技术:
1)、MyBatis的动态SQL
2)、映射机制
3)、MyBatis总结
4)、HTML
2、文档总结
1)、MyBatis的动态SQL
动态SQL:方便不同条件的SQL查询
标签:if choose(when,otherwise) trim(where,set) foreach
对于不定项查询的接口
List<Dept>queryDept(Integer deptno,String dname);
有:
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<!--
测试动态ssql
自动映射机制: auto_mapping
数据库中表的字段名-> javabean类的同名属性
列明与属性名不一致
情况:
1.为字段在sql语句中别名 -> auto_mapping
2.手动映射机制 resultMap
-->
<mapper namespace="com.yjxxt.mapper.DeptMapper">
<sql id="sql01">
deptno,dname,loc
</sql>
<!--映射机制: 手动映射-->
<resultMap id="resultMap01" type="dept">
<!--制定主键字段的映射-->
<id column="deptno" property="no"/>
<!--制定非主键字段的映射-->
<!--<result column="dname" property="dname"></result>
<result column="loc" property="loc"></result>-->
</resultMap>
<!--查询部门的部门信息-->
<select id="queryDept" resultType="dept">
select <include refid="sql01"></include> from dept
/* */
<where>
<if test="deptno!=null and deptno!=0">
and deptno = #{deptno}
</if>
<if test="dname!=null and dname!=''">
and dname = #{dname}
</if>
</where>
</select>
<select id="queryDeptDpetnoDname" resultType="dept">
select <include refid="sql01"></include> from dept
<trim prefix="where" prefixOverrides="and">
<choose> <!--switch-->
<when test="deptno != null and deptno != 0"> <!--case-->
and deptno = #{deptno}
</when>
<when test="dname != null and dname != ''">
and dname = #{dname}
</when>
<otherwise> and 1=1 </otherwise> <!--default-->
</choose>
</trim>
</select>
<select id="queryDeptByName" resultMap="resultMap01">
select * from dept
<where>
<if test="dname!=null and dname!=''">
<bind name="dname" value="'%'+dname+'%'"/>
dname like #{dname}
</if>
</where>
</select>
</mapper>
where标签对的作用:
1.内部有满足条件的字句拼接,提供一个where关键字
2.如果不满足条件就不提供
3.把第一条件开始位置的and去掉
2)、映射机制
列名与属性名不一致时:
1.设置别名 --> automapping
2.手动设置映射 --> resultMap
<!--制定主键字段映射-->
<id column = "deptno" property = "no"/>
<!--制定非主键字段映射-->
<result column = "dname" property = "dname"/>
当属性为自定义Javabean,通过association建立关系
当属性为集合类型,通过collection建立关系
3)、MyBatis总结
第一个框架:持久层ORM框架
环境搭建
导入jar包
核心配置文件
SQL映射文件
测试类
入参类型parametertype:
基本数据类型|包装类
String
Date
Javabean
数组
List
Map
resultType结果类型:
基本数据类型|包装类
String
Date
Javabean
List
Map
基础Session提供的三种查询方法:
selectOne()
selectList()
selectMap()
MyBatis实现基础CRID
1.使用对应的insert,delete,update标签定义SQL
2.session提供的insert,update,delete方法
配置文件定义数据库的连接信息
<properties resource = "db.properties"/>
<dataSource type = "POOLED">
<property name = "driver" value = "${driver}/>
<property name = "url" value = "${url}/>
<property name = "username" value = "${username}/>
<property name = "password" value = "${password}/>
</dataSource>
设置别名(AutoMapping)
Java的事务:默认手动提交,openSession(true)设置自动提交
接口绑定方案:
提供与接口绑定的SQL映射文件,为抽象方法提供要执行的SQL语句
要求:
接口与SQL映射文件同包,同名
SQL映射文件的命名空间为接口的包名.接口名
接口的抽象方法名与SQL标签的ID一致
参数类型与返回值要求与SQL的入参与返回值保持一致
@Param
给参数命名,将参数正确传入SQL语句中
接口绑定方案实现基本CRUID,批量操作
动态SQL:
if
choose
where
set
trim
foreach
bind
sql
功能强大,使SQL可以应对不同的需求,非常灵活
resultMap:处理列名与属性名不一致的问题
1.SQL语句中的字段设置别名
2.通过resultMap手动制定映射关系,默认自动映射表与类、字段与属性。
ID:主键字段与属性的映射
result:非主键字段与属性的映射
当属性是自定义的Javabean类型时:
association标签:id主键字段与属性的映射,result非主键字段与属性的映射。’
当属性是集合类型时:
collection标签:id主键字段与属性的映射,result非主键字段与属性的映射。
4)、HTML
HTML:超文本标记语言
标记语言注释:
<!—注释内容-->
html文件的版本声明
<!DOCTYPE html>
一个html页面必须在首行存在版本声明
<meta charset="UTF-8"/>
告诉浏览器编码格式
保证一个文件的编码与解码格式统一,不出现乱码
html标签的分类
单标签|自闭和标签:开始标签的最后结束
双标签|闭合标签:分开始标签和结束标签
<title></title>
标签可以添加属性:开始标签空格加属性
属性名=属性值
标签可以嵌套,父标签嵌套子标签
标签的分类:
元素:标签+内容
行内元素:可以和其他元素同行显示
块元素:前后换行,独占一行
常用标签:
<head>页面的头部设置 --> 给浏览器设置信息
<body>定义给用户看的内容
<title>标题标签,用户能看到,SEO,作为书签名,必须存在
bgcolor:背景颜色
颜色的设置:
英文颜色单词
六位十六进制表示的颜色,前面加#
rgb(0~255,0~255,0~255)
background:背景图片
p标签:段落标签,起语义化作用。
上下存在一块外边距(CSS),浏览器默认提供
前后换行
a标签:超链接标签,点击可以跳转
href:必填,定义跳转地址
显示特点:存在下划线,蓝色为未点击,紫色为已点击。
title:当鼠标悬停在超链接标签时显示的内容
target:打开方式。_self为原页面打开,_blank为新页面打开