MyBatis环境的搭建

1.创建 Maven 工程

打开idea新建一个项目File → Project Structure → Project,build system中选择maven

(1)由于 IDEA 中集成了 Maven,所以我们就不需要下载了,直接使用 IDEA 默认的 Maven 进行项目构建。

(2)打开 IDEA 开发工具,单击 File → new → Project,选择 Maven,点击 create。

创建成功的界面

  1. 在pom.xml的文件中引入相关依赖,具体代码如下:
<?xml version="1.0" encoding="UTF-8"?><project xmlns="http://maven.apache.org/POM/4.0.0"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"><modelVersion>4.0.0</modelVersion><groupId>com.itheima</groupId><artifactId>mybatistest</artifactId><version>1.0-SNAPSHOT</version><dependencies><dependency><groupId>org.mybatis</groupId><artifactId>mybatis</artifactId><version>3.5.2</version></dependency><dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId><version>8.0.11</version></dependency><dependency><groupId>junit</groupId><artifactId>junit</artifactId><version>4.12</version><!--            <scope>test</scope>--><scope>compile</scope></dependency></dependencies><build><resources><resource><directory>src/main/java</directory><includes><include>**/*.properties</include><include>**/*.xml</include></includes><filtering>true</filtering></resource></resources></build></project>

完成后视图如下:

3.创建数据库

在数据库中插入具体的数据:

运用代码检验一下是否建立成成功:

4.创建数据库连接信息配置文件

在项目src/main/resources目录下创建数据库连接的配置文件,在这里将其命名为db.properties,在该文件中配置数据库的连接参数,具体代码如下:

mysql.driver=com.mysql.cj.jdbc.Drivermysql.url=jdbc:mysql://localhost:3306/mybatis?serverTimezone=UTC&characterEncoding=utf8&useUnicode=true&useSSL=falsemysql.username=rootmysql.password=123456

完成图如下:

  1. 创建MyBatis的核心配置文件

在项目src/main/resources目录下创建MyBatis的核心配置文件,该文件主要用于项目的环境配置,如图连接相关配置,在这里命名为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 resource="db.properties"/><environments default="development"><environment id="development"><transactionManager type="JDBC"/><!-- 数据库连接相关配置 ,db.properties文件中的内容--><dataSource type="POOLED"><property name="driver" value="${mysql.driver}"/><property name="url" value="${mysql.url}"/><property name="username" value="${mysql.username}"/><property name="password" value="${mysql.password}"/></dataSource></environment></environments><!-- mapping文件路径配置 --><mappers><mapper resource="mapper/UserMapper.xml"/></mappers></configuration>

配置图如下:到此mybatis配置完成。

  1. MyBatis入门程序
  1. 创建POJO实体

在项目src/main/java目录下创建com.itheima.pojo包,在com.itheima.pojo包下创建User类,该类用于封装User对象的属性,具体代码如下:

package com.itheima.pojo;public class User {private int uid;             //用户idprivate 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;}}

配置完成图如下:

  1. 创建映射文件User Mapper.xml

      在项目的 J src/main/resources目录下创建一个 mapper文件夹,在 mapper文件夹下创建映射文件 Usermer. xml,该文件主要用于配置SQL语句和Java对象之间的映射,使SQL语句查询出来的数据能够被封装成Java对象。一个项目中可以有多个映射文件,每个实体类都可以有其对应的映射文件。映射文件通常使用POJO实体类名+ Mapper命名。例如,User实体类的映射文件名称就为 Usermapper.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为映射的根节点--><!-- mapper为映射的根节点,namespace指定Dao接口的完整类名mybatis会依据这个接口动态创建一个实现类去实现这个接口,而这个实现类是一个Mapper对象--><mapper namespace="com.itheima.pojo.User"><!--id ="接口中的方法名"parameterType="传入的参数类型"resultType = "返回实体类对象,使用包.类名"--><select id="findById" parameterType="int"resultType="com.itheima.pojo.User">select * from users where uid = #{id}</select></mapper>

配置完成后如图所示。

(3)编写测试类:在项目的src/test/java目录下创建Test包,在Test包下创建UserTest类,该类主要要用于程序测试。具体代码如下:

package Test;import com.itheima.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.Reader;public class UserTest {@Testpublic void userFindByIdTest() {//读取文件名String resources = "mybatis-config.xml";//创建流Reader reader = null;try {//读取mybatis-config.xml文件内容到reader对象中reader = Resources.getResourceAsReader(resources);} catch (IOException e) {e.printStackTrace();}//初始化mybatis数据库,创建SqlSessionFactory类的实例SqlSessionFactory sqlMapper = newSqlSessionFactoryBuilder().build(reader);//创建SqlSession实例SqlSession session = sqlMapper.openSession();//传入参数查询,返回结果User user = session.selectOne("findById", 1);//输出结果System.out.println(user.getUname());//关闭sessionsession.close();}}

配置图如下:

7.idea中数据库的连接

(1)首先,本次使用的idea 是社区版所以并不自带dabatase,即社区版本的IDEA没有直接的database供我们使用,我们需要下载安装一个Database Navigator插件。

2)install成功后,点击ok,然后进行restart.

(3)接着进行如下操作,详细步骤见截图: 找到并进入DB Browser

4)创建connection连接,输入连接数据库的相关信息

8.连接成功后,运行测试程序即可

实验结果:成功运行,并输出所要搜索的“张三”

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

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

相关文章

【NSX-T】10. 搭建NSX-T环境 —— 使用 BGP 配置 Tier-0 网关

目录 10.1 创建上行链路网段10.2 创建 Tier-0 网关&#xff08;1&#xff09;设置 Interface 信息&#xff08;2&#xff09;设置 BGP添加 BGP 邻居 &#xff08;3&#xff09;设置 BGP 路由重分发设置路由重新分发 10.3 连接 Tier-0 和 Tier-1 网关10.4 使用网络拓扑验证 Tier…

VLAN间的通讯---三层交换

一.三层交换 1.概念 使用三层交换技术实现VLAN间通信 三层交换二层交换 三层转发 2.基于CEF的MLS CEF是一种基于拓补转发的模型 转发信息库&#xff08;FIB&#xff09;临接关系表 转发信息库&#xff08;FIB&#xff09;可以理解为路由表 邻接关系表可以理解为MAC地址表…

Facebook广告系统结构

Facebook广告系统是一个复杂的大型系统&#xff0c;由多个组件和子系统相互配合工作&#xff0c;实现了广告的投放、拍卖、个性化推荐和效果评估等功能。下面小编讲讲Facebook广告系统的结构。 1、广告管理界面 广告管理界面是广告主与Facebook进行交互的入口&#xff0c;广告…

猿人学19题(原比赛平台)

这道题给我搞得有点懵了&#xff0c;我现在还没发现他到底要考察什么&#xff0c;这边我直接协商我的sessionid请求是直接就成功的。&#x1f602; 依旧是分析请求方式&#xff0c;抓包到返回数据的位置 现在可以知道这些数据是ajax返回的&#xff0c;请求的参数是page&#x…

Spark RDD、DataFrame、DataSet比较

在Spark的学习当中&#xff0c;RDD、DataFrame、DataSet可以说都是需要着重理解的专业名词概念。尤其是在涉及到数据结构的部分&#xff0c;理解清楚这三者的共性与区别&#xff0c;非常有必要。 RDD&#xff0c;作为Spark的核心数据抽象&#xff0c;是Spark当中不可或缺的存在…

C语言写的 mini版的 http 服务器 , 很详细

文章目录 效果展示整体架构流程技术细节完整代码 效果展示 例如&#xff1a;htpp://192.168.23.140/home.html -> 正确的请求格式 home.html 这个资源是放在我们服务器里面的 , 并不是随便访问的资源,当然我们可以放很多的资源进去. 整体架构流程 整个实现的流…

无心剑英译朱自清《匆匆》

匆匆 Vanished in Haste 朱自清 By Zhu Ziqing 燕子去了,有再来的时候;杨柳枯了,有再青的时候;桃花谢了,有再开的时候。但是,聪明的,你告诉我,我们的日子为什么一去不复返呢?——是有人偷了他们罢:那是谁?又藏在何处呢?是他们自己逃走了罢:现在又到了哪里呢? Sw…

如何使用Docker进行容器的备份和恢复

一 简介&#xff1a; 在使用Docker进行应用程序的容器化部署时&#xff0c;我们经常需要对容器进行备份和恢复操作。备份容器可以保证数据的安全性&#xff0c;而恢复操作可以帮助我们快速恢复出现问题的容器。本文将介绍如何使用Docker进行容器的备份和恢复&#xff0c;同时提…

Buck电源设计常见的一些问题(二)MOS管炸机问题

MOS管炸机问题 1.概述2.MOS管的相关参数3.过电压失效4.过电流失效5.静电放电和热失效1.概述 在我们做电源产品或者电机控制器时候,经常会坏MOS管。我相信90%以上的硬件工程师在职场生涯中都会遇到这类问题。然而这类问题也总是让人防不胜防。经常我们都会开玩笑的说,没烧过管…

【数据结构第 6 章 ④】- 用 C 语言实现图的深度优先搜索遍历和广度优先搜索遍历

目录 一、深度优先搜索 1.1 - 深度优先搜索遍历的过程 1.2 - 深度优先搜索遍历的算法实现 二、广度优先搜索 2.1 - 广度优先搜索遍历的过程 2.2 - 广度优先搜索遍历的算法实现 和树的遍历类似&#xff0c;图的遍历也是从图中某一顶点出发&#xff0c;按照某种方法对图中所…

壹基金瑞金东升社区儿童服务站上演“甜蜜冬日”亲子DIY蛋糕秀

12月9日上午&#xff0c;一场温情满溢的亲子DIY蛋糕活动&#xff0c;在壹基金瑞金东升社区儿童服务站拉开了帷幕&#xff0c;空气里有香甜的奶油味道&#xff0c;浓浓的温馨气息感染着在场的每一个人。 自己动手做的&#xff0c;才有意义&#xff0c;蛋糕DIY是一项很好的亲子活…

想做游戏开发,我应该会点啥?

在知乎上&#xff0c;经常能看到类似“如何入门游戏开发”这样的问题&#xff0c;这篇文章&#xff0c;我试着概括性的对游戏开发所需要的技能做一个总结&#xff0c;希望大家对游戏开发能有一个基本的认识~ 游戏开发基础要求高么&#xff1f; 和其他程序猿一样&#xff0c;要…

前后端交互—开发一个完整的服务器

代码下载 初始化 新建 apiServer 文件夹作为项目根目录&#xff0c;并在项目根目录中运行如下的命令&#xff0c;初始化包管理配置文件: npm init -y运行如下的命令&#xff0c;安装 express、cors: npm i express cors在项目根目录中新建 app.js 作为整个项目的入口文件&a…

12V升18V4A同步升压恒压WT3210

12V升18V4A同步升压恒压WT3210 WT3210 是一款高功率密度的全集成同步升压转换器&#xff0c;内部集成的功率MOSFET管导通电阻为上管8mΩ和下管15mΩ。可为便携式系统提供空间小尺寸 解决方案。WT3210具有 2.7V 至 20V 的宽输入电压范围&#xff0c;应用在单节或两节锂电池的便携…

关于嵌入式开发的一些信息汇总:嵌入式C开发人员、嵌入式系统Linux

关于嵌入式开发的一些信息汇总&#xff1a;嵌入式C开发人员、嵌入式系统Linux 1 关于嵌入式 C 开发人员1.1 嵌入式 C 开发人员必须具备的一些基本技能是&#xff1a;1.2 嵌入式C开发的应用案例 2 如何学习用于嵌入式系统的 Linux2.1 如何学习Linux2.1.1 第一步&#xff1a;创建…

漏刻有时百度地图API实战开发(12)(切片工具的使用、添加自定义图层TileLayer)

TileLayer向地图中添加自定义图层 var tileLayer new BMap.TileLayer();tileLayer.getTilesUrl function (tileCoord, zoom) {var x tileCoord.x;var y tileCoord.y;return images/tiles/ zoom /tile- x _ y .png;}var lockMap new BMap.MapType(lock_map, tileLaye…

【MySQL】MySQL 在 Centos 7环境安装教程

文章目录 1.卸载不要的环境2.检查系统安装包3.获取mysql官方yum源4.安装mysql yum 源&#xff0c;对比前后yum源5.安装mysql服务6.查看配置文件和数据存储位置7.启动服务和查看启动服务8.登录9.配置my.cnf 1.卸载不要的环境 先检查是否有mariadb存在 ps ajx |grep mariadb如果…

C语言定长数组 变长数组 柔性数组

C语言定长数组 变长数组 柔性数组 文章目录 C语言定长数组 变长数组 柔性数组1. 定长数组2. 变长数组3. 柔性数组3.1 结构体的大小3.2 柔性数组的使用 1. 定长数组 在C99标准之前&#xff0c;C语言在创建数组的时候&#xff0c;数组的大小只能使用常量&#xff0c;常量表达式来…

【EI会议征稿】第三届电子信息工程、大数据与计算机技术国际学术会议(EIBDCT 2024)

第三届电子信息工程、大数据与计算机技术国际学术会议&#xff08;EIBDCT 2024&#xff09; 2024 3rd International Conference on Electronic Information Engineering, Big Data and Computer Technology 第三届电子信息工程、大数据与计算机技术国际学术会议&#xff08;…

小狐狸GPT付费2.4.9弹窗版学习源码介绍

小狐狸GPT付费2.4.9弹窗版学习源码是一套基于GPT&#xff08;Generative Pre-trained Transformer&#xff09;模型的开源代码库&#xff0c;旨在帮助开发者快速构建和训练自己的语言模型。该源码集成了多个先进的自然语言处理技术&#xff0c;包括预训练、微调、对话生成等&am…