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.hqwc.cn/news/286528.html

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

相关文章

TensorFlow 2 和 Keras 之间的区别总结

1、什么是TensorFlow 2 TensorFlow 2是谷歌开源的一款深度学习框架&#xff0c;于2019年发布&#xff0c;并且在同年10月1日发布了TensorFlow 2.0.0正式稳定版。这款框架被很多企业与创业公司广泛用于自动化工作任务和开发新系统。 TensorFlow 2在分布式训练支持、可扩展的生…

从Gitee克隆项目、启动方法

从gitee克隆VUE项目到本地后&#xff0c;不能直接运行&#xff0c;需要进行npm install安装node_modules文件夹里面的内容&#xff0c;因为在git上传的时候&#xff0c;一般都会过滤到node_modules中的依赖文件。 安装依赖以后&#xff0c;启动通过npm run serve启动项目出错。…

LoadRunner-Controller

Controller场景设计Controller打开方式Design设计场景 Run-场景运行介绍简单图表分析虚拟用户图表事务响应时间 Controller场景设计 之所以把脚本放到Controller是因为vug没有一个性能指标的监控&#xff1b;而且你要达到持续模拟多个用户你得通过修改运行次数达到这种多用户的…

SD-WAN组网案例:异地组网跨境访问

根据业务的发展和公司的扩张&#xff0c;越来越多企业开始设立分公司或者开设海外办事处&#xff0c;这时候异地网络访问成为一个令人头痛的问题。本文将通过一个案例展示如何利用SD-WAN组网解决异地组网和跨境访问的问题。 背景&#xff1a; 该客户在三个相距较远的地区设有工…

全国国控监测点点位数据,shp/excel格式,已可视化

基本信息. 数据名称: 全国国控监测点点位数据 数据格式: shpexcel 时间版本&#xff1a;2023年 数据几何类型: 点 数据精度&#xff1a;全国 数据坐标系: WGS84 数据来源&#xff1a;网络公开数据 数据字段&#xff1a; 序号字段名称字段说明1province省名称2city城市…

性能测试-LoadRunner

一. Load Runner 脚本录制 1.1 了解 WebTours系统 &#xff08;1&#xff09;WebTours如何启动 在浏览器中输入ip端口号/WebTours就可以访问到了 &#xff08;2&#xff09;WebTours 配置 在 conf 中的 http.conf 中可以看到端口号:1080 1.2 脚本录制 1. 创建一个脚本 2. …

腾讯云debian服务器的连接与初始化

目录 1. 远程连接2. 软件下载3. 设置开机自启动 1. 远程连接 腾讯云给的服务器在安装好系统之后&#xff0c;只需要在防火墙里面添加一个白名单&#xff08;ip 或者域名&#xff09;就能访问了。 防火墙添加本机WLAN的IPv4白名单&#xff0c;本地用一个远程工具连接&#xff…

JavaEE:线程池精讲

目录 一.什么是线程池 二.线程池的实现原理 &#x1f388;为什么要有工厂模式&#xff1f; 三.线程池的构造方法解读 &#x1f388;线程池的拒绝策略 四.自己实现一个线程池 一.什么是线程池 简单来说&#xff0c;线程池就好比一块鱼塘&#xff0c;鱼塘中的每条鱼就是一个线程…

Oracle的学习心得和知识总结(三十)| OLTP 应用程序的合成工作负载生成器Lauca论文翻译及学习

目录结构 注&#xff1a;提前言明 本文借鉴了以下博主、书籍或网站的内容&#xff0c;其列表如下&#xff1a; 1、参考书籍&#xff1a;《Oracle Database SQL Language Reference》 2、参考书籍&#xff1a;《PostgreSQL中文手册》 3、EDB Postgres Advanced Server User Gui…

Ubuntu 20.04 prometheus prometheus-process-exporter

prometheus-process-exporter 监控系统架构方案 https://blog.csdn.net/weixin_45801289/article/details/126922395 sudo apt install prometheus-process-exporter prometheus-process-exporter_0.4.0ds-1_amd64.deb service prometheus-process-exporter status netstat …

黑马点评07 秒杀优化 加阻塞队列

实战篇-22.秒杀优化-异步秒杀思路_哔哩哔哩_bilibili 1.流程回顾 1.1超卖问题 判断秒杀时间&#xff0c;加乐观锁&#xff08;比较标记/版本&#xff09;&#xff0c;检查库存是否大于0 1.2一人一单问题 看看数据库里有没有这个这个人下的订单&#xff1a; 1.单机模式中…

响应式布局2:手写响应式导航栏(BootStrap实现以及原生实现)

1.响应式导航栏介绍 响应式导航栏是一种在不同设备和屏幕尺寸下自适应布局和显示的导航栏。它可以根据用户所使用的设备&#xff08;如桌面电脑、平板电脑或手机&#xff09;自动调整其外观和交互方式&#xff0c;以提供更好的用户体验。 pc端&#xff1a; 手机端&#xff1a…