Mybatis環境搭建

1、開發環境

IDE:IntelliJ IDEA 2022.2.1 (Ultimate Edition)

構建工具:maven 3.6.1

MySQL版本:MySQL 5.7

MyBatis版本:MyBatis 3.5.14

2、工程創建

創建一個Maven工程giser-java-mybatis-demo

基礎依賴如下:

    	<!-- 設置打包方式為jar --><packaging>jar</packaging><properties><maven.compiler.source>17</maven.compiler.source><maven.compiler.target>17</maven.compiler.target><project.build.sourceEncoding>UTF-8</project.build.sourceEncoding></properties><dependencies><!-- mybatis --><dependency><groupId>org.mybatis</groupId><artifactId>mybatis</artifactId><version>3.5.14</version></dependency><!-- mysql驅動 --><dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId><version>8.0.33</version></dependency><!-- junit --><dependency><groupId>junit</groupId><artifactId>junit</artifactId><version>4.13.2</version><scope>test</scope></dependency><!-- log4j日志 --><dependency><groupId>log4j</groupId><artifactId>log4j</artifactId><version>1.2.17</version></dependency></dependencies>

3、配置文件

主要用來配置數據庫連接環境及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"><!--核心配置文件中的標簽必須按照固定的順序:properties?,settings?,typeAliases?,typeHandlers?,objectFactory?,objectWrapperFactory?,reflectorFactory?,plugins?,environments?,databaseIdProvider?,mappers?--><configuration><!--引入properties文件,此時就可以${屬性名}的方式訪問屬性值--><properties resource="jdbc.properties"></properties><typeAliases><!--typeAlias:設置某個具體的類型的別名屬性:type:需要設置別名的類型的全類名alias:設置此類型的別名,若不設置此屬性,該類型擁有默認的別名,即類名且不區分大小寫若設置此屬性,此時該類型的別名只能使用alias所設置的值--><!--<typeAlias type="com.giser.mybatis.bean.User"></typeAlias>--><!--<typeAlias type="com.giser.mybatis.bean.User" alias="abc"></typeAlias>--><!--以包為單位,設置改包下所有的類型都擁有默認的別名,即類名且不區分大小寫--><package name="com.giser.pojo"/></typeAliases><!--environments:設置多個連接數據庫的環境屬性: default:設置默認使用的環境的id--><environments default="dev"><!--設置連接數據庫的環境屬性:id:設置環境的唯一標識,可通過environments標簽中的default設置某一個環境的id,表示默認使用的環境--><environment id="dev"><!--transactionManager:設置事務管理方式屬性:type:設置事務管理方式,type="JDBC|MANAGED"type="JDBC":設置當前環境的事務管理都必須手動處理type="MANAGED":設置事務被管理,例如spring中的AOP--><transactionManager type="JDBC"/><!--dataSource:設置數據源屬性:type:設置數據源的類型,type="POOLED|UNPOOLED|JNDI"type="POOLED":使用數據庫連接池,即會將創建的連接進行緩存,下次使用可以從緩存中直接獲取,不需要重新創建type="UNPOOLED":不使用數據庫連接池,即每次使用連接都需要重新創建type="JNDI":調用上下文中的數據源--><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><!--加載sql映射文件--><!--<mapper resource="mappers/UserMapper.xml"/>--><!--Mapper代理方式--><!--以包為單位,將包下所有的映射文件引入核心配置文件注意:此方式必須保證mapper接口和mapper映射文件必須在相同的包下--><package name="com.giser.mapper"/></mappers></configuration>

數據庫配置文件jdbc.properties

    jdbc.driver=com.mysql.cj.jdbc.Driverjdbc.url=jdbc:mysql://localhost:3306/db_mybatisjdbc.username=rootjdbc.password=root

4、創建Mapper接口及映射文件

映射文件命名規則一般為表所對應的實體類的類名+Mapper.xml

例如:表t_user,映射的實體類為User,所對應的映射文件為UserMapper.xml

注意: 接口文件和映射文件一般放在相同路徑下,如接口在java文件的com.giser.mapper包路徑下,其對應的xml文件在resources文件的相同路徑下,即com.giser.mapper路徑下。

創建資源文件多級路徑,路徑之間用/分割;創建java文件多級包路徑,路徑之間用.分割

  • UserMapper.java接口文件
/*** @author giserDev* @description* @date 2023-11-25 00:03:10*/public interface UserMapper {/*** 查詢用戶信息*/User selectUser();/*** 查詢用戶信息*/List<User> selectUserList();}
  • 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.giser.mapper.UserMapper"><select id="selectUser" resultType="com.giser.pojo.user.User">select * from t_user where id = '1';</select><select id="selectUserList" resultType="com.giser.pojo.user.User">select * from t_user</select></mapper>

5、功能測試

    package com.giser.mapper;import com.giser.pojo.user.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;import java.util.List;/*** @author giserDev* @description* @date 2023-11-25 00:19:54*/public class UserMapperTest {@Testpublic void testUserMapper() throws Exception {// 加載核心配置文件InputStream is = Resources.getResourceAsStream("mybatis-config.xml");// 創建SqlSessionFactoryBuilderSqlSessionFactoryBuilder sqlSessionFactoryBuilder = new SqlSessionFactoryBuilder();// 創建SqlSessionFactorySqlSessionFactory sqlSessionFactory = sqlSessionFactoryBuilder.build(is);// 創建SqlSession//        SqlSession sqlSession = sqlSessionFactory.openSession();// 自動提交SqlSession sqlSession = sqlSessionFactory.openSession(true);UserMapper userMapper = sqlSession.getMapper(UserMapper.class);/*        User user = userMapper.selectUser();System.out.println(user);*/List<User> userList = userMapper.selectUserList();System.out.println(userList);}}

6、日志功能

  • 基礎依賴
    <!-- log4j日志 --><dependency><groupId>log4j</groupId><artifactId>log4j</artifactId><version>1.2.17</version></dependency>
  • 詳細配置

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>
  • 日志信息
      DEBUG 12-09 18:05:47,530 ==>  Preparing: select * from t_user (BaseJdbcLogger.java:135) DEBUG 12-09 18:05:47,531 ==> Parameters:  (BaseJdbcLogger.java:135) DEBUG 12-09 18:05:47,755 <==      Total: 7 (BaseJdbcLogger.java:135) 

7、配置文件模板

在IntelliJ IDEA中,通過File-Settings或通過快捷鍵Ctrl+Alt+S打開Settings面板,在Editor-File and Code Templates界面,在Files頁簽添加文件模板,設置Name、Extension,并將文件模板內容粘貼到內容框即可。
在這里插入圖片描述

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/211632.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/211632.shtml
英文地址,請注明出處:http://en.pswp.cn/news/211632.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

【Python】pip命令及使用

PIP命令 下面是一個整理成表格的pip命令及使用的示例&#xff1a; 命令使用示例說明pip install <package>pip install requests安裝名為"requests"的包pip uninstall <package>pip uninstall requests卸載名為"requests"的包pip listpip li…

用友U8 Cloud 多處反序列化RCE漏洞復現

0x01 產品簡介 用友U8 Cloud是用友推出的新一代云ERP,主要聚焦成長型、創新型企業,提供企業級云ERP整體解決方案。 0x02 漏洞概述 用友U8 Cloud存在多處(TableInputOperServlet、LoginServlet 、FileTransportServlet、CacheInvokeServlet、ActionHandlerServlet、Servle…

12.9每日一題(備戰藍橋杯循環結構)

12.9每日一題&#xff08;備戰藍橋杯循環結構&#xff09; 題目 2165: 求平均年齡題目描述輸入輸出樣例輸入樣例輸出來源/分類 題解 2165: 求平均年齡題目 2166: 均值題目描述輸入輸出樣例輸入樣例輸出來源/分類 題解 2166: 均值題目 2167: 求整數的和與均值題目描述輸入輸出樣…

GB/T 43212-2023 竹炭板檢測

竹炭塑復合板是指以竹炭粉為主要原料&#xff0c;與塑料及其他助劑復配混合&#xff0c;經熔融擠出或模壓成型等工藝制成的板材。 GB/T 43212-2023 竹炭板測試&#xff1a; 測試項目 測試方法 外觀 GB/T 43212 尺寸 GB/T 19367 含水率 GB/T 17657 密度 GB/T 17657 吸…

【rabbitMQ】springboot整合rabbitMQ模擬簡單收發消息

目錄 1.創建項目和模塊 2.添加rabbitMQ依賴 3.啟動rabbitMQ服務 4.引入rabbitMQ服務端信息 5.通過單元測試模擬業務發送消息 6. 接收消息 1.創建項目和模塊 2.添加rabbitMQ依賴 <!-- rabbitmq依賴--> <dependency> <groupId>org.sp…

JavaEE 09 鎖策略

1.鎖策略 1.1 樂觀鎖與悲觀鎖 其實前三個鎖是同一種鎖,只是站在不同的角度上去進行描述,此處的樂觀與悲觀其實是指在預測的角度上看會發生鎖競爭的概率大小,概率大的則是悲觀鎖,概率小的則是樂觀鎖 樂觀鎖在加鎖的時候就會做較少的事情,加鎖的速度較快,但是消耗的cpu資源等也會…

排序算法-選擇/堆排序(C語言)

1基本思想&#xff1a; 每一次從待排序的數據元素中選出最小&#xff08;或最大&#xff09;的一個元素&#xff0c;存放在序列的起始位置&#xff0c;直到全部待排序的 數據元素排完 。 2 直接選擇排序: 在元素集合 array[i]--array[n-1] 中選擇關鍵碼最大 ( 小 ) 的數據元素…

PHP基礎 - 數組遍歷與排序

介紹 在PHP中,數組遍歷和排序是常見的操作,用于對數組中的元素進行訪問和排序 數組遍歷 1)數值數組的遍歷 使用 foreach 循環遍歷數組:foreach 循環是最常用的遍歷數組的方法,它可以遍歷索引數組和關聯數組。例如:$fruits = array("apple", "banana&q…

AG1KLPQ48 User Manual

1.&#xff09;軟件安裝&#xff1a; 解壓縮或執行安裝文件&#xff0c;安裝 Supra 軟件。執行文件為 bin 目錄中的 Supra.exe。 運行 Supra&#xff0c;選擇菜單 File -> Import license&#xff0c;選擇 license 文件并導入 License。 2.&#xff09;新建項目&#xff1a;…

Python與CAD系列高級篇(二十一)批量將橫向文本改豎向

0 簡述 本篇介紹以下功能開發:一次性選擇所有橫向文本并批量修改為豎向。 1 需求 需求: ① 用戶在cad中交互式選擇所有需要修改方向的文本。 ② 將所有文本方向由橫向改為豎向。 2 代碼實現 代碼實現: import win32com.client as win32 import pythoncomdef vtpnt(x, y, …

Elaticsearch 學習筆記

文章目錄 Elaticsearch 學習筆記一、什么是 Elaticsearch &#xff1f;二、Elaticsearch 安裝1 es 安裝2 問題解決3 數據格式 三、索引操作1 PUT 請求&#xff1a;在postman中&#xff0c;向 ES 服務器發 PUT 請求&#xff08;PUT請求相當于創建的意思&#xff09;2 GET 請求&a…

Base64編碼解碼

一、Base64編碼技術簡介 Base64編碼是一種廣泛應用于網絡傳輸和數據存儲的編碼方式。它將原始數據轉換為可打印的字符形式&#xff0c;以便于傳輸和存儲。Base64編碼后的數據長度是原始數據長度的約3/4&#xff0c;具有一定的壓縮效果。 Base64編碼解碼 -- 一個覆蓋廣泛主題工…

【trino權威指南】使用trino詳解:trino client安裝、查詢sql、DBeaver連接trino、java通過JDBC連接trino

文章目錄 一. Trino CLI1. 安裝client2. 使用client執行sql 二. JDBC driver 連接Trino1. 通過DBeaver用戶界面連接2. JDBC Driver in java2.1. 環境配置2.2. 注冊和配置driver2.3. 連接參數2.4. 查詢例子 一. Trino CLI 1. 安裝client Trino CLI提供了一個基于終端的交互式s…

上海交通大學生存手冊PDF

強烈推薦所有大學生去閱讀《上海交通大學生存手冊》。雖然它可能有些冗長&#xff0c;但非常重要&#xff0c;因為它道出了大學教育的本質。 如果幾年前我能夠看到這本書&#xff0c;也許我的大學生活會有所不同。現在我將向正在上大學或者將要上大學的你推薦這本書。 無論你…

通過虛擬機安裝Open5GS 和UERANSIM記錄

目錄 wsl虛擬環境嘗試失敗 step1 安裝wsl: step2下載Ubuntu 20.04.6 LTS: step3升級wsl&#xff1a; step4生成用戶: step5 linux下安裝軟件需要的鏡像&#xff1a; step6 安裝圖形界面xfce和瀏覽器&#xff1a; step6 安裝chrome virtual box安裝ubuntu step7&#xf…

AWS攻略——Peering連接VPC

文章目錄 創建IP/CIDR不覆蓋的VPC創建VPC創建子網創建密鑰對創建EC2 創建Peering接受Peering邀請修改各個VPC的路由表修改美東us-east-1 pulic subnet的路由修改悉尼ap-southeast-2路由 測試知識點 我們回顧下《AWS攻略——VPC初識》中的知識&#xff1a; 一個VPC只能設置在一…

Android引用SDK包實現高德地圖展示

一、準備工作 注冊高德地圖開放平臺 注冊過程我就不多說了&#xff0c;挺簡單的&#xff0c;需要登錄&#xff0c;然后注冊成為開發者&#xff0c;還需要支付寶認證、手機號碼驗證、郵箱驗證挺多的&#xff0c;但是速度很快。基本上隨時驗證隨時注冊成功。新建應用新建…

在C語言中,%d,%c,%f都是什么意思

printf函數調用的一般形式 printf函數是一個標準庫函數&#xff0c;它的函數原型在頭文件“stdio.h”中。但作為一個特例&#xff0c;不要求在使用 printf 函數之前必須包含stdio.h文件。printf函數調用的一般形式為&#xff1a; printf(“格式控制字符串”&#xff0c;輸出表列…

重點車輛安全監測預警技術方案

目錄 1.系統架構 2.詳細設計 2.1駕駛員信息監控 2.1.1駕駛員基本信息管理 2.1.2人車匹配信息 2.1.3駕駛員在線狀態管理 2.2車輛狀態信息管理 2.2.1車輛信息管理 2.1.2車輛在路狀態管理 2.3重點車輛安全監測預警系統云平臺 2.3.1云平臺需求分析 2.3.2 設計思想 2.4.…

urllib 異常、cookie、handler及代理(四)

目錄 一、urllib異常 二、urllib cookie登錄 三、urllib handler 處理器的基本使用 四、urllib 代理和代理池 參考 一、urllib異常 URLError/HTTPError 簡介&#xff1a; 1.HTTPError類是URLError類的子類 2.導入的包urllib.error.HTTPError urllib.error.URLError 3.h…