Javaweb学习笔记第九弹
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学习笔记第九弹的更多相关文章
- JavaWeb学习笔记总结 目录篇
JavaWeb学习笔记一: XML解析 JavaWeb学习笔记二 Http协议和Tomcat服务器 JavaWeb学习笔记三 Servlet JavaWeb学习笔记四 request&resp ...
- 交换机安全学习笔记 第九~十章 HSRP VRRP
HSRP (Hot Standby Router Protocol) 热备份路由器协议 思科私有 HSRP消息使用UDP 端口号 1985(IPv6时为2029) 使用多播地址 224.0.0.2( ...
- javaweb学习笔记整理补课
javaweb学习笔记整理补课 * JavaWeb: * 使用Java语言开发基于互联网的项目 * 软件架构: 1. C/S: Client/Server 客户端/服务器端 * 在用户本地有一个客户端 ...
- 【JAVAWEB学习笔记】06_jQuery基础
接05的学习笔记. 四.使用JQ完成省市二级联动 1.需求分析 使用jquery完成省市二级联动 2.技术分析 2.1数组的遍历操作 方式一: $(function(){ // 全选/ 全不选 $(& ...
- MyCat 学习笔记 第九篇.数据分片 之 数值分布
1 应用场景 Mycat 自带了多套数据分片的机制,其实根据数值分片也是比较简单,其实这个和数据取摸是类似的实现. 优.缺点同上一篇 2 环境说明 参考 <MyCat 学习笔记>第六篇. ...
- 《机器学习实战》学习笔记第九章 —— 决策树之CART算法
相关博文: <机器学习实战>学习笔记第三章 —— 决策树 主要内容: 一.CART算法简介 二.分类树 三.回归树 四.构建回归树 五.回归树的剪枝 六.模型树 七.树回归与标准回归的比较 ...
- javaweb学习笔记(二)
一.javaweb学习是所需要的细节 1.Cookie的注意点 ① Cookie一旦创建,它的名称就不能更改,Cookie的值可以为任意值,创建后允许被修改. ② 关于Cookie中的setMaxAg ...
- Javaweb学习笔记(一)
一.javaweb学习是所需要的细节 1.发送响应头相关的方法 1).addHeader()与setHeader()都是设置HTTP协议的响应头字段,区别是addHeader()方法可以增加同名的响应 ...
- 【JAVAWEB学习笔记】05_jQuery基础
晨读单词: toggle:切换 each:每个(遍历) append:追加(内部追加,将B追加到A的内部结尾处) appendTo:追加(内部追加,将A追加到B的内部结尾处) prepend:追加(内 ...
- 《Python基础教程(第二版)》学习笔记 -> 第九章 魔法方法、属性和迭代器
准备工作 >>> class NewStyle(object): more_code_here >>> class OldStyle: more_code_here ...
随机推荐
- Unity3D发布Android注意事项
当你制作完一款游戏,准备发布Android平台时,需要进行一些设置.如下: 一.设置AndroidSDK路级和JDK路径 AndroidSDK目录可以通过AndroidStudio查看,如下: 这个路 ...
- C#实现Bitmap旋转
原文链接 Rotate180FlipNone 指定不进行翻转的 180 度旋转.Rotate180FlipX 指定后接水平翻转的 180 度旋转.Rotate180FlipXY 指定后接水平翻转和垂直 ...
- 请求接口类型blob,下载文件
axiosGet () { var This = this var url = '/group1/M00/00/21/MejEvGOX_zOAL2kiAAAAUhB5Iqg138.txt?token= ...
- 操作系统 windos
- 【BOOK】解析库--Beautiful Soup
1.安装bs4库 2.解析器 3.节点选择器 from bs4 import BeautifulSoup html = ''' <html> <head><title&g ...
- 常用的DOS指令及部分快捷键
常用的DOS指令及部分快捷键 1.dos打开方式 win + R打开运行,输入cmd,打开dos 2.常用的Dos指令 a.切换盘号 方法 直接输入对应盘加" :" D: ...
- C# DataTable.Select()根据条件筛选数据
1.前言: 很多时候我们获取到一个表的时候需要根据表的包含的队列去筛选内容,一般来说可能想到的就是遍历整个表的内容进行条件筛选,但是这种方式增加了代码量且易出错,DataTable.Select()就 ...
- 【python_PAT_乙类】1013_数素数 ,Python运行超时解决方案
题目: 令 Pi 表示第 i 个素数.现任给两个正整数 M≤N≤104,请输出 PM 到 PN 的所有素数. 输入格式: 输入在一行中给出 M 和 N,其间以空格分隔. 输出格 ...
- AVD文件转移到非系统盘
AVD文件默认是生成在C:\Users\用户名\.android\avd目录下面的,而AVD文件非常大,可以用下面的方法将AVD文件转移到其他盘中. 1. 将每个模拟器对应的***.avd文件夹的内容 ...
- Maven中的DependencyManagement 和 Dependencies
Maven 使用dependencyManagement 元素来提供了一种管理依赖版本号的方式. 通常会在一个组织或者项目的最顶层的父POM 中看到dependencyManagement 元素. 使 ...