MyBatis案例--环境准备

1、依据之前在Navicat建立数据表的方法,新建立一个数据表

2、将数据表的相关内容表现在Java文件的实例上:即成员变量和set、get成员方法

3、new一个测试Java文件的Test.Java文件

4、安装MyBatis插件

能够较为方便地查看SQL映射文件下的statement对应的核心配置文件地位置

查询操作

1、编写接口方法:定义一个名称为:(BrandMapper)的接口

同之前操作相同,同时需要new一个.xml文件,与接口同名

2、编写SQL依语句,执行方法:写一个测试用例

步骤

1、获取SqlSessionFactory对象

2、获取SqlSession对象

3、获取Mapper接口的代理对象

4、执行方法

5、释放资源

查询所有:select * from 表名;

若是实体类属性名和数据库表列名不一致,不能自动封装数据

1、起别名

2、resultMap

查询部分:

1、 select 相应列名(可以使用起类型别名的方法进行查询)from 表名;----每次查询都要定义一次别名

2、使用将类型别名封装到一个sql里面,可以重复、多次使用;----但不灵活

再在select里面引用

3、使用----映射

---放置不一样的名称

并将select中的resultType更改为:resultMap="",中间放置id名称

查询--查看详情

举例:----参数占位符:#{} ${}

在查询所有的基础上,后面添加一个where id=#{id};

#{}:会将其替换为?,为了防止SQL注入---------使用时机:参数传递的时候

${}:会存在SQL注入的问题----------使用时机:表明或者列名不固定的情况下

参数类型:

parameterType:可以省略---用来设置参数类型

特殊字符处理:

1、转义字符---适用于特殊字符较少时

2、CDATA区---适用于特殊字符较多时(CD-->回车-->在其中填入特殊字符即可)

查询--条件查询

多条件查询

where 条件 and 条件 and 条件

三种方式接受参数:

使用=表示准确查询,而使用like,则表示模糊查询

1、散装参数

模糊查询,需要在参数两端加上对应的%,实现模糊查询;

2、对象参数

需要用set方法封装对象,举例:

Brand brand=new Brand();
brand.setStatus("status");
brand.setCompanyName("companyName");
brand.setBrandName("brandName");

3、map集合

需要用到HashMap封装对象,举例:

Map map=new HashMap();
map.put("status");
map.put("companyName");
map.put("brandName");

查询--多条件--动态条件查询

是对多条件查询的优化,实现了不一定要输入全部条件时才能查询到相关信息的功能,提高了查询的灵活性;

where

列名1=#{列名1}

若是定义的第一个条件存在,可以实现该动态查询

但是,若是定义的第一个条件不存在,where后面会直接显示and连接符,查询出现漏洞;

解决方法

1、恒等式:在第一个if选择之前加上一个恒等式,将之前定义的第一个if语句前面加上and连接符,即可解决!

2、用将if语句包含起来,即可解决!

单条件---动态条件查询



where后面添加一个标签,再在里面添加几个标签,即可实现单条件动态查询

但存在特殊情况,若是用户并未选择标签,直接选择查询,会直接报错!这个问题需要解决!

解决方法

恒等式:

在中将封装进去,里面放置一个恒等式,即可解决问题!

Javaweb学习笔记第九弹的更多相关文章

  1. JavaWeb学习笔记总结 目录篇

    JavaWeb学习笔记一: XML解析 JavaWeb学习笔记二 Http协议和Tomcat服务器 JavaWeb学习笔记三 Servlet JavaWeb学习笔记四 request&resp ...

  2. 交换机安全学习笔记 第九~十章 HSRP VRRP

    HSRP  (Hot Standby Router Protocol) 热备份路由器协议 思科私有 HSRP消息使用UDP 端口号 1985(IPv6时为2029) 使用多播地址 224.0.0.2( ...

  3. javaweb学习笔记整理补课

    javaweb学习笔记整理补课 * JavaWeb: * 使用Java语言开发基于互联网的项目 * 软件架构: 1. C/S: Client/Server 客户端/服务器端 * 在用户本地有一个客户端 ...

  4. 【JAVAWEB学习笔记】06_jQuery基础

    接05的学习笔记. 四.使用JQ完成省市二级联动 1.需求分析 使用jquery完成省市二级联动 2.技术分析 2.1数组的遍历操作 方式一: $(function(){ // 全选/ 全不选 $(& ...

  5. MyCat 学习笔记 第九篇.数据分片 之 数值分布

    1 应用场景 Mycat 自带了多套数据分片的机制,其实根据数值分片也是比较简单,其实这个和数据取摸是类似的实现. 优.缺点同上一篇 2 环境说明 参考  <MyCat 学习笔记>第六篇. ...

  6. 《机器学习实战》学习笔记第九章 —— 决策树之CART算法

    相关博文: <机器学习实战>学习笔记第三章 —— 决策树 主要内容: 一.CART算法简介 二.分类树 三.回归树 四.构建回归树 五.回归树的剪枝 六.模型树 七.树回归与标准回归的比较 ...

  7. javaweb学习笔记(二)

    一.javaweb学习是所需要的细节 1.Cookie的注意点 ① Cookie一旦创建,它的名称就不能更改,Cookie的值可以为任意值,创建后允许被修改. ② 关于Cookie中的setMaxAg ...

  8. Javaweb学习笔记(一)

    一.javaweb学习是所需要的细节 1.发送响应头相关的方法 1).addHeader()与setHeader()都是设置HTTP协议的响应头字段,区别是addHeader()方法可以增加同名的响应 ...

  9. 【JAVAWEB学习笔记】05_jQuery基础

    晨读单词: toggle:切换 each:每个(遍历) append:追加(内部追加,将B追加到A的内部结尾处) appendTo:追加(内部追加,将A追加到B的内部结尾处) prepend:追加(内 ...

  10. 《Python基础教程(第二版)》学习笔记 -> 第九章 魔法方法、属性和迭代器

    准备工作 >>> class NewStyle(object): more_code_here >>> class OldStyle: more_code_here ...

随机推荐

  1. SpringBoot整合mqtt协议,实现订阅topic并将消息存储到mysql数据库

    所需依赖如下: <dependencies> <dependency> <groupId>org.springframework.boot</groupId& ...

  2. layui弹出层layer点击关闭还会显示在html中

    我的弹出层是这样定义的: 它的属性为display:none <div id="divlayer" style="display:none"> &l ...

  3. 鼠标JS

    1.鼠标按住拖动 <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> < ...

  4. java 是值传递还是引用传递

    首先要明白,修改一个对象,可以是 修改对象的属性值,也能使建立新的引用(指向另一个对象)两种情况 值传递 在函数调用的过程中,参数是 变量的副本,就是复制出来的一个对象,函数中无论怎么修改和原来的变量 ...

  5. eclipse中同步git代码报错checkout conflict with files

    1.Team--->Synchronize Workspace 2.在同步窗口找到冲突文件,把自己本地修改的复制出来 3.在文件上右键选择 Overwrite----->Yes , 4.再 ...

  6. FastReport和RDLC报表

    最近在做报表的时候第一次接触到RDLC报表,对比于之前使用的FastReport报表来说,在使用体验上个人目前感觉RDLC灵活性相对较差,尤其是表格的格式多样的时候,不易修改.RDLC应用于格式简单的 ...

  7. vue3 ts vite

    npm init vite@latest npm install -D sassnpm i vantnpm i vite-plugin-style-import@1.4.1 -Dvite.config ...

  8. redis存储类型-数字和带双引号的数字

    这个是不一样的值,出现了转换异常

  9. 4组-Alpha冲刺-6/6

    一.基本情况 队名:摸鲨鱼小队 组长博客:https://www.cnblogs.com/smallgrape/p/15574385.html 小组人数:8人 二.冲刺概况汇报 组长:许雅萍 过去两天 ...

  10. 记住这个错误org.apache.ibatis.binding.BindingException: Type interface com.kuang.dao.UserDAO is not known to the MapperRegistry.

    错误: org.apache.ibatis.binding.BindingException: Type interface com.kuang.dao.UserDAO is not known to ...