欧美free性护士vide0shd,老熟女,一区二区三区,久久久久夜夜夜精品国产,久久久久久综合网天天,欧美成人护士h版

首頁綜合 正文
目錄

柚子快報邀請碼778899分享:Mybatis的使用

柚子快報邀請碼778899分享:Mybatis的使用

http://yzkb.51969.com/

文章目錄

前言使用步驟1.創(chuàng)建項目2.導入依賴3.添加配置4.編寫實體類5.編寫mapper接口用注釋編寫sql語句用xml編寫sql語句

5.編寫測試類

前言

介紹一下mybatis的使用

使用步驟

1.創(chuàng)建項目

第一步:new一個新的工程 創(chuàng)建好的項目結構是這樣的

2.導入依賴

**在這里插入圖片描述</p><p>** 剛導入的pom.xml應該是這樣的 然后導入依賴包,需要什么依賴就去(https://mvnrepository.com/ )maven官網(wǎng)找想要的依賴。 測試mybatis用到的依賴如下

mysql

mysql-connector-java

8.0.28

org.mybatis

mybatis

3.5.9

junit

junit

4.13.2

test

org.projectlombok

lombok

1.18.26

3.添加配置

首先做一下mysql數(shù)據(jù)庫的相關配置 在resources下創(chuàng)建一個xml文件 里面的配置如下:

PUBLIC "-//mybatis.org//DTD Config 3.0//EN"

"http://mybatis.org/dtd/mybatis-3-config.dtd">

這里面幾個注意的點:

< setting name=“mapUnderscoreToCamelCase” value=“true”/>這個配置是開啟駝峰命名的,開啟這個配置后,如果數(shù)據(jù)庫表中的字段名和實體類中的屬性名符合駝峰映射的話,就不需要手動映射了。 MyBatis允許你在配置文件或代碼中啟用駝峰命名規(guī)則轉換,這樣它會自動將Java駝峰式命名的屬性名轉換成下劃線風格的數(shù)據(jù)庫字段名。例如,firstName會轉換成first_name。< property name=“url” value=“jdbc:mysql://localhost:3306/mybatis”/>這行配置用于指定連接數(shù)據(jù)庫的URL。這里的各個部分含義如下: jdbc:mysql://:這是JDBC驅動程序的協(xié)議頭,表明使用MySQL的JDBC驅動程序。 localhost:表示數(shù)據(jù)庫服務器的地址,這里的localhost意味著數(shù)據(jù)庫運行在同一臺機器上。 3306:這是MySQL默認的端口號,用于監(jiān)聽客戶端的連接請求。 mybatis:這是數(shù)據(jù)庫的名字,你將連接到這個特定的數(shù)據(jù)庫實例。 這里的配置指定了數(shù)據(jù)庫的URL、驅動程序、用戶名和密碼,這些都是建立數(shù)據(jù)庫連接所必需的信息。在實際應用中,你可能需要根據(jù)自己的數(shù)據(jù)庫環(huán)境調整這些值,比如更換localhost為實際的服務器IP,修改端口號,以及使用正確的數(shù)據(jù)庫名稱、用戶名和密碼。這一行是用來掃描指定包下的Mapper接口,以便MyBatis可以自動識別并加載這些接口對應的XML映射文件。

4.編寫實體類

如上面圖片所示: 在java包下創(chuàng)建一個公司域名的包,在這個包下創(chuàng)建一個domain的包,這個包就是裝實體類的包(一般公司都是domain包,這個包名不固定)

package com.itheima.domain;

import lombok.AllArgsConstructor;

import lombok.Data;

import lombok.NoArgsConstructor;

import java.time.LocalDate;

import java.time.LocalDateTime;

@Data

@NoArgsConstructor

@AllArgsConstructor

public class Emp {

private Integer id;

private String username;

private String password;

private String name;

private String gender;

private String image;

private String job;

//注意:這四個屬性跟數(shù)據(jù)表中的字段不一致

private LocalDate ed;

private Integer deptId;

private LocalDateTime createTime;

private LocalDateTime updateTime;

}

這里的字段要和數(shù)據(jù)庫表的字段一一對應,起名字不必和表字段一致,但要知道實體類中的屬性是什么意思。 還要注意使用的是lombok這個包(有些公司不讓用),只用lombok只需要加三個注釋就可以實現(xiàn)有參和無參構造函數(shù),get,set方法和equals的重寫 前提是pom.xml中有l(wèi)ombok包

5.編寫mapper接口

用注釋編寫sql語句

使用注釋增刪改查的注釋就是圖片上的注釋 注意:如果實體類名字和數(shù)據(jù)庫表中的名字不一樣,也不是按照駝峰命名,那么需要使用@result這個注釋表明。

用xml編寫sql語句

這里mapper層不需要寫注釋了, xml中的代碼如上。 namespace是mapper接口的全類名。注意語句標簽中的id要和接口中的方法名字一樣,reseltMap是解決名稱不一致的,type中寫的是實體類中的全類名。 用xml寫sql的好處是可以使用動態(tài)sql 演示代碼如下:

update emp

username = #{username},

password = #{password},

name = #{name},

gender = #{gender},

image = #{image},

job = #{job},

entrydate = #{ed},

dept_id = #{deptId},

create_time = #{createTime},

update_time = #{updateTime},

where id = #{id}

這是if的動態(tài)sql,主要是進行判斷的,符合條件的才進行sql查詢 set:set元素會檢查每個if語句中的條件。如果某個字段的值不為NULL,那么這個字段就會被包含在SET子句中。注意每個if語句的結尾都包含了逗號,這是因為set元素會自動移除最后一個字段后的逗號,以保證SQL語句的語法正確。

where元素的特點: 如果where元素內(nèi)的任何條件都不滿足,則整個where元素將被忽略,不會生成任何SQL。 如果where元素內(nèi)的第一個條件滿足,那么where元素會自動在生成的SQL中添加WHERE關鍵字。 where元素會移除它內(nèi)部條件語句前的AND或OR關鍵字,以防止SQL語法錯誤。 代碼如下:

foreach

在這個例子中,collection屬性設置為list,意味著傳入的參數(shù)應該是一個List。item屬性定義了一個變量item,用于表示List中的每個元素。open和close屬性用于生成括號包圍IN子句,而separator屬性則指定了元素之間的逗號分隔符。 注意: 這個寫sql的xml要放在resources,而且路徑名字和上面的mapper接口名字一樣 起包名要注意/的使用

5.編寫測試類

編寫測試類要在test/java下建包。 最好寫一個util工具類 如果調用sql用這個工具類就好。 代碼如下:

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 java.io.InputStream;

public class MybatisUtil {

private static SqlSessionFactory sqlSessionFactory = null;

//保證SqlSessionFactory僅僅創(chuàng)建一次

static {

try {

//讀取配置文件

InputStream stream = Resources.getResourceAsStream("SqlMapConfig.xml");

//創(chuàng)建SqlSessionFactory

sqlSessionFactory = new SqlSessionFactoryBuilder().build(stream);

} catch (Exception e) {

e.printStackTrace();

}

}

//獲取sqlSession

public static SqlSession getSqlSession() {

return sqlSessionFactory.openSession();

}

//提交事務 關閉sqlSession

public static void close(SqlSession sqlSession) {

if (sqlSession != null) {

//提交事務

sqlSession.commit();

//釋放資源

sqlSession.close();

}

}

}

接下來寫測試類就可以了 代碼如下:

import com.itheima.domain.Emp;

import com.itheima.mapper.EmpMapper;

import com.itheima.util.MybatisUtil;

import org.apache.ibatis.session.SqlSession;

import org.junit.Test;

import java.time.LocalDate;

public class EmpTest {

@Test

public void testFindById() {

SqlSession sqlSession = MybatisUtil.getSqlSession();

EmpMapper empMapper = sqlSession.getMapper(EmpMapper.class);

Emp emp = empMapper.findById(1);

System.out.println(emp);

MybatisUtil.close(sqlSession);

}

@Test

public void insertOne() {

SqlSession sqlSession = MybatisUtil.getSqlSession();

EmpMapper empMapper = sqlSession.getMapper(EmpMapper.class);

Emp emp = new Emp();

emp.setEd(LocalDate.of(2001,5,2));

empMapper.insertOne(emp.getEd());

MybatisUtil.close(sqlSession);

}

}

注意:要加上@Test這個注解,就可以測試了。。。

柚子快報邀請碼778899分享:Mybatis的使用

http://yzkb.51969.com/

好文鏈接

評論可見,查看隱藏內(nèi)容

本文內(nèi)容根據(jù)網(wǎng)絡資料整理,出于傳遞更多信息之目的,不代表金鑰匙跨境贊同其觀點和立場。

轉載請注明,如有侵權,聯(lián)系刪除。

本文鏈接:http://gantiao.com.cn/post/19285302.html

發(fā)布評論

您暫未設置收款碼

請在主題配置——文章設置里上傳

掃描二維碼手機訪問

文章目錄