xml模糊查询语句_2Mybatis学习笔记07:动态SQL语句(原创,转载请注明来源)

开发环境:

硬件环境:Windows10+JDK 1.8;
软件环境:Java+Eclipse+Mybatis+maven3.6+tomcat8.0+Postgresql 10.6;
用到的jar包:
asm-3.3.1.jar
cglib-2.2.2.jar
commons-logging-1.1.1.jar
javassist-3.17.1-GA.jar
log4j-1.2.17.jar
log4j-api-2.0-rc1.jar
log4j-core-2.0-rc1.jar
mybatis-3.2.7.jar
mybatis-spring-1.2.1.jar
mysql-connector-java-5.1.20.jar
postgresql-42.2.5.jre7.jar
slf4j-api-1.7.5.jar
slf4j-log4j12-1.7.5.jar

其他:

postgreSQL中已经存在一张表表名use,Windows环境下可通过命令行模式登录,打开cmd输入:psql -U postgrese;
按回车键,键入密码(当初安装postgreSQL设置的root密码);

项目结构:

d533ff458b10b0950b638665147bc5a6.png

1.1 配置文件

创建Mybatis.conf.xml

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE configurationPUBLIC "-//mybatis.org//DTD Config 3.0//EN""http://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration><properties resource="db.properties"/><typeAliases><package name="com.ironxi.entity"/>		</typeAliases><environments default="development"><environment id="development"><transactionManager type="JDBC" /><dataSource type="POOLED"><property name="driver" value="${driver}"/><property name="url" value="${url}" /><property name="username" value="${username}" /><property name="password" value="${password}" /></dataSource></environment></environments><mappers><mapper resource="com/ironxi/entity/TeacherMapper.xml" /></mappers> 
</configuration>

设置数据库关管理文件:

db.properties

driver=org.postgresql.Driver
url=jdbc:postgresql://localhost:5432/postgres
username=postgres
password=Your.334

1.2 设置MybtisUtils类(编写sqlsessionfactory,sqlsession)

package com.ironxi.util;import java.io.IOException;
import java.io.InputStream;import org.apache.ibatis.io.Resources;
import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;
import org.apache.ibatis.session.SqlSessionFactoryBuilder;public class MybatisUtil {/**SqlSessionFactory* 通过配置文件创建SqlSessionFactory,是一个SqlSession工厂类*/public static SqlSessionFactory getSqlSessionFactory() throws IOException {String resource = "mybatis.conf.xml";InputStream inputStream = Resources.getResourceAsStream(resource);SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);return sqlSessionFactory;}/**SqlSession* 通过id找到对应的sql语句并执行它*/public static SqlSession getSession() throws IOException {SqlSessionFactory sqlSessionFactory = getSqlSessionFactory();return sqlSessionFactory.openSession();}
}

1.3 设置Student类,Teacher类

设置User类

package com.ironxi.entity;public class User {private int id;private String name;private String password;public int getId() {return id;}public void setId(int id) {this.id = id;}public String getName() {return name;}public void setName(String name) {this.name = name;}public String getPassword() {return password;}public void setPassword(String password) {this.password = password;}@Overridepublic String toString() {return "User [id=" + id + ", name=" + name + ", password=" + password + "]";}}

1.4 设置Mapper.xml文件

UserMapper.xml

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapperPUBLIC "-//mybatis.org//DTD Mapper 3.0//EN""http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.ironxi.entity.UserMapper">
<!-- 结果映射不能返回成一个类型时用resultTypt --><select id="getUserByCondition" parameterType="Map" resultType="User">select * from use<where><!-- 利用sql语句的传参函数模糊匹配 --><if test="name!=null">name like CONCAT('%',#{name},'%')</if></where></select>
</mapper> 

1.5 创建查询方法

UserDao.java

package com.ironxi.dao;import java.io.IOException;
import java.util.List;
import java.util.Map;import org.apache.ibatis.session.SqlSession;import com.ironxi.entity.User;
import com.ironxi.util.MybatisUtil;public class UserDao {/**search all* @throws IOException */public List<User> getAll(Map<String,Object> map) throws IOException{SqlSession session = MybatisUtil.getSession();List<User> list= session.selectList("com.ironxi.entity.UserMapper.getUserByCondition",map);session.close();return list;}
}

1.6 编写测试文件

package com.ironxi.test;import java.io.IOException;
import java.util.HashMap;
import java.util.List;
import java.util.Map;import com.ironxi.dao.UserDao;
import com.ironxi.entity.User;public class Test {public static void main(String[] args) throws IOException {/** Select */UserDao userDao = new UserDao();Map<String,Object> map=new HashMap<String,Object>();map.put("name", "四");List<User> list=userDao.getAll(map);for(User u:list){System.out.println(u);}System.out.println("************");}
}

输出结果:

log4j:WARN No appenders could be found for logger (org.apache.ibatis.logging.LogFactory).
log4j:WARN Please initialize the log4j system properly.
log4j:WARN See http://logging.apache.org/log4j/1.2/faq.html#noconfig for more info.
User [id=23, name=四种, password=123455]
User [id=24, name=四狗, password=123455]
************

1.7 动态SQL语句

引入了<where></where>条件语句,同时在里面写if条件,若有多个if则除第一条语句外其余都需加and;

<where><!-- 利用sql语句的传参函数模糊匹配 --><if test="name!=null">name like CONCAT('%',#{name},'%')</if>
</where>

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/446053.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

硬件密码组件的硬件结构、作用及实现应用设计

引 言 1 硬件密码组件的概念 密码技术是解决信息安全问题的核心技术。要实现信息的保密性、完整性、可控性和不可否认性等安全要求&#xff0c;都离不开密码技术的运用。在具体的信息安全系统中&#xff0c;密码技术的运用可以基于软件密码组件&#xff08;简称为SCM&#xf…

sql倒序查询语句_SQL丨1.基本查询语句复习

此为自用查询语句1.selectSELECT column1,column2 FROM table1;常用的格式惯例&#xff1a;大写了SELECT和FROM&#xff0c;而将表名和列名小写&#xff1b;通常在列名中使用下划线&#xff0c;避免使用空格&#xff1b;在每个语句末尾添加分号&#xff1b;SQL不区分大小写。2.…

基于区块链的档案共享 项目启动

注意事项 已经备份了一个配置fabric的完整ubuntu系统&#xff0c;其需要注意的细节如下1&#xff0c;此镜像系统需要配置host文件&#xff0c;sudo vim /etc/hosts&#xff0c;添加如下内容127.0.0.1 orderer.example.com peer0.org1.example.com peer1.org1.example.c…

知道一点怎么设直线方程_【初中数学】反比例函数策略(二) ——构造方程法...

【相关阅读】【初中数学】反比例函数策略之一 ——数形结合反比例函数策略(二)——构造方程法(王 桥)上一次&#xff0c;咱们探讨了解决反比例函数的策略一——数形结合&#xff0c;本节课我们继续反比例函数的策略(二)——构造方程法。构造方程法&#xff0c;在《春季攻势》第…

wpf将文字转化为图形_将创新转化为实际应用

Worldsensing是全球公认的物联网先驱。这家位于西班牙巴塞罗那的技术供应商成立于2008年&#xff0c;为城市和传统行业提供运营情报。伊格纳西维拉霍萨纳(IgnasiVilajosana)是公司联合创始人兼首席执行官。伊格纳西拥有西班牙巴塞罗那大学物理学博士学位&#xff0c;还接受过美…

音视频处理 FFmpeg相关内容介绍 以及八大

FFmpeg的介绍 FFmpeg由Fabrice Bellard于2000年创建&#xff0c;由C和汇编语言进行开发FF -> Fast Forward 快进mpeg -> 标准化组织 Moving Pictures Experts Group使用到FFmpeg的开源项目gstreamer: a framework for streaming mediachromiummpv: Command line video pl…

音视频处理 基础开发 语言基础

基础开发内容 Vim编译器C语言回顾&#xff0c;重点介绍指针的概念Linux/MAC C语言的编译和调试Linux/MAC 常用开发工具介绍 Vim编译器 命令模式 拷贝 删除 粘贴等&#xff0c;通过i / a 等切换到编辑模式编辑模式 编辑字符&#xff0c;通过ESC进行切换常用命令 创建文件 vim …

音视频处理 ffmpeg下载、编译和安装

创建文件夹 ffmpeg_sources 存放源文件ffmpeg_build 构建文件并安装库bin 存放二进制可执行文件 安装依赖环境 整体安装 sudo apt-get update -qq && sudo apt-get -y install \autoconf \automake \build-essential \cmake \git-core…

CLion配置 鼠标滚轮 放大和缩小

操作 点击File -> Settings点击Appearance & Behavior -> Keymap在搜索框搜索 font 选择 Decrease FontSize &#xff0c;右键点击&#xff0c;选择add Mouse Shortcut&#xff0c;按住ctrl&#xff0c;同时向下滑动滚轮&#xff1b;同理&#xff0c;操作 Increase…

struts2通配符_基于Struts2框架的名片管理系统

本篇博文将分享一款基于Struts2框架的名片管理系统&#xff0c;JSP引擎为Tomcat9.0&#xff0c;数据库采用的是MySQL5.5&#xff0c;集成开发环境为Eclipse IDE for Java EE Developers。名片管理系统主要包括用户管理和名片管理功能。用户功能主要包括&#xff1a;用户注册、用…

音视频处理 Clion搭建ffmpeg开发环境

参考链接 Ubuntu 20.04 搭建 CLion FFmpeg 开发环境_TYYJ-洪伟的博客-CSDN博客 安装CLion 首先到 jetbrains 官网 https://www.jetbrains.com/clion/ 下载 CLion 安装包 CLion-2021.1.tar.gz使用finalshell和ubuntu之间配置ssh链接将Clion-2022.1.tar.gz 使用move移动到 /hom…

音视频处理 ffmpeg中级开发 H264编码

开发介绍 libavcodec/avcodec.h常用的数据结构 AVCodec 编码器结构体AVCodecContext 编码器上下文AVFrame 解码后的帧结构体内存的分配和释放 av_frame_alloc 申请av_frame_free() 释放avcodec_alloc_context3() 创建编码器上下文avcodec_free_context() 释放编码器上下文解码…

音视频处理 ffmpeg中级开发 视频转图片

操作流程 目的&#xff1a;使用FFmpeg将视频的每一帧数据转换为图片1&#xff0c;打开输入的多媒体文件&#xff0c;检索多媒体文件中的流信息2&#xff0c;查找视频流的索引号&#xff0c;通过索引号获取数据流&#xff1b;通过解析视频流中的编码参数得到解码器ID&#xff0…

企业知识库与知识管理:如何统一战略与实践

在知识密集型的现代企业中&#xff0c;知识已经成为了一种宝贵的资产。如何有效地管理和利用这一资产&#xff0c;成为企业持续发展与创新的关键。企业知识库与知识管理作为知识经济的两大支柱&#xff0c;它们的重要性不言而喻。但很多时候&#xff0c;我们发现企业的知识管理…

音视频处理 ffmpeg中级开发 AAC编码

介绍 编码流程类似于视频编码&#xff0c;1&#xff0c;查找编码器&#xff1b;2&#xff0c;设定参数&#xff0c;打开编码器&#xff1b;3&#xff0c;数据编码编码函数 avcodec_encode_audio2 已经被弃用FFmpeg 过时 Api 汇总整理 - 灰色飘零 - 博客园 未成功使用 旧版本i…

虚拟机为Ubuntu分配空间

当虚拟机里面的创建的ubuntu镜像需要更大的空间&#xff0c;将ubuntu关掉之后&#xff0c;对应调整硬盘的空间大小&#xff0c;由先前的20G上调至50G&#xff0c;但是先前的20G内存空间映射的位置是/dev/sda&#xff0c;后面增加的这段内存空间30G映射到/dev/sda1因此&#xff…

为什么人会摆高姿态_Yo , 你为什么喜欢冲浪?

“你为什么喜欢冲浪&#xff1f;” 那天木木突然问我。我愣住了。此时一道碧波恰从防泼堤&#xff08;jetty&#xff09;的那头升起&#xff0c;木木转头望去&#xff0c;视线追着那道浪缓缓向西&#xff0c;直至它破碎成白色的浪花。我瞥见他眼神中的光亮&#xff0c;就和小孩…

音视频处理 ffmpeg初级开发 命令行工具-实用命令

参考链接 ffmpeg Documentation作者&#xff1a;smallest_one 链接&#xff1a;FFmpeg命令行工具-实用命令 - 简书 目录 1&#xff0c;help命令使用 1.1 ffmpeg命令的语法结构1.2 获取详细的help信息1.3 打印帮助或者支持能力的信息1.4 全局选项1.5 文件选项1.6 视频/音频/字…

不同的电脑打印预览不同怎么解决_条码打印软件中标签预览正常打印无反应怎么解决...

在使用条码打印软件制作标签时&#xff0c;有客户反馈,标签打印预览正常的&#xff0c;但是打印无反应&#xff0c;咨询是怎么回事?今天针对这个情况&#xff0c;可以参考以下方法进行解决。一、预览正常情况下&#xff0c;打印没反应(1)在条码打印软件中设计好标签之后&#…

MP4文件格式的相关内容

参考链接 FFmpeg中mp4的demuxer(mov.c)代码阅读 - 简书mp4文件格式解析 - 简书mp4封装格式各box类型讲解及IBP帧计算_青丶空゛的博客-CSDN博客5分钟入门MP4文件格式 - 程序猿小卡 - 博客园​关于M4A文件的随机访问 - 云社区 - 腾讯云 MP4文件格式相关内容 MP4文件由许多box组…