package com.itheima.test;
import com.itheima.mapper.BrandMapper;
import com.itheima.pojo.Brand;
import org.apache.ibatis.io.Resources;
import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;
import org.apache.ibatis.session.SqlSessionFactoryBuilder;
import org.junit.Test;
import java.io.IOException;
import java.io.InputStream;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
public class MyBatisTest {
@Test
public void testSelectAll() throws Exception {
//1.获取核心配置文件
//1.加载Mybatis 的核心配置文件,获取 sqlSessionFactory,用来执行sql语句的。
String resource = "mybatis-config.xml";//配置文件的路径,就是加载url 用户名和密码之类的。
InputStream inputStream = Resources.getResourceAsStream(resource);
//通过mybatis 提供的一个资源加载的类 Resources类 ,将字符串输入的进来,得到一个字节输入流。
SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
//然后得到一个sqlSessionFactory 对象。
//2.获取sqlSession 对象
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();
}
@Test
public void testSelectById() throws Exception {
//1.获取核心配置文件
//1.加载Mybatis 的核心配置文件,获取 sqlSessionFactory,用来执行sql语句的。
String resource = "mybatis-config.xml";//配置文件的路径,就是加载url 用户名和密码之类的。
InputStream inputStream = Resources.getResourceAsStream(resource);
//通过mybatis 提供的一个资源加载的类 Resources类 ,将字符串输入的进来,得到一个字节输入流。
SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
//然后得到一个sqlSessionFactory 对象。
//2.获取sqlSession 对象
SqlSession sqlSession = sqlSessionFactory.openSession();
//3.获取mapper 接口的代理对象
BrandMapper brandMapper = sqlSession.getMapper(BrandMapper.class);
//4.执行方法
int id = 1;
Brand brand = brandMapper.selectById(id);
System.out.println(brand);
//5.释放资源
sqlSession.close();
}
@Test
public void testSelectByCondition() throws Exception {
int status = 4;
String companyName = "华为";
String brandName = "华为";
companyName = "%" + companyName + "%";
brandName = "%" + brandName + "%";
Brand brand = new Brand();
brand.setStatus(status);
brand.setCompanyName(companyName);
brand.setBrandName(brandName);
//1.获取核心配置文件
//1.加载Mybatis 的核心配置文件,获取 sqlSessionFactory,用来执行sql语句的。
String resource = "mybatis-config.xml";//配置文件的路径,就是加载url 用户名和密码之类的。
InputStream inputStream = Resources.getResourceAsStream(resource);
//通过mybatis 提供的一个资源加载的类 Resources类 ,将字符串输入的进来,得到一个字节输入流。
SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
//然后得到一个sqlSessionFactory 对象。
//2.获取sqlSession 对象
SqlSession sqlSession = sqlSessionFactory.openSession();
//3.获取mapper 接口的代理对象
BrandMapper brandMapper = sqlSession.getMapper(BrandMapper.class);
//4.执行方法
// List<Brand> brands = brandMapper.selectByCondition(status, companyName, brandName);
List<Brand> brands = brandMapper.selectByCondition(brand);
System.out.println(brands);
//5.释放资源
sqlSession.close();
}
@Test
public void testSelectByConditionMap() throws Exception {
int status = 4;
String companyName = "华为";
String brandName = "华为";
companyName = "%" + companyName + "%";
brandName = "%" + brandName + "%";
Map map = new HashMap();
map.put("status",status);
map.put("companyName",companyName);
map.put("brandName",brandName);
// Brand brand = new Brand();
// brand.setStatus(status);
// brand.setCompanyName(companyName);
// brand.setBrandName(brandName);
//1.获取核心配置文件
//1.加载Mybatis 的核心配置文件,获取 sqlSessionFactory,用来执行sql语句的。
String resource = "mybatis-config.xml";//配置文件的路径,就是加载url 用户名和密码之类的。
InputStream inputStream = Resources.getResourceAsStream(resource);
//通过mybatis 提供的一个资源加载的类 Resources类 ,将字符串输入的进来,得到一个字节输入流。
SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
//然后得到一个sqlSessionFactory 对象。
//2.获取sqlSession 对象
SqlSession sqlSession = sqlSessionFactory.openSession();
//3.获取mapper 接口的代理对象
BrandMapper brandMapper = sqlSession.getMapper(BrandMapper.class);
//4.执行方法
// List<Brand> brands = brandMapper.selectByCondition(status, companyName, brandName);
List<Brand> brands = brandMapper.selectByCondition(map);
System.out.println(brands);
//5.释放资源
sqlSession.close();
}
}
相关推荐
Xilinx SDK工程编译、链接、调试注意事项
1、添加工程 启动SDK时选取workspace,如下图所示: 对应的workpace文件夹中会生成如下几个文件: 如果当前workspace是首次加载工程,SDK会进入启动界面 点击Import Project,导入已有工程 点击Browse,添加工程路径,一个完整的工程包含一个bsp文件夹,一个HW文件夹,和一个src文件夹(添加C功能函数) 点击Fini...
mybatis 公用条件通用化
<select id="xxx" parameterType="xxx" resultMap="xxx"> select * from RECR_PROCESS where 1=1 <if test="xxx != null" > and <include refid="Convert_Report"> <!--这里...
基于Apache SeaTunnel构建CDC数据同步管道
Apache SeaTunnel是一个数据集成开发平台,其发展经历了几个重要阶段:ETL时代(90年代):面向结构化数据库的数据同步,用于构建数据仓库。MPP和分布式技术流行:使用技术如Hive进行数据仓库的构建。此阶段主要使用mapreduce程序进行数据搬运和转换。数据湖技术流行:重视数据集成,强调先同步数据至数据湖仓储,再进行业务面向的转换和设计。CDC,即变更数据捕获,是一种捕获数据库变更事件(如插入、更新、删除)的技术。
Mybatis中提取<where><if>公共查询条件
我们在使用mybatis写sql语句的时候,经常会遇到很多sql都会有拥有某些相同的查询条件,如果只是一个两个还感觉不到什么,可是如果查询语句特别多,而且又都拥有共同的查询条件的时候,我们可以考虑将中相同的条件抽取出来,然后封装一下,在需要的时候直接引用就可以了。 以我最近接受的代码为例: 1.未抽取前 <select id="selectVtRecordPage" parameterTyp...
在 Ansys CFX Pre 中配置 RGP 表的分步指南
掌握在 Ansys CFX Pre 中设置 RGP 表的技巧,以优化仿真精度和效率。
实测有效!YOLOv8融合EMA注意力机制后,在无人机航拍目标检测中的性能提升对比
本文详细介绍了YOLOv8融合EMA注意力机制在无人机航拍目标检测中的性能提升效果。通过多尺度特征融合和通道-空间双重注意力机制,EMA模块显著提升了小目标检测的准确率,mAP@0.5平均提升4.2%,同时保持推理速度基本不变。文章还提供了模型定制、训练技巧和实际部署优化的全流程指南。
mybatis中提取公共的sql方法
mybatis中提取公共的sql方法 属于一个封装的标签,可以用于下面有重复条件的,这个可以简化mybatis中的代码量,调用的时候使用来进行调用!!! <sql id="common_where_if"> <if test="province != '全国' and province != null"> wo_province = #{province} </if> <if test="o
ArcGIS栅格数据像元值与坐标值提取及Excel导出全流程解析
本文详细解析了使用ArcGIS将栅格数据批量提取像元值与坐标值并导出至Excel的全流程。通过“栅格转点”、“添加XY坐标”和“表转Excel”三大核心步骤,无需编程即可自动化处理遥感、环境等领域的空间数据,有效提升数据分析效率。
MybatisPlus条件查询方法全解
例如:我想按照姓名升序,员工编号降序查询员工信息mysqlMP/*** 排序操作: 自定义升、降序* 参数解释:* param1: 满足condition为true的情况,才会拼接条件* param2: 是否升序 true:升序 false:降序* param3: 排序字段* <p>* 排序字段是可以为多个的MP/*** 自定义查询条件MP/*** 无视优化规则直接拼接到 sql 的最后。
用Python+PyTorch实现DQN无人机避障:从环境搭建到实战训练(附完整代码)
本文详细介绍了如何使用Python和PyTorch框架,基于深度强化学习中的DQN算法,实现一个无人机自主避障系统。内容涵盖从自定义环境搭建、DQN智能体核心算法实现,到完整的训练流程与超参数调优,并提供了可视化演示与进阶优化方向,为开发者提供了从理论到实践的完整指南。
ifix5.8连接ab plc的点-通过rslinx
以ifix连接ab plc的点为例 1.先在rslinx上把plc的点导出为opc server 2.使用opc power tool 作为opc client 去连接 3.保存到项目的PDB文件夹下面,并且以节点名命名。 也可以不以节点名命名,系统自动会生成一个以节点名命名的这种文件,就显得很乱。 同时,项目的PDB目录下面必须还得拷过来一个de...
MyBatis—利用MyBatis查询(查询所有,查询一行,条件查询)
MyBatis—利用MyBatis查询(查询所有,查询一行,条件查询)
3步!Spring Boot+OCR引擎秒提身份证/营业执照?手把手教你从零实现!
OCR技术革新文档识别效率 本文演示了如何利用Spring Boot+Tesseract OCR+OpenCV构建自动化文档识别系统。相比传统人工录入,OCR技术可实现: 5秒极速提取身份证/营业执照关键信息 精准识别中文文本(准确率90%+) 正则过滤自动匹配结构化数据 技术要点: OpenCV图像预处理(灰度化+二值化) Tesseract多语言OCR识别 正则表达式精准提取证件号码 效率提升达100倍,错误率降低90%,适用于金融、政务等需要批量处理证件的场景。
MyBatis条件查询
单条件查询 用select查询数据时,如果需要用户传入的参数只有一个时,可以直接在接口代理方法中设置一个参数: 如上图的selectById(int id)方法,定义好方法后需要在对应的映射文件中写上对应的SQL语句 只需要将对应的参数名传入#{}中即可实现插入参数,还有一种方法是将#改成$,这两个的区别在于:$代表的是先拼接字符串,再对SQL进行编译,而#则是先预编译SQL语句,再传入参数的值,这样可以防止字符串拼接时的SQL注入问题,具体可看我的另一篇文章 JDBC解决SQL注入问题 多条件查询 当
Devexpress16.2.6破解工具
Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具
计算机控制技术及应用
《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。
mybatis多个查询条件
<!--随便下面参数的其中一个都可以查询--> <!-- <select id="selectBankInfo" resultMap="BaseResultMap" > SELECT bankHolderName,bankHolderStatus,bankAccountNum,bankName,branchName,branchAddress from ...
温度PID控制PLC程序
温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值
使用MyBatis实现条件查询总结
使用MyBatis实现条件查询SQL映射文件使用SELECT完成单条件查询使用SELECT完成多条查询使用resultMap完成查询结果的展现 SQL映射文件 Mybatis真正强大的是在于它的SQL映射语句,也是它的流弊之处。 它的功能强大,SQL映射文件的配置却比较简单。 使用SQL映射文件可以减少50%以上的代码量。 Mybatis专注于SQL,对于开发人员来说可极大限度地进行SQL调优,以保证性能, 下面是SQL映射文件的几个顶级元素配置 mapper 它是映射文件的根节点,只有一个属性就是
蓝牙模块HM-10手册
蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。
Mybatis-plus实现条件查询
Mybatis-plus实现条件查询(复杂查询) 1.我们一般都会用到条件查询,下面来看看mybatis-plus中几个常见的条件查询,思路很简单,创建QueryWrapper对象,然后再调用各种方法。 然后把wrapper对象,传过去即可。 //条件查询(复杂查询) @Test public void testSelectQuery(){ //创建对象 QueryWrapper<User> wrapper = new QueryWrapper
mybatis 多条件查询、in查询
当参数有值,添加条件查询,附带一个字符串的in查询 resultMap: <resultMap id="eventMap" type="com.szkingdom.entityserver.vo.event.EventBean"> <id column="id" jdbcType="BIGINT" property="id" /> <result ...
mybatis的分页查询和条件查询
(1)无条件的分页查询: <!-- 分页查询和条件查询,传入map,map存放两个对象,dataTablesInp是存放分页信息的对象 --> <select id="findPersons" parameterType="map" resultType="com.weixz.domain.Person" > select * from person ...
Mybatis-plus分页查询和条件查询通用写法
一查询条件VO /** * @className: TeacherQueryVo * @description: 讲师查询条件封装 * @date: 2020/11/18 * @author: cakin */ @ApiModel("Teacher查询对象") @Data public class TeacherQueryVo implements Serializable { private static final long serialVersionUID = 1L; @Api.
MyBatis基本查询、条件查询、查询排序
"http://mybatis.org/dtd/mybatis-3-mapper.dtd"> resultMap="linkType"> SELECT * FROM OD_LINK_TYPE WHERE LINK_URI = #{linkUri} resultType
Mybatis动态查询条件构建的历史演进:MyBatis,MyBatis-Generator-Example,MyBatis-Plus,MyBatis-Flex
Mybatis动态查询条件构建的历史演进:MyBatis,MyBatis-Generator-Example,MyBatis-Plus,MyBatis-Flex。 MyBatis-Generator动态查询条件构建。 updateByExampleSelective的含义。
使用MyBatis实现条件查询
在test/java的net.huawei.mybatis.mapper包里创建TestStudentMapper类。运行测试方法testFindByCondition(),查看结果。运行测试方法testFindByCondition(),查看结果。运行测试方法testFindByCondition(),查看结果。运行测试方法testFindByCondition(),查看结果。比如查询姓“吴”,性别为“女”,同时年龄为19的学生记录。注意:注意:通配符%与_的区别。修改测试方法里的查询条件。
mybatis Example条件查询
目录: or条件查询时,结合0、1两个例子得出差异 Criteria添加条件时如果遇上or条件时,结合2、3两个例子得出差异 0. DepartmentExample departmentExample = new DepartmentExample(); departmentExample.createCriteria().andTenantIdEqualTo(te
gorm 查询where 条件为空_MyBatis多条件查询
在前面内容的基础上,我们在UserDao中编写一个方法在UserMappper中编写编写测试类,这个测试类的查询条件全部不为空查看结果我们设置部分条件是空的,例如用户角色为空我们修改下测试部分的代码运行测试代码我们发现那么这个结果是否正确呢?我们查看日志信息将查询语句摘取出来,里面的问号改成我们的查询数据,在数据库命令行中执行发现是有数据的,很显然我们的代码有问题这是因为在进行多条件查询的是否,用...
1万+



被折叠的 条评论
为什么被折叠?



