mybaits入门实验

news2025/6/22 5:25:29

实验准备

  1. 创建数据库和数据表sql语句,代码如下所示。
CREATE DATABASE mybait_demo;
USE mybait_demo;

CREATE TABLE tb_student(  
    sno  INT AUTO_INCREMENT PRIMARY KEY,  
    student_name VARCHAR(20) NULL,  
    student_age  INT         NULL  
);
  1. 给表中插入四条数据,代码如下所示。
INSERT INTO tb_student(student_name,student_age)
VALUES('张三',18),('李四',18),('王五',18),('赵六',18);
  1. 使用maven创建控制台程序,创建过程如下图所示.
    在这里插入图片描述
    创建后的工程结构如下图所示,
    在这里插入图片描述
    项目创建完成后,将包名org.example修改为com.bjwl,准备工作完成。

导入引入依赖包

在项目根目录下的pom文件中引入MyBatis和数据库的坐标,其代码如下所示。

  <dependencies>
    <dependency>
      <groupId>junit</groupId>
      <artifactId>junit</artifactId>
      <version>4.11</version>
      <scope>test</scope>
    </dependency>
    <!--数据库jar包-->
    <dependency>
      <groupId>mysql</groupId>
      <artifactId>mysql-connector-java</artifactId>
      <version>8.0.25</version>
    </dependency>

    <!--mybatis jar包-->
    <dependency>
      <groupId>org.mybatis</groupId>
      <artifactId>mybatis</artifactId>
      <version>3.5.3</version>
    </dependency>
  </dependencies>

Pom文件修改完成后,点击右侧maven面板,弹出maven操作页面,点击刷新按钮,下载相应的依赖包,等待下载完成,在左侧External Libraries中可以查看依赖包是否下载完成,如下图所示。
在这里插入图片描述

配置文件

在src->main目录下,新建目录文件resources,并将其设置为资源根目录,在此目录下,创建myBaits主配文件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>
    <!--Mybatis的主配文件-->
    <settings>
        <!--设置启用数据库字段下划线映射到java对象的驼峰式命名属性,默认为false-->
        <setting name="mapUnderscoreToCamelCase" value="true"/>
    </settings>
    <!--1.配置环境 ,默认的环境id为mysql-->
    <environments default="mysql">
        <!--1.2.配置id为mysql的数据库环境 -->
        <environment id="mysql">
            <!-- 使用JDBC的事务管理 -->
            <transactionManager type="JDBC" />
            <!--数据库连接池 -->
            <dataSource type="POOLED">
                <property name="driver" value="com.mysql.cj.jdbc.Driver" />
                <property name="url"
                          value="jdbc:mysql://localhost:3306/mybait_demo" />
                <property name="username" value="root" />
                <property name="password" value="root" />
            </dataSource>
        </environment>
    </environments>
    <!--2.配置Mapper的位置 -->
    <mappers>
        <!--告诉mybaits的sql映射文件存放路径-->
        <mapper resource="mapper/StudentMapper.xml" />
    </mappers>
</configuration>

配置文件主要分为三个部分,第一部分由代码的第5-9行,是Mybaits的一些通用设置,如:第7行是启用数据库字段下划线映射到java对象的驼峰式命名属性;第二部分有代码的第10-25行,用于配置运行环境,在此配置数据库的信息;第三部分配置映射文件。

编写实体类文件

在src->main->Java路径下,创建名为com.bjwl.pojo包,新增实体类Student,代码如下所示。

public class Student {
    private Integer sno;
    private String studentName;
    private Integer studentAge;

    public Integer getSno() {
        return sno;
    }

    public void setSno(Integer sno) {
        this.sno = sno;
    }

    public String getStudentName() {
        return studentName;
    }

    public void setStudentName(String studentName) {
        this.studentName = studentName;
    }

    public Integer getStudentAge() {
        return studentAge;
    }

    public void setStudentAge(Integer studentAge) {
        this.studentAge = studentAge;
    }
}

编写映射文件

在resources目录下创建mapper目录,在此目录下创建文件StudentMapper.xml,完成学生表的增删改查,代码如下所示。

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
        "http://mybatis.org/dtd/mybatis-3-mapper.dtd">

<!--映射文件-->
<!-- namespace表示命名空间 -->
<mapper namespace="com.bjwl.pojo.Student">
    <!--根据客户编号获取客户信息 -->
    <select id="getAllStudent"  resultType="com.bjwl.pojo.Student">
        select * from tb_student
    </select>
</mapper>

编写测试文件

在com.bjwl的包下面,创建文件MyBaitsTest ,代码如下所示。

public class MyBaitsTest {
    public static void main( String[] args )
    {
        try {
            getAllStudentTest();
        } catch (Exception e) {
            e.printStackTrace();
        }
    }

    private  static void getAllStudentTest() throws Exception {
        // 1、读取配置文件
        String resource = "mybatis-config.xml";
        InputStream inputStream =
                Resources.getResourceAsStream(resource);

        // 2、根据配置文件构建SqlSessionFactory
        SqlSessionFactory sqlSessionFactory =
                new SqlSessionFactoryBuilder().build(inputStream);
        // 3、通过SqlSessionFactory创建SqlSession
        SqlSession sqlSession = sqlSessionFactory.openSession();


        // 4、SqlSession执行映射文件中定义的SQL,并返回映射结果
        List<Student> students = sqlSession.selectList("getAllStudent");

        for (int i = 0; i < students.size(); i++) {
            Student student = students.get(i);
            System.out.println("姓名"+student.getStudentName()+"   年龄"+student.getStudentAge());
        }

        sqlSession.close();
    }
} 

运行程序

点击main方法左侧的绿色按钮,运行程序,运行结果如下图所示
在这里插入图片描述

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

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

相关文章

2023年09月 C/C++(三级)真题解析#中国电子学会#全国青少年软件编程等级考试

C/C编程&#xff08;1~8级&#xff09;全部真题・点这里 Python编程&#xff08;1~6级&#xff09;全部真题・点这里 第1题&#xff1a;谁是你的潜在朋友 “臭味相投”——这是我们描述朋友时喜欢用的词汇。两个人是朋友通常意味着他们存在着许多共同的兴趣。然而作为一个宅男&…

【操作系统】BIOS开机自检

一.BIOS的基本功能 BIOS 全称 Basic Input/Output System&#xff0c;中文可译为基本输入/输出系统。电脑在按下电源键后的第一反应就是执行BIOS这个程序。之所以会被称之为“基本”&#xff0c;是因为它主要负责了一些开启计算机所需要最最基本的东西&#xff0c;其它更加复杂…

Visual Studio配置OpenCV(保姆及教程)

Visual Studio配置OpenCV OpenCV安装Visual Studio安装Visual Studio配置OpenCV OpenCV安装 OpenCV安装地址&#xff0c;点击进行下载 二话不说&#xff0c;直接最新版本&#xff0c;安装挺简单的这里就不进行叙述了&#xff0c;安装完后记住安装地址。 打开你的安装目录&#…

dp模板题(y总小迷弟)

这个是总结y总的闫式dp分析方法来写的下面的题目主要核心就是&#xff1a; dp的含义&#xff1a;集合代表说明 如何根据最后一个子问题进行划分根据划分的范文推出状态式 四大经典dp问题 01背包 01背包问题可描述为如下问题&#xff1a; 有一个容量为V的背包&#xff0c;还…

Crypto/加密货币 应用

1. 应用程序功能模块 1) 实时加密货币数据 2) 保存当前用户的货币数据 3&#xff09;搜索、筛选、排序和重新加载数据 4&#xff09;自定义颜色主题和加载动画 2. 技术点 1&#xff09;MVVM 体系结构 2&#xff09;Core Data&#xff08;保存当前用户的投资组合&#xff09; 3…

Web后端开发登录校验及JWT令牌,过滤器,拦截器详解

如果用户名正确则成功进入 登录功能 代码 Controller Service Mapper 结果 若登录成功结果如下: 如果登录失败,结果如下 登录校验 为什么需要登录校验 有时再未登录情况下, 我们也可以直接访问部门管理, 员工管理等功能 因此我们需要一个登录校验操作, 只有确认用户登录…

易点云CFO向征:CFO不能只讲故事,价值创造才是核心

作者 | 曾响铃 文 | 响铃说 在今年6月初&#xff0c;也是易点云上市6天后&#xff0c;《巴伦周刊》正式启动评价“2023港美上市中国企业CFO精英100”的活动。 时间来到9月&#xff0c;评价揭秘&#xff0c;易点云CFO向征成功入选&#xff0c;被评为“年度最具成长潜力CFO”…

入手DDR5内存最佳时机到了,价格大跳水香过DDR4

当时 DDR5 内存刚出来那会儿大家怎么说的来着&#xff0c;售价离谱&#xff0c;提升微弱&#xff0c;鬼都不买… 不过嘛&#xff0c;随着 13 代酷睿以及锐龙 7000 系 CPU 上市&#xff0c;DDR5 彻底真香起来了。 先不说花重金升级 13 代酷睿平台&#xff0c;还用 DDR4 会不会有…

【开源项目】一款轻量级、基于Java语言开发的低代码开发框架,开箱即用!

在当今数字化时代&#xff0c;企业对于灵活、高效和安全的软件开发需求日益旺盛。为了满足这些需求&#xff0c;许多组织转向开源技术&#xff0c;以寻求更具成本效益和创新性的解决方案。JVS基础框架正是在这一背景下应运而生&#xff0c;凭借其私有化部署和完全开源的特性&am…

LeetCode 2578. 最小和分割【贪心,排序+奇偶分组】1350

本文属于「征服LeetCode」系列文章之一&#xff0c;这一系列正式开始于2021/08/12。由于LeetCode上部分题目有锁&#xff0c;本系列将至少持续到刷完所有无锁题之日为止&#xff1b;由于LeetCode还在不断地创建新题&#xff0c;本系列的终止日期可能是永远。在这一系列刷题文章…

Redis 新手必读。这篇文章是学 Redis 的捷径。

Redis 简介Redis 优势Redis 数据类型基本命令发布订阅订阅者的客户端显示如下事务持久化复制哨兵分片 Redis 简介 Redis 是完全开源免费的&#xff0c;遵守 BSD 协议&#xff0c;是一个高性能的 key - value 数据库 Redis 与 其他 key - value 缓存产品有以下三个特点&#…

经典面试题第九更---Promise养猪场

前言&#xff1a; &#x1f921; 作者简介&#xff1a;我是Morning&#xff0c;计算机的打工人&#xff0c;想要翻身做主人 &#x1f648; &#x1f648; &#x1f648; &#x1f3e0; 个人主页&#xff1a; Morning的主页 &#x1f4d5;系列专栏&#xff1a; 前端…

Magic Bullet Suite2024.0.1(ae降噪插件合集)

Red Giant Magic Bullet Suite是一套专业的视频后期处理软件&#xff0c;适用于Adobe Premiere Pro、After Effects等视频编辑软件。它提供了多种精美的视频特效和调色工具&#xff0c;使得视频制作更加专业和出色。 Magic Bullet Suite包括多个插件&#xff0c;其中最为知名的…

安防视频监控平台EasyCVR集成到ios系统不能播放是什么原因?如何解决?

视频监控TSINGSEE青犀视频平台EasyCVR能在复杂的网络环境中&#xff0c;将分散的各类视频资源进行统一汇聚、整合、集中管理&#xff0c;在视频监控播放上&#xff0c;TSINGSEE青犀视频安防监控汇聚平台可支持1、4、9、16个画面窗口播放&#xff0c;可同时播放多路视频流&#…

什么是多云? 为什么我们需要多云可观测性 (Observability)?

Observe 是一家提供可观察性云解决方案的公司&#xff0c;以帮助企业加速应用故障排查和问题解决的效率。公司成立于2017年9月&#xff0c;总部位于美国加利福尼亚州圣马特奥。到目前为止&#xff0c;Observe 已经在5轮融资中总共筹集了1.62亿美元。他们最近的一轮融资是在2023…

【EI会议征稿】第二届可再生能源与电气科技国际学术会议(ICREET 2023)

第二届可再生能源与电气科技国际学术会议(ICREET 2023) 2023 2nd International Conference on Renewable Energy and Electrical Technology 2020年中国可再生能源发电规模显著扩大&#xff0c;风力和太阳能发电均呈迅速增长趋势。中国大力推进能源低碳化&#xff0c;减少温…

醒醒吧,这才叫自动化测试最全教程,看完可就业!

最近看到很多粉丝在后台私信我&#xff0c;叫我做一期自动化测试的教程&#xff0c;其实关于这个问题&#xff0c;我也早就在着手准备了&#xff0c;我录制了一整套完整的Python自动化测试的教程&#xff0c;都上传在网盘里&#xff0c;大家有兴趣的可以去看一下&#xff01; 一…

Linux系统下centos中在线添加硬盘后不重启在线扩容linux系统目录不重启系统

Centos7 在线添加硬盘不重启系统 CentOS 7在线添加新磁盘,无需重启 现有环境基本都是线下server以及线上虚拟机等,几乎都支持热插拔,热扩容,所以在线添加新磁盘就尤为重要,这样可以无需中断当前服务或进程也可对其进行添加硬盘操作。 1.添加硬盘: 虚拟机在线状态下对其进行添加…

Ansys Zemax | 如何建立LCD背光源模型

本文建立了楔形LCD背光源模型&#xff0c;并对其进行分析&#xff0c;并按照照明输出标准对其进行优化。 附件下载 联系工作人员获取附件 简介 液晶显示器 (LCDs) 作为一种显示技术&#xff0c;在当今社会中已经得到了广泛的应用。在商业领域中最突出的应用包括计算机显示器…

Blender:使用立方体制作动漫头像

好久没水文章 排名都掉到1w外了 ~_~ 学习一下blender&#xff0c;看能不能学习一点曲面变形的思路 一些快捷键 ctrl 空格&#xff1a;区域最大化&#xff0c;就是全屏 ctrl alt 空格&#xff1a;也是区域最大化 shift b&#xff1a;框选区域然后最大化显示该范围 shift 空…