2024/10/25日 日志 --》关于使用Mybatis进行增删改查 ---1 查询
1.2024/10/16 日 日志 --》关于MySQL的中 基础操作的整理以及 DQL的初步学习笔记与整理2.2024/10/17日 日志 --》关于MySQL中的 约束、多表查询的初步学习笔记与整理3.2024/10/18日 日志 --》关于MySQL中的 事务 以及JDBC的初步学习笔记与整理4.2024/10/19日 日志--》关于MySQL中 JDBC的API 详解的整理简述5.2024/10/21 日 日志 --》关于Mysql中的数据库连接池 简述笔记整理6.2024/10/22日 日志 --》关于Maven的基础学习 笔记整理7.2024/10/23日 日志--》关于Maven的基础学习--2 坐标与依赖范围8.2024/10/24日 日志 --》关于Mybatis的学习笔记整理 - 环境与性质 以及ResultMap
9.2024/10/25日 日志 --》关于使用Mybatis进行增删改查 ---1 查询
10.2024/10/26 日 使用Mybatic --》关于Mybatis 进行增删改查 ---2 添加、修改与删除11.2024/10/28日 使用Mybatic --》关于Mybatis 的参数传递与注解开发12.2024/10/29 HTML --》关于HTML的快速入门与标签13.2024/10/30 日 日志 --》关于CSS的学习14.2024/11/1日 日志 关于JavaScript简介&引入方式 以及基础语法的学习15.2024/11/4日 日志 关于JavaScript 变量、数据类型、类型转换和流程控制语句以及对象的学习16.2024/11/5日 日志 关于BOM浏览器对象模型和DOM文档对象模型的学习与笔记整理17.2024/11/6日 日志 正则表达式,web与HTTP18.2024/11/7日 日志 Tomcat简介&基本使用19.2024/11/8日 日志 关于Servlet ----(上)20.2024/11/11日 日志 关于Servlet ----HttpServlet(下)21.2024/11/12日 日志 关于Servlet ---- Request(请求)& Response(响应) 的补充22.2024/11/13日 日志 代码优化 以及 JSP 的快速入门、原理、脚本、缺点 和 EL表达式 以及 JSTL标签23.2024/11/14日 日志 关于 MVC 分层开发模式24.2024/11/15日 日志 关于 会话跟踪技术--- Cookie & Session25.2024/11/20日 日志 关于 Filter & Listener26.2024/11/21日 日志 关于AJAX & Axious异步框架 & JSON27.2024/11/27日 日志 关于Vue && Element28.JavaWeb案例整体分析---》差旅费报销管理信息系统->>题目详情29.JavaWeb案例整体分析---》差旅费报销管理信息系统->>登录与注册30.JavaWeb案例整体分析---》差旅费报销管理信息系统->>数据库操作和Mybatis配置以及pom.xml31.JavaWeb案例整体分析---》差旅费报销管理信息系统->>出差申请与报销部分32.2024/1/13日 日志 关于Vue && Element 的后续---》综合案例(1)33.2024/1/14日 日志 关于Vue && Element 的后续---》综合案例(2)34.2024/1/16日 日志 关于Vue && Element 的后续---》综合案例(4)35.2024/1/17日 日志 关于Vue && Element 的后续---》综合案例(5)36.2024/1/18日 日志 关于Vue && Element 的后续---》综合案例(6)37.2024/1/19日 日志 关于Vue && Element 的后续---》综合案例(7)38.2024/1/20日 日志 关于Vue && Element 的后续---》综合案例(8.1)39.2024/1/21日 日志 关于Vue && Element 的后续---》综合案例(8.2)40.2024/1/22日 日志 期末考试案例回顾与分析---》综合案例(1)41.2024/1/23日 日志 期末考试案例回顾与分析---》综合案例(2)42.2024/1/24日 日志 期末考试案例回顾与分析---》综合案例(3)43.2024/1/25日 日志 期末考试案例回顾与分析---》综合案例(4)44.2024/1/26日 日志 期末考试案例回顾与分析---》综合案例(5)45.2024/1/27日 日志 期末考试案例回顾与分析---》综合案例(6)46.2024/2/3日 日志 期末考试案例回顾与分析---》综合案例(7)47.2024/2/4日 日志 期末考试案例回顾与分析---》综合案例(8)48.2024/2/5日 日志 期末考试案例回顾与分析---》综合案例(9)49.2024/2/6日 日志 期末考试案例回顾与分析---》综合案例(10)50.2024/2/7日 日志 期末考试案例回顾与分析---》综合案例(汇总)51.2024/2/24日 日志 第一次测试案例分析(1)--题目52.2024/2/25日 日志 第一次测试案例分析(2)--数据库层面53.2024/2/26日 日志 第一次测试案例分析(3)--基础准备54.2024/2/27日 日志 第一次测试案例分析(4)--登录与注册和仓库方面查询分为了多个模块,以下为笔记即示例内容的展示。
查询所有:
点击查看代码
-- 查询所有:
-- @Test
-- public void testselectAll() throws Exception {
-- //1.获取SqlSessionFactory
-- //1.加载mybatis的核心配置文件,获取SqlSessionFactory
-- String resource = "mybatis-config.xml";
-- InputStream inputStream = Resources.getResourceAsStream(resource);
-- SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
--
-- //2.获取SqlSessionFactory对象
-- SqlSession sqlSession = sqlSessionFactory.openSession();
--
-- //3.获取Mapper接口的代理对象
-- BrandMapper brandMapper = sqlSession.getMapper(BrandMapper.class);
--
-- //4.执行方法
-- List<Brand> brands=brandMapper.selectAll();
-- System.out.println(brands);
--
-- //5.释放资源
-- sqlSession.close();
--
-- }
--
-- <!--statement -->
-- <select id="selectAll" resultType="pojo.Brand">
-- select *
-- from tb_brand;
-- </select>
--
-- *ResultMap的使用:
--
-- <mapper namespace="mapper.BrandMapper">
-- <!--
-- 数据库表的字段名称和实体类的属性名称不一样,则不能自动封装数据。
-- *起别名:对不一样的列名起别名,让别名和实体类的属性名一样
-- *缺点:每次查询都要定义一次别名
-- *sql片段
-- *缺点:不灵活
-- *resultMap:
-- 1.定义resultMap标签
-- 2. 使用resultMap替换resultType属性
--
--
-- -->
-- <!-- <sql id="brand_column">-->
-- <!-- id, brand_name as brandName, company_name as companyName, ordered, description, status-->
-- <!-- </sql>-->
-- <!-- <select id="selectAll" resultType="pojo.Brand">-->
-- <!-- select <include refid="brand_column"/>-->
-- <!-- from tb_brand;-->
-- <!-- </select>-->
--
-- <resultMap id="brandResultMap" type="pojo.Brand">
-- <!--
-- id:完成主键字段的映射
-- column
-- property
-- result:完成一般字段的映射
-- -->
-- <result column="brand_name" property="brandName"/>
-- <result column="company_name" property="companyName"/>
-- </resultMap>
--
-- <!-- <select id="selectAll" resultMap="brandResultMap">-->
-- <!-- select *-->
-- <!-- from tb_brand;-->
-- <!-- </select>-->
--
--
-- <!--statement -->
-- <select id="selectAll" resultType="pojo.Brand">
-- select *
-- from tb_brand;
-- </select>
--
-- <!-- <select id="selectAll" resultType="pojo.Brand">-->
-- <!-- select id, brand_name as brandName, company_name as companyName, ordered, description, status-->
-- <!-- from tb_brand;-->
-- <!-- </select>-->
--
-- </mapper>
--
查看详情:
点击查看代码
-- 查看详情:
-- @Test
-- public void testselectById() throws Exception {
-- //接受参数
-- int id =1;
--
-- //1.获取SqlSessionFactory
-- //1.加载mybatis的核心配置文件,获取SqlSessionFactory
-- String resource = "mybatis-config.xml";
-- InputStream inputStream = Resources.getResourceAsStream(resource);
-- SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
--
-- //2.获取SqlSessionFactory对象
-- SqlSession sqlSession = sqlSessionFactory.openSession();
--
-- //3.获取Mapper接口的代理对象
-- BrandMapper brandMapper = sqlSession.getMapper(BrandMapper.class);
-- //4.执行方法
-- Brand brand = brandMapper.selectById(id);
-- System.out.println(brand);
--
-- //5.释放资源
-- sqlSession.close();
--
-- }
--
--
--
-- 1.参数占位符:
-- 1)#{}:执行SQL时,会将#}占位符替换为?,将来自动设置参数值
-- 2)${}:拼SQL。会存在SQL注入问题
-- 3.使用时机:
-- *参数传递,都使用#{}
-- *如果要对表名、列名进行动态设置,只能使用S{}进行sql拼接。
-- 2.parameterType:
-- *用于设置参数类型,该参数可以省略
-- 3.SQL语句中特殊字符处理:
-- *转义字符
-- *<![CDATA[内容 ]]> :CD提示
-- 例:
--
-- <!--
-- *参数占位符:
-- 1.#{}:会将其替换为 ? ,为了防止SQL注入
-- 2.${}:拼sql ,会存在SQL注入问题
-- 3.使用时机
-- *参数传递的时候:#{}
-- *表名或者列名不固定可以用:${} ,存在SQL注入
-- *参数类型:paremeterType :可以省略
-- *特殊字符处理:
-- 1.转义字符: 如<对应 <
-- 2.CDATA区:如<![CDATA[
-- <
-- ]]>
-- -->
-- <select id="selectById" resultMap="brandResultMap">
-- select * from
-- tb_brand where id = #{id};
-- </select>
条件查询SQL与动态条件查询:
条件查询:
点击查看代码
-- 条件查询SQL与动态条件查询
--
-- SQL语句设置有多种参数形势:
-- ·1 散装参数:需要使用@Param("SQL参数占位符名称")
-- ·2 实体类封装参数:只需要保证SQL中的参数名和实体类属性名对应上
-- ·3 map集合:只需要保证SQL中的参数名和map集合的键的名称对应上
-- 例:
-- <select id="selectByCondition" resultMap="brandResultMap">
-- select * from
-- tb_brand
-- where status = #{status}
-- and company_name like #{companyName}
-- and brand_name like #{brandName}
-- </select>
--
-- /*
-- 条件查询:
-- · 参数接收:
-- 1.散装参数:如果方法中有多个参数,需要使用@Param("SQL参数占位符名称")
-- 2.对象参数:对象的属性名称和对应的参数占位符名称一致
-- 3.map集合参数:map集合的键的名称和对应的参数占位符名称一致
-- */
-- public void testselectByCondition() throws Exception {
-- //接受参数
-- int status =1;
-- String companyName ="华为";
-- String brandName ="华为";
-- //处理参数
-- companyName = "%"+companyName+"%";
-- brandName = "%"+brandName+"%";
--
-- //封装参数
-- // Brand brand = new Brand();
-- // brand.setStatus(status);
-- // brand.setCompanyName(companyName);
-- // brand.setBrandName(brandName);
--
-- Map map = new HashMap();
-- // map.put("status",status);
-- map.put("companyName",companyName);
-- // map.put("brandName",brandName);
--
-- //1.获取SqlSessionFactory
-- //1.加载mybatis的核心配置文件,获取SqlSessionFactory
-- String resource = "mybatis-config.xml";
-- InputStream inputStream = Resources.getResourceAsStream(resource);
-- SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
--
-- //2.获取SqlSessionFactory对象
-- SqlSession sqlSession = sqlSessionFactory.openSession();
--
-- //3.获取Mapper接口的代理对象
-- BrandMapper brandMapper = sqlSession.getMapper(BrandMapper.class);
-- //4.执行方法
-- // ArrayList<Brand> brands = brandMapper.selectByCondition(status,companyName,brandName);
-- // ArrayList<Brand> brands = brandMapper.selectByCondition(brand);
-- ArrayList<Brand> brands = brandMapper.selectByCondition(map);
-- System.out.println(brands);
--
-- //5.释放资源
-- sqlSession.close();
--
-- }
--
-- 模糊查询
-- <!-- <select id="selectByCondition" resultMap="brandResultMap">-->
-- <!-- select * from-->
-- <!-- tb_brand-->
-- <!-- where-->
-- <!-- status = #{status}-->
-- <!-- and company_name like #{companyName}-->
-- <!-- and brand_name like #{brandName}-->
-- <!-- </select>-->
-- 以下为优化及条件判断方法
-- <!--
-- * if: <if> </if> 条件判断
-- *test: 逻辑表达式
-- * 问题解决:
-- *恒等式 1 = 1
-- <select id="selectByCondition" resultMap="brandResultMap">
-- select * from
-- tb_brand
-- where 1 = 1
-- <if test="status != null">
-- and status = #{status}
-- </if>
-- <if test="companyName != null and companyName !='' ">
-- and company_name like #{companyName}
-- </if>
-- <if test="brandName !=null and brandName !='' ">
-- and brand_name like #{brandName}
-- </if>
-- </select>
-- *<where> 替换 where 关键字
-- <select id="selectByCondition" resultMap="brandResultMap">
-- select * from
-- tb_brand
-- <where>
-- <if test="status != null">
-- status = #{status}
-- </if>
-- <if test="companyName != null and companyName !='' ">
-- and company_name like #{companyName}
-- </if>
-- <if test="brandName !=null and brandName !='' ">
-- and brand_name like #{brandName}
-- </if>
-- </where>
-- </select>
-- 条件查询最终如下:
-- -->
-- <select id="selectByCondition" resultMap="brandResultMap">
-- select * from
-- tb_brand
-- <where>
-- <if test="status != null">
-- status = #{status}
-- </if>
-- <if test="companyName != null and companyName !='' ">
-- and company_name like #{companyName}
-- </if>
-- <if test="brandName !=null and brandName !='' ">
-- and brand_name like #{brandName}
-- </if>
-- </where>
-- </select>
--
动态SQL
点击查看代码
-- -- 动态SQL
-- if: 用于判断参数是否有值,使用test属性进行条件判断
-- *存在问题:第一个条件不需要逻辑运算符
-- *解决方案:
-- · 使用恒等式让所有条件格式一样
-- · <where>标签替换where关键字
-- 例:
--
-- @Test
-- public void testselectByConditionSingle() throws Exception {
-- //接受参数
-- int status =1;
-- String companyName ="华为";
-- String brandName ="华为";
-- //处理参数
-- companyName = "%"+companyName+"%";
-- brandName = "%"+brandName+"%";
--
-- //封装参数
-- Brand brand = new Brand();
-- // brand.setStatus(status);
-- // brand.setCompanyName(companyName);
-- // brand.setBrandName(brandName);
--
-- //1.获取SqlSessionFactory
-- //1.加载mybatis的核心配置文件,获取SqlSessionFactory
-- String resource = "mybatis-config.xml";
-- InputStream inputStream = Resources.getResourceAsStream(resource);
-- SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
--
-- //2.获取SqlSessionFactory对象
-- SqlSession sqlSession = sqlSessionFactory.openSession();
--
-- //3.获取Mapper接口的代理对象
-- BrandMapper brandMapper = sqlSession.getMapper(BrandMapper.class);
-- //4.执行方法
-- ArrayList<Brand> brands = brandMapper.selectByConditionSingle(brand);
-- System.out.println(brands);
--
-- //5.释放资源
-- sqlSession.close();
--
-- }
-- <!-- <select id="selectByConditionSingle" resultMap = "brandResultMap">-->
-- <!-- select-->
-- <!-- *from tb_brand-->
-- <!-- where-->
-- <!-- <choose> <!–相当于 switch–>-->
-- <!-- <when test="status!=null"> <!– 相当于case–>-->
-- <!-- status = #{status}-->
-- <!-- </when>-->
-- <!-- <when test="companyName != null and companyName !=''"> <!– 相当于case–>-->
-- <!-- company_name like #{companyName}-->
-- <!-- </when>-->
-- <!-- <when test="brandName!=null and companyName != ''"> <!– 相当于case–>-->
-- <!-- brand_name like #{brandName}-->
-- <!-- </when>-->
-- <!-- <otherwise><!– 相当于default–>-->
-- <!-- 1 = 1-->
-- <!-- </otherwise>-->
-- <!-- </choose>-->
-- <!-- </select>-->
-- <select id="selectByConditionSingle" resultMap="brandResultMap">
-- select
-- *from tb_brand
-- <where>
-- <choose> <!--相当于 switch-->
-- <when test="status!=null"> <!-- 相当于case-->
-- status = #{status}
-- </when>
-- <when test="companyName != null and companyName !=''"> <!-- 相当于case-->
-- company_name like #{companyName}
-- </when>
-- <when test="brandName!=null and companyName != ''"> <!-- 相当于case-->
-- brand_name like #{brandName}
-- </when>
-- </choose>
-- </where>
-- </select>
--
--
-- <!--
-- 动态条件查询
-- * if: <if> </if> 条件判断
-- *test: 逻辑表达式
-- * 问题解决:
-- *恒等式 1 = 1
-- <select id="selectByCondition" resultMap="brandResultMap">
-- select * from
-- tb_brand
-- where 1 = 1
-- <if test="status != null">
-- and status = #{status}
-- </if>
-- <if test="companyName != null and companyName !='' ">
-- and company_name like #{companyName}
-- </if>
-- <if test="brandName !=null and brandName !='' ">
-- and brand_name like #{brandName}
-- </if>
-- </select>
-- *<where> 替换 where 关键字
-- <select id="selectByCondition" resultMap="brandResultMap">
-- select * from
-- tb_brand
-- <where>
-- <if test="status != null">
-- status = #{status}
-- </if>
-- <if test="companyName != null and companyName !='' ">
-- and company_name like #{companyName}
-- </if>
-- <if test="brandName !=null and brandName !='' ">
-- and brand_name like #{brandName}
-- </if>
-- </where>
-- </select>
-- -->
单条件的动态查询--从多个条件中选择一个
点击查看代码
-- 单条件的动态条件查询
-- ·从多个条件中选择一个
-- --》choose(when,otherwise):选择,类似于java中的Switch语句
-- 例:
-- -->
-- <select id="selectByCondition" resultMap="brandResultMap">
-- select * from
-- tb_brand
-- <where>
-- <if test="status != null">
-- status = #{status}
-- </if>
-- <if test="companyName != null and companyName !='' ">
-- and company_name like #{companyName}
-- </if>
-- <if test="brandName !=null and brandName !='' ">
-- and brand_name like #{brandName}
-- </if>
-- </where>
-- </select>
-- <!-- <select id="selectByConditionSingle" resultMap = "brandResultMap">-->
-- <!-- select-->
-- <!-- *from tb_brand-->
-- <!-- where-->
-- <!-- <choose> <!–相当于 switch–>-->
-- <!-- <when test="status!=null"> <!– 相当于case–>-->
-- <!-- status = #{status}-->
-- <!-- </when>-->
-- <!-- <when test="companyName != null and companyName !=''"> <!– 相当于case–>-->
-- <!-- company_name like #{companyName}-->
-- <!-- </when>-->
-- <!-- <when test="brandName!=null and companyName != ''"> <!– 相当于case–>-->
-- <!-- brand_name like #{brandName}-->
-- <!-- </when>-->
-- <!-- <otherwise><!– 相当于default–>-->
-- <!-- 1 = 1-->
-- <!-- </otherwise>-->
-- <!-- </choose>-->
-- <!-- </select>-->
-- <select id="selectByConditionSingle" resultMap = "brandResultMap">
-- select
-- *from tb_brand
-- <where>
-- <choose> <!--相当于 switch-->
-- <when test="status!=null"> <!-- 相当于case-->
-- status = #{status}
-- </when>
-- <when test="companyName != null and companyName !=''"> <!-- 相当于case-->
-- company_name like #{companyName}
-- </when>
-- <when test="brandName!=null and companyName != ''"> <!-- 相当于case-->
-- brand_name like #{brandName}
-- </when>
-- </choose>
-- </where>
-- </select>SS
--
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· DeepSeek在M芯片Mac上本地化部署