2021/08/02笔记

我们于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为新页面打开

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值