MyBatis的查询方法!!!

准备工作:1.创建一个maven工程,然后将pojo类导入到项目中去。

                   2.导入依赖到pom.xml文件中

                   3.在resources中创建log4j.properites和mybatis-config.xml

                   4.创建UserMapper接口和UserMapper.xml文件

                   5.创建测试类MyBatisTest

1.创建Maven工程,还没有配置Maven的和还不会的去看这里啦:maven的下载安装与配置环境变量!!!(全网最详细)-CSDN博客

2.导入依赖到pom.xml文件中

<dependencies><dependency><groupId>org.mybatis</groupId><artifactId>mybatis</artifactId><version>3.4.5</version></dependency><dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId><version>5.1.47</version></dependency><dependency><groupId>log4j</groupId><artifactId>log4j</artifactId><version>1.2.17</version></dependency><dependency><groupId>junit</groupId><artifactId>junit</artifactId><version>4.12</version></dependency></dependencies><build><!-- 如果不添加此节点src/main/java目录下的所有配置文件都会被漏掉。 --><resources><resource><directory>src/main/java</directory><includes><include>**/*.xml</include></includes></resource><resource><directory>src/main/resources</directory></resource></resources></build>

     3.在resources中创建log4j.properites和mybatis-config.xml

log4j.properites:

# Global logging configuration
log4j.rootLogger=DEBUG, stdout
# Console output...
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%5p [%t] - %m%n

 mybatis-config.xml:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN" "http://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration><!--使用dev环境--><environments default="dev"><!--dev环境--><environment id="dev"><transactionManager type="JDBC"></transactionManager><!--使用连接池中的数据源--><dataSource type="POOLED"><property name="driver" value="com.mysql.jdbc.Driver"/><property name="url" value="jdbc:mysql://127.0.0.1:3305/mybatis?characterEncoding=UTF-8"/><property name="username" value="root"/><property name="password" value=""/></dataSource></environment></environments><!-- 扫描映射文件 --><mappers><mapper resource="com/by/mapper/UserMapper.xml"/></mappers>
</configuration>

 

4.创建UserMapper接口和UserMapper.xml文件

UserMapper.java:

package com.by.mapper;import com.by.pojo.User;
import org.apache.ibatis.annotations.Param;import java.util.Map;/*** <p>Project: mybatis - UserMapper</p>* <p>Powered by scl On 2023-12-19 15:24:18</p>* <p>描述:<p>** @author 孙臣龙 [1846080280@qq.com]* @version 1.0* @since 17*/
public interface UserMapper {User getUserById(Integer id );User getUser(Integer id , String username);User getUser1(@Param("id") Integer id , @Param("username") String username);User getUser2(User user);User getUser3(Map<String ,Object> map);
}

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.by.mapper.UserMapper"><select id="getUserById" resultType="com.by.pojo.User">select * from user where id=#{id}</select><select id="getUser" resultType="com.by.pojo.User"><!--select * from user where id=#{arg0} and username=#{arg1};-->select * from user where id=#{param1} and username=#{param2};</select><select id="getUser1" resultType="com.by.pojo.User">select * from user where id=#{id} and username=#{username}</select><select id="getUser2" parameterType="com.by.pojo.User" resultType="com.by.pojo.User">select * from user where id=#{id} and username=#{username}</select><select id="getUser3" parameterType="java.util.Map" resultType="com.by.pojo.User">select * from user where id=#{id} and username=#{username}</select>
</mapper>

5.创建测试类MyBatisTest

/** Copyright (c) 2020, 2023,  All rights reserved.**/
package com.by;import com.by.mapper.UserMapper;
import com.by.pojo.User;
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.After;
import org.junit.Before;
import org.junit.Test;import java.io.IOException;
import java.io.InputStream;
import java.util.HashMap;
import java.util.Map;/*** <p>Project: mybatis - MyBatisTest</p>* <p>Powered by scl On 2023-12-18 11:44:53</p>* <p>描述:<p>** @author 孙臣龙 [1846080280@qq.com]* @version 1.0* @since 17*/
public class MyBatisTest {private InputStream inputStream;private SqlSession sqlSession;@Beforepublic void init() throws IOException {// 加载配置文件String resource = "mybatis-config.xml";inputStream = Resources.getResourceAsStream(resource);// 创建sqlSessionFActorySqlSessionFactory sessionFactory = new SqlSessionFactoryBuilder().build(inputStream);// 获得数据的绘画实例sqlSession = sessionFactory.openSession();}/*** 传递单个参数* @throws IOException*/@Testpublic void testGetById() throws IOException {UserMapper userMapper = sqlSession.getMapper(UserMapper.class);User user = userMapper.getUserById(43);System.out.println(user);}/*** 传递多个参数* @throws IOException*/@Testpublic void testGetUser() throws IOException {UserMapper userMapper = sqlSession.getMapper(UserMapper.class);User user = userMapper.getUser(43,"俞莲舟");System.out.println(user);}/*** 注解传递多个参数* @throws IOException*/@Testpublic void testGetUser1() throws IOException {UserMapper userMapper = sqlSession.getMapper(UserMapper.class);User user = userMapper.getUser(43,"俞莲舟");System.out.println(user);}/*** 对象传递多个参数* @throws IOException*/@Testpublic void testGetUser2() throws IOException {UserMapper userMapper = sqlSession.getMapper(UserMapper.class);User user1 = new User();user1.setId(43);user1.setUsername("俞莲舟");User user = userMapper.getUser2(user1);System.out.println(user);}/*** map传递多个参数* @throws IOException*/@Testpublic void testGetUser3() throws IOException {UserMapper userMapper = sqlSession.getMapper(UserMapper.class);Map<String ,Object> m = new HashMap<>();m.put("id",43);m.put("username","俞莲舟");User user = userMapper.getUser3(m);System.out.println(user);}@Afterpublic void close() throws IOException {inputStream.close();sqlSession.close();}}

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

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

相关文章

Windows 安装RocketMQ

1.rocketmq下载 https://archive.apache.org/dist/rocketmq/5.1.4/ 2.环境准备 64位JDK 1.8; Maven 3.2.x; 64位操作系统系统&#xff0c;本文档在Windows上安装 3.解压到一个无中文无空格的目录下&#xff0c;解压后目录如下&#xff1a; 配置环境变量 4.更改配置 java的…

2018年第七届数学建模国际赛小美赛B题世界杯足球赛的赛制安排解题全过程文档及程序

2018年第七届数学建模国际赛小美赛 B题 世界杯足球赛的赛制安排 原题再现&#xff1a; 有32支球队参加国际足联世界杯决赛阶段的比赛。但从2026年开始&#xff0c;球队的数量将增加到48支。由于时间有限&#xff0c;一支球队不能打太多比赛。因此&#xff0c;国际足联提议改变…

SpringBoot Whitelabel Error Page 报错--【已解决】

springboot 报错信息如下 这个报错页面就是个404 &#xff0c;代表你访问的url 没有对应的的requestmapping 其实没啥影响的一个问题&#xff0c;但是看到Error 就是不爽&#xff0c;改了他丫的 解决方法如下 一、调整application.properties配置【治标不治本】 server.err…

HIVE窗口函数

什么是窗口函数 hive中开窗函数通过over关键字声明&#xff1b;窗口函数&#xff0c;准确地说&#xff0c;函数在窗口中的应用&#xff1b;比如sum函数不仅可在group by后聚合&#xff0c;在可在窗口中应用&#xff1b; hive中groupby算子和开窗over&#xff0c;shuffle的逻辑…

Cockpit upload文件上传漏洞(CVE-2023-1313)

0x01 产品简介 Cockpit 是一个自托管、灵活且用户友好的无头内容平台,用于创建自定义数字体验。 0x02 漏洞概述 Cockpit assetsmanager/upload接口处存在文件上传漏洞,攻击者可通过该漏洞在服务器端任意上传代码,写入后门,获取服务器权限,进而控制整个web服务器。 0x0…

深入理解 hash 和 history:网页导航的基础(下)

&#x1f90d; 前端开发工程师&#xff08;主业&#xff09;、技术博主&#xff08;副业&#xff09;、已过CET6 &#x1f368; 阿珊和她的猫_CSDN个人主页 &#x1f560; 牛客高级专题作者、在牛客打造高质量专栏《前端面试必备》 &#x1f35a; 蓝桥云课签约作者、已在蓝桥云…

Linux 特殊符号

目录 1. # 注释 2. &#xff1b;命令分隔符 3. .. 上级目录 4. . 当前目录 5. " " 换行&#xff0c;解析变量 6. 换行&#xff0c;不解析变量 7. \ 和 / 8. &#xff01;历史命令调用&#xff0c;取反 9. * 通配符 10. $ 调用变量 11. | 管道 12. || …

亿发零售云引领新零售时代:智能收银系统助力连锁门店多业态发展

近来&#xff0c;越来越多零售从业者认识到&#xff0c;线上和线下全渠道整合将成为国内消费市场的主要趋势。在这个趋势中&#xff0c;线下门店仍然被视为品牌发展的重要价值来源。 在连锁门店中&#xff0c;收银系统被认为是运营管理的关键工具&#xff0c;能够为品牌门店提供…

MySQL数据库 DDL

目录 一、DDL 二、操作数据库 三、操作表 四、数据类型 五、表操作案例 六、修改表 七、删除表 一、DDL Data Definition Language&#xff0c;数据定义语言&#xff0c;用来定义数据库对象(数据库&#xff0c;表&#xff0c;字段) 。 二、操作数据库 &#xff08;1&am…

ControlNet Adding Conditional Control to Text-to-Image Diffusion Models

ControlNet: Adding Conditional Control to Text-to-Image Diffusion Models TL; DR&#xff1a;ControlNet 使得我们能通过输入额外的条件图&#xff08;如 Canny 边缘、人体姿态、深度图等&#xff09;&#xff0c;对 SD 生成结果的空间位置有更准确的控制。它拷贝 SD 部分…

基于Springboot的旅游网站设计与实现(论文+调试+源码)

项目描述 临近学期结束&#xff0c;还是毕业设计&#xff0c;你还在做java程序网络编程&#xff0c;期末作业&#xff0c;老师的作业要求觉得大了吗?不知道毕业设计该怎么办?网页功能的数量是否太多?没有合适的类型或系统?等等。这里根据疫情当下&#xff0c;你想解决的问…

Golang清晰代码指南

发挥易读和易维护软件的好处 - 第一部分 嗨&#xff0c;开发者们&#xff0c;清晰的代码是指编写易于阅读、理解和维护的软件代码。它是遵循一组原则和实践&#xff0c;优先考虑清晰性、简单性和一致性的代码。清晰的代码旨在使代码库更易管理&#xff0c;减少引入错误的可能性…

【老牌期刊】IF:6+,2天预审,3-5个月录用!

期刊简介 1区计算机智能类SCI 【期刊概况】IF&#xff1a;6.0-7.0&#xff0c;JCR1区&#xff0c;中科院2区&#xff1b; 【终审周期】走期刊部系统&#xff0c;3个月左右录用&#xff1b; 【检索情况】SCI检索&#xff1b; 【WOS收录年份】2018年&#xff1b; 【自引率】…

记录一下github深度学习的错误

1.[visdom]无法正常启动服务问题解决 在Anaconda命令窗口中&#xff1a; 使用python -m visdom.server启动visdom服务时&#xff0c;卡在&#xff1a; Checking for scripts. Downloading scripts, this may take a little while 无法下载和启动服务。 ERROR&#xff1a;由…

如何将门脸图片文字识别为excel表格数据?

对于市场调查人员而言&#xff0c;最烦的事莫过于对路边的小店进行逐一记录了&#xff0c;有没有效率高点的办法&#xff0c;不用人工录入呢&#xff1f;我来告诉你一个秘密&#xff1a;先将小店的牌子&#xff08;门脸&#xff09;拍下来&#xff0c;然后用OCR软件批量转成exc…

【数据结构】模式匹配之KMP算法与Bug日志—C/C++实现

​&#x1f308;个人主页&#xff1a;Sarapines Programmer&#x1f525; 系列专栏&#xff1a;《数据结构奇遇记》&#x1f516;墨香寄清辞&#xff1a;墨痕寄壮志&#xff0c;星辰梦未满。 通幽径心凝意&#xff0c;剑指苍穹势如山。 目录 &#x1f31e;1. 模式匹配的基本概念…

Ubuntu 常用命令之 sed 命令用法介绍

sed是一个在Linux和其他Unix-like系统中常用的流编辑器&#xff0c;用于对输入流&#xff08;文件或管道&#xff09;进行基本的文本转换。它可以非常方便地进行文本替换、插入、删除等操作。 sed命令的基本格式为 sed [options] command file(s)其中&#xff0c;常用的参数有…

【Python】—— pandas数据处理

Pandas 提供了丰富的数据处理功能&#xff0c;涵盖了从数据导入、清理、转换到分析和可视化的方方面面。以下是一份关于 Pandas 数据处理的主要内容&#xff1a; 1. 数据导入和导出 导入数据&#xff1a; import pandas as pd# 从 CSV 文件导入 df pd.read_csv(data.csv)# 从…

git 常见错误总结(会不断更新中。。)

常见错误 1. 配置部署key后git clone还是拉不下代码 执行以下命令 先添加 SSH 密钥到 SSH 代理&#xff1a; 如果你使用 SSH 代理&#xff08;例如 ssh-agent&#xff09;&#xff0c;将生成的私钥添加到代理中。 ssh-add ~/.ssh/gstplatrontend/id_rsa如果报错以下错误信息…

邮件营销:定义、优势与策略指南

什么是邮件营销&#xff1f;跨境电商或者出海企业可能会经常使用它&#xff0c;它是传统的营销方式之一&#xff0c;在上世纪80年年代得以运用。 邮件营销&#xff0c;英文全称为Email Direct Marketing&#xff0c;缩写为EDM。它是指在收件人许可的情况下&#xff0c;通过电子…