MyBatis开发环境搭建

news/2024/11/18 14:39:54/

1.创建工程

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

2.引入相关的依赖 pom.xml

    <dependencies><!--1.引入mybatis包--><dependency><groupId>org.mybatis</groupId><artifactId>mybatis</artifactId><version>3.4.6</version></dependency><!--2.单元测试--><dependency><groupId>junit</groupId><artifactId>junit</artifactId><version>4.12</version><scope>test</scope></dependency><!--3.mysql驱动--><dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId><version>8.0.18</version><scope>runtime</scope></dependency><!--4.log4j日志--><dependency><groupId>log4j</groupId><artifactId>log4j</artifactId><version>1.2.17</version></dependency></dependencies>

3.准备数据库

这里使用的是数据库是mybatis

在这里插入图片描述

use mybatis;
create table users(uid int primary key auto_increment,uname varchar(20) not null,uage int not null
);
insert into users(uid,uname,uage) values(null,'张三',20),(null,'李四',18);

4.创建mybatis的核心配置文件所使用的db.properties文件

在这里插入图片描述

jdbc.driver=com.mysql.cj.jdbc.Driver
jdbc.url=jdbc:mysql://localhost:3306/mybatis?serverTimezone=UTC&characterEncoding=utf8&useUnicode=true&useSSL=false
jdbc.username=root
jdbc.password=root

5.创建项目结构

5.1 创建com.example.pojo包存放实体类User

在这里插入图片描述
实体类User的内容如下

package com.example.pojo;/*** ClassName: User* Package: com.example.pojo* Description:** @Create 2023/3/16 7:52* @Version 1.0*/
public class User {private int uid;private String uname;private int uage;public int getUid() {return uid;}public void setUid(int uid) {this.uid = uid;}public String getUname() {return uname;}public void setUname(String uname) {this.uname = uname;}public int getUage() {return uage;}public void setUage(int uage) {this.uage = uage;}@Overridepublic String toString() {return "User{" +"uid=" + uid +", uname='" + uname + '\'' +", uage=" + uage +'}';}
}

5.2 创建com.example.mapper包存mapper接口

在这里插入图片描述
UserMapper接口如下

package com.example.mapper;/*** ClassName: UserMapper* Package: com.example.mapper* Description:** @Create 2023/3/16 7:55* @Version 1.0*/
public interface UserMapper {
}

6.创建Mybatis核心配置文件mybatis-config.xml

mybatis-config.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文件--><properties resource="db.properties"></properties><!--将下划线映射为驼峰--><settings><setting name="mapUnderscoreToCamelCase" value="true"/></settings><!--设置类型别名--><typeAliases><!--以包为单位,将包下所有的类型设置设置默认的类型别名,即类名且不区分大小写--><package name="com.example.pojo"/></typeAliases><environments default="development"><environment id="development"><transactionManager type="JDBC"/><dataSource type="POOLED"><property name="driver" value="${jdbc.driver}"/><property name="url" value="${jdbc.url}"/><property name="username" value="${jdbc.username}"/><property name="password" value="${jdbc.password}"/></dataSource></environment></environments><!-- 引入映射文件 --><mappers><!--以包为单位引入映射文件要求:1. mapper接口所在的包要和映射文件所在的包一致2. mapper接口要和映射文件的名字一致--><package name="com.example.mapper"/></mappers></configuration>

7.创建Mybatis映射文件UserMapper.xml

7.1创建目录结构

在这里插入图片描述
在这里插入图片描述

7.2 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.example.mapper.UserMapper"><!-- namespace要和mapper接口的全类名保持一致 --><!-- sql语句要和接口的方法名保持一致 --></mapper>

8.创建log4j.xml的配置文件

在这里插入图片描述
内容如下:

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE log4j:configuration SYSTEM "log4j.dtd"><log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/"><appender name="STDOUT" class="org.apache.log4j.ConsoleAppender"><param name="Encoding" value="UTF-8"/><layout class="org.apache.log4j.PatternLayout"><param name="ConversionPattern" value="%-5p %d{MM-dd HH:mm:ss,SSS} %m (%F:%L) \n"/></layout></appender><logger name="java.sql"><level value="debug"/></logger><logger name="org.apache.ibatis"><level value="info"/></logger><root><level value="debug"/><appender-ref ref="STDOUT"/></root>
</log4j:configuration>

9.创建测试文件TestMybatis.java

在这里插入图片描述
在这里插入图片描述

9.第一个测试案例

根据User的id查找User

9.1 com.example.mapper.UserMapper.java接口文件中添加方法

public interface UserMapper {/*** 根据用户id查找用户*/public User findUserById(int id);
}

9.2 UserMapper.xml映射文件添加sql语句

<?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.example.mapper.UserMapper"><!-- namespace要和mapper接口的全类名保持一致 --><!-- sql语句要和接口的方法名保持一致 --><select id="findUserById"parameterType="int"resultType="User">select * from users where uid = #{id}</select>
</mapper>

9.3 com.example.test.TestMybatis.java中添加测试方法

package com.example.test;import com.example.mapper.UserMapper;
import com.example.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.Test;import java.io.IOException;
import java.io.InputStream;/*** ClassName: TestMyBatis* Package: com.example.test* Description:** @Create 2023/3/16 8:07* @Version 1.0*/
public class TestMyBatis {@Testpublic void testFindUserById() throws IOException {//1.获取核心配置类InputStream is = Resources.getResourceAsStream("mybatis-config.xml");//2.创建SqlSessionFacotrySqlSessionFactory sqlSessionFacotry = new SqlSessionFactoryBuilder().build(is);//3.获取SqLSession对象SqlSession session = sqlSessionFacotry.openSession();//4.执行sql语句UserMapper mapper = session.getMapper(UserMapper.class);User user = mapper.findUserById(1);System.out.println("user = " + user);//5。释放资源session.close();}
}

10.运行结果如下

在这里插入图片描述


http://www.ppmy.cn/news/32290.html

相关文章

Java八股文(Java多线程面试题)

并行和并发的区别&#xff1f;&#xff08;1&#xff09;并行是指两个或者多个事件在同一时刻发生&#xff1b;而并发是指两个或多个事件在同一时间间隔发生&#xff1b;&#xff08;2&#xff09;并行是在不同实体上的多个事件&#xff0c;并发是在同一实体上的多个事件&#…

昨天某读者拿到华为OD岗位offer,今天来分享一下经验,包含华为OD机试

来自读者投稿&#xff0c;已经拿到华为 OD 开发岗位 offer&#xff0c;询问了一些问题&#xff0c;下面是他的一些经验。 文章目录华为 OD 投递简历华为 OD 机试分数OD 机试通过之后&#xff0c;收到综合测评OD 技术面&#xff08;时长 1 小时左右&#xff09;主管/HR 面试&…

如何提高soc算法精度

当今电动汽车技术已经成熟&#xff0c;BMS&#xff08;Battery Management System&#xff0c;电池管理系统&#xff09;是其中非常重要的组成部分。在电池的使用过程中&#xff0c;如何准确地测量电池的剩余电量是非常重要的&#xff0c;这就需要一个高精度的SOC&#xff08;S…

数据库体系结构概念--集中式数据库、分布式数据库

数据库模式 前言&#xff1a; 平时我们接触的‘数据库’一般指的是DBMS&#xff0c;数据库管理系统&#xff0c;DBMS是软件如&#xff1a;mysql、oracle、dm等等都是集中式数据库&#xff0c;但它们不能代表整个数据库&#xff0c;只是通过这些软件来管理相应的数据内容&#…

【嵌入式Linux学习笔记】Linux驱动开发

Linux系统构建完成后&#xff0c;就可以基于该环境方便地进行开发了&#xff0c;相关的开发流程与MCU类似&#xff0c;但是引入了设备树的概念&#xff0c;编写应用代码要相对复杂一点。但是省去了很多配置工作。 学习视频地址&#xff1a;【正点原子】STM32MP157开发板 字符…

【YOLOv8/YOLOv7/YOLOv5/YOLOv4/Faster-rcnn系列算法改进NO.59】引入ASPP模块

前言作为当前先进的深度学习目标检测算法YOLOv8&#xff0c;已经集合了大量的trick&#xff0c;但是还是有提高和改进的空间&#xff0c;针对具体应用场景下的检测难点&#xff0c;可以不同的改进方法。此后的系列文章&#xff0c;将重点对YOLOv8的如何改进进行详细的介绍&…

springboot健身房管理系统

springboot健身房管理系统 ✌全网粉丝20W,csdn特邀作者、博客专家、CSDN新星计划导师、java领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战✌ &#x1f345;文末获取项目下载方式&#x1f345; 一、项目背景介绍&#xf…

python 模拟鼠标,键盘点击

信息爆炸 消息轰炸模拟鼠标和键盘敲击import time from pynput.keyboard import Controller as key_col from pynput.mouse import Button,Controller def keyboard_input(insertword):keyboardkey_col()keyboard.type(insertword)def mouth():mouseController()mouse.press(…