亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

Java之MyBatis入門詳解

 更新時間:2022年12月21日 11:49:45   作者:MinggeQingchun  
這篇文章主要介紹了Java之MyBatis入門詳解,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教

一、三層架構

Java中的三層架構指

1、界面層(User Interface layer;表示層,視圖層):接受用戶的數(shù)據,顯示請求的處理結果。使用 web 頁面或者手機 app和 用戶交互

2、業(yè)務邏輯層(Business Logic Layer):接收表示傳遞過來的數(shù)據,檢查數(shù)據,計算業(yè)務邏輯,調用數(shù)據訪問層獲取數(shù)據

3、數(shù)據訪問層(Data access layer):與數(shù)據庫打交道;主要實現(xiàn)對數(shù)據的增、刪、改、查。將存儲在數(shù)據庫中的數(shù)據提交 給業(yè)務層,同時將業(yè)務層處理的數(shù)據保存到數(shù)據庫

(1)三層對應的包

界面層: controller包 (servlet)

業(yè)務邏輯層: service 包(XXService類)

數(shù)據訪問層: dao包(XXDao類)

(2)三層中類的交互

用戶使用界面層----> 業(yè)務邏輯層----->數(shù)據訪問層(持久層)---->數(shù)據庫(MySQL,Oracle等)

(3)三層對應的處理框架

界面層---servlet---springmvc(框架)

業(yè)務邏輯層---service類--spring(框架)

數(shù)據訪問層---dao類--mybatis(框架)

(4)使用三層架構有點

【1】結構清晰、耦合度低, 各層分工明確

【2】可維護性高,可擴展性高

【3】有利于標準化

【4】開發(fā)人員可以只關注整個結構中的其中某一層的功能實現(xiàn)

【5】有利于各層邏輯的復用

(5)缺點

【1】降低了系統(tǒng)的性能。如果不采用分層式結構,很多業(yè)務可以直接造訪數(shù)據庫,以此獲取相應的數(shù)據,三層架構必須通過中間層來完成

【2】導致級聯(lián)的修改。如果在表示層中需要增加一個功能,為保證其設計符合分層式結構,可能需要在相應的業(yè)務邏輯層和數(shù)據訪問層中都增加相應的代碼

  • 框架( Framework )是構成一類特定軟件可復用設計的一組相互協(xié)作的類??蚣芤?guī)定了你的應用的體系結構。
  • 它定義了整體結構,類和對象的分割,各部分的主要責任,類和對象怎么協(xié)作,以及控制流程。
  • 框架預定義了這些設計參數(shù),以便于應用設計者或實現(xiàn)者能集中精力于應用本身的特定細節(jié)

二、MyBatis

1、官方簡介

MyBatis官網中文

MyBatis在GitHub地址

  • MyBatis 是一款優(yōu)秀的持久層框架,它支持自定義 SQL、存儲過程以及高級映射。
  • MyBatis 免除了幾乎所有的 JDBC 代碼以及設置參數(shù)和獲取結果集的工作。
  • MyBatis 可以通過簡單的 XML 或注解來配置和映射原始類型、接口和 Java POJO(Plain Old Java Objects,普通老式 Java 對象)為數(shù)據庫中的記錄

java bean,pojo,vo,entity,domain可參考

2、百度基本信息

  • MyBatis 本是 apache 的一個開源項目 iBatis, 2010 年這個項目由 apache software foundation 遷 移到了 google code,并且改名為 MyBatis 。
  • 2013 年 11 月遷移到 Github。 iBATIS 一詞來源于“internet”和“abatis”的組合,是一個基于 Java 的持久層框架。
  • iBATIS 提供的 持久層框架包括 SQL Maps 和 Data Access Objects(DAOs)

3、JDBC

JDBC代碼如下

  • (1)注冊驅動
  • (2)獲取連接
  • (3)獲取數(shù)據庫操作對象
  • (4)執(zhí)行SQL語句
  • (5)處理查詢結果集
  • (6)釋放資源

這些導致

  • (1)代碼比較多,開發(fā)效率低
  • (2)需要關注 Connection ,Statement, ResultSet 對象創(chuàng)建和銷毀
  • (3)對 ResultSet 查詢的結果,需要自己封裝為 List
  • (4)重復的代碼比較多些
  • (5)業(yè)務代碼和數(shù)據庫的操作混在一起
        String driver = "com.mysql.cj.jdbc.Driver";
        String url = "jdbc:mysql://127.0.0.1:3306/mydb";
        String user = "root";
        String pwd = "123456";
 
        Connection conn = null;
        Statement stmt = null;
        ResultSet rs = null;
 
        try {
            //1、注冊驅動(連接的數(shù)據庫)
            Class.forName(driver);
 
            //2、獲取連接
            conn = DriverManager.getConnection(url,user,pwd);
 
            //3、獲取數(shù)據庫操作對象(專門執(zhí)行sql語句的對象)
            stmt = conn.createStatement();
 
            //4、執(zhí)行SQL語句(DQL DML....)
            String sql = "select empno,empname as name,sal from emp2 where empno=7369";
            rs = stmt.executeQuery(sql);
 
            //5、處理查詢結果集(只有當?shù)谒牟綀?zhí)行的是select語句的時候,才有處理查詢結果集)
            while (rs.next()){
                /*
                (1)下標取值;下標從 1 開始
                */
                String empno = rs.getString(1);
                String empname = rs.getString(2);
                String sal = rs.getString(3);
                System.out.println(empno + " " + empname + " " + sal);
 
                /*
                (2)數(shù)據類型取值
                */
                int empno1 = rs.getInt(1);
                String empname1 = rs.getString(2);
                Double sal1 = rs.getDouble(3);
                System.out.println(empno1 + " " + empname1 + " " + sal1);
 
                /*
                (3)字段名取值
                */
                String empno2 = rs.getString("empno");
                //如果執(zhí)行的SQL語句中有別名,需要使用別名字段取值
                String empname2 = rs.getString("name");
                String sal2 = rs.getString("sal");
                System.out.println(empno2 + " " + empname2 + " " + sal2);
            }
        } catch (ClassNotFoundException e) {
            e.printStackTrace();
        } catch (SQLException throwables) {
            throwables.printStackTrace();
        } finally {
            //6、釋放資源;從小到大關閉
            if (rs != null) {
                try {
                    rs.close();
                } catch (SQLException throwables) {
                    throwables.printStackTrace();
                }
            }
            if (stmt != null) {
                try {
                    stmt.close();
                } catch (SQLException throwables) {
                    throwables.printStackTrace();
                }
            }
            if (conn != null) {
                try {
                    conn.close();
                } catch (SQLException throwables) {
                    throwables.printStackTrace();
                }
            }
        }

MyBatis 是一個基于 java 的持久層ORM( Object Relational Mapping,對象關系映射)框架,內部封裝了 jdbc,開發(fā)者只需要關注 sql 語句 本身,而不需要處理加載驅動、創(chuàng)建連接、創(chuàng)建 statement、關閉連接,資源等繁雜的過程。

MyBatis 通過 xml 或注解兩種方式將要執(zhí)行的各種 sql 語句配置起來,并通過 java 對象和 sql 的 動態(tài)參數(shù)進行映射生成最終執(zhí)行的 sql 語句,最后由 mybatis 框架執(zhí)行 sql 并將結果映射為 java 對象并返回

mybatis是 MyBatis SQL Mapper Framework for Java (sql映射框架)

(1)sql mapper:sql映射

把數(shù)據庫表中的一行數(shù)據  映射為 一個java對象

一行數(shù)據可以看做是一個java對象;操作這個對象,就相當于操作表中的數(shù)據

(2)Data Access Objects(DAOs):數(shù)據訪問 , 對數(shù)據庫執(zhí)行增刪改查

MyBatis框架

【1】提供了創(chuàng)建和銷毀、關閉Connection ,Statement, ResultSet等對象能力

【2】提供了執(zhí)行sql語句的能力

【3】提供了循環(huán)sql, 把sql的結果轉為java對象, List集合的能力

三、MyBatis入門SqlSession

首先以SqlSession的方式使用mybatis框架

首先我們先設置一下maven的本地倉庫

1、新建一個數(shù)據庫,以及一張表user

CREATE TABLE `user` (
  `user_id` int(10) NOT NULL COMMENT '用戶名ID',
  `user_name` varchar(100) DEFAULT NULL COMMENT '用戶名',
  `email` varchar(80) DEFAULT NULL COMMENT '用戶郵箱',
  `age` int(5) DEFAULT NULL COMMENT '年齡',
  PRIMARY KEY (`user_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

2、創(chuàng)建maven的普通Java工程,加入maven的mybatis坐標,mysql驅動坐標

其中,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.mycompany</groupId>
  <artifactId>mybatis-1</artifactId>
  <version>1.0.0</version>
 
  <properties>
    <!-- 項目構建使用的編碼,避免中文亂碼 -->
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    <!-- 源碼編譯 jdk 版本 -->
    <maven.compiler.source>1.8</maven.compiler.source>
    <!-- 運行代碼的 jdk 版本 -->
    <maven.compiler.target>1.8</maven.compiler.target>
  </properties>
 
  <dependencies>
    <!-- 單元測試依賴 -->
    <dependency>
      <groupId>junit</groupId>
      <artifactId>junit</artifactId>
      <version>4.11</version>
      <scope>test</scope>
    </dependency>
 
    <!--mybatis依賴-->
    <dependency>
      <groupId>org.mybatis</groupId>
      <artifactId>mybatis</artifactId>
      <version>3.5.1</version>
    </dependency>
 
    <!--mysql驅動-->
    <dependency>
      <groupId>mysql</groupId>
      <artifactId>mysql-connector-java</artifactId>
      <version>5.1.9</version>
    </dependency>
 
  </dependencies>
 
  <build>
    <resources>
      <resource>
        <directory>src/main/java</directory><!--所在的目錄-->
        <includes><!--包括目錄下的.properties,.xml 文件都會掃描到-->
          <include>**/*.properties</include>
          <include>**/*.xml</include>
        </includes>
        <!-- filtering 選項 false 不啟用過濾器, *.property 已經起到過濾的作用了 -->
        <filtering>false</filtering>
      </resource>
    </resources>
  </build>
 
</project>

3、創(chuàng)建Java實體類User--保存表中的一行數(shù)據

package com.mycompany.domain;
 
public class User {
    private int userId;
    private String userName;
    private String email;
    private int age;
 
    public int getUserId() {
        return userId;
    }
 
    public void setUserId(int userId) {
        this.userId = userId;
    }
 
    public String getUserName() {
        return userName;
    }
 
    public void setUserName(String userName) {
        this.userName = userName;
    }
 
    public String getEmail() {
        return email;
    }
 
    public void setEmail(String email) {
        this.email = email;
    }
 
    public int getAge() {
        return age;
    }
 
    public void setAge(int age) {
        this.age = age;
    }
}

4、創(chuàng)建持久層的dao接口,定義操作數(shù)據庫的方法

package com.mycompany.dao;
 
import com.mycompany.domain.User;
 
import java.util.List;
 
public interface UserDao {
    /**
     * 查詢user列表
     * @param user 單個user用戶
     * @return user的list
     */
    List<User> selectUserList(User user);
 
    /**
     * 插入user
     * @param user
     * @return
     */
    int insertUser(User user);
}

5、創(chuàng)建一個mybatis使用的配置文件 SQL映射文件

編寫SQL語句,一般一個表對應一個SQL映射文件,這個文件就是xml文件

sql映射文件(sql mapper):編寫SQL語句,mybatis負責執(zhí)行這些SQL語句

1.指定約束文件

<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" ?"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
  • mybatis-3-mapper.dtd:約束文件名稱

2.約束文件作用:限制,檢查當前文件中出現(xiàn)的標簽,屬性必須符合mybatis的要求

3.<mapper>:當前文件根標簽(必須的)

  • namesace:命名空間(唯一值,自定義字符串;要求使用dao接口的全限定名稱)
  • 全限定類名:就是類名全稱,帶包路徑的用點隔開,如: java.lang.String
  • 即全限定名 = 包名 + 類型
  • 非限定類名也叫短名,就是我們平時說的類名,不帶包的,如:String

4.數(shù)據庫增刪改查特定標簽

  • <select>:查詢,select語句
  • <update>:更新,update語句
  • <insert>:插入,insert語句
  • <delete>:刪除,delete語句
<?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">
 
<!--
    sql映射文件(sql mapper):編寫SQL語句,mybatis負責執(zhí)行這些SQL語句
    1、指定約束文件
    <!DOCTYPE mapper
        PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
        "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
     mybatis-3-mapper.dtd:約束文件名稱
    2、約束文件作用:限制,檢查當前文件中出現(xiàn)的標簽,屬性必須符合mybatis的要求
    3、<mapper>:當前文件根標簽(必須的)
       namespace:命名空間(唯一值,自定義字符串;要求使用dao接口的全限定名稱)
       全限定類名:就是類名全稱,帶包路徑的用點隔開,如: java.lang.String
          即全限定名 = 包名 + 類型
       非限定類名也叫短名,就是我們平時說的類名,不帶包的,如:String
    4、數(shù)據庫增刪改查特定標簽
       <select>:查詢,select語句
       <update>:更新,update語句
       <insert>:插入,insert語句
       <delete>:刪除,delete語句
-->
 
<mapper namespace="com.mycompany.dao.UserDao">
 
    <!--
        <select>標簽:查詢操作
        id:執(zhí)行SQL語法的唯一標識,mybatis會根據這個id的值來找到要執(zhí)行的SQL語句
            可以自定義,一般要求使用接口中的方法名稱
        resultType:表示結果類型,SQL語句執(zhí)行后得到ResultSet結果集,遍歷這個結果集得到的Java對象類型
            值寫Java對象的全限定名稱
    -->
    <select id="selectUserList" resultType="com.mycompany.domain.User">
        select user_Id,user_Name,email,age
        from user
        order by user_Id asc
    </select>
 
    <!--插入操作,字段名和Java實體類中字段保持一致-->
    <insert id="insertUser">
        insert into user values(#{userId},#{userName},#{email},#{age})
    </insert>
 
</mapper>

6、創(chuàng)建mybatis的主配置文件 一個項目一個主配置文件

主配置文件提供了數(shù)據庫的連接信息和SQL映射文件的位置信息

<?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">
 
<!--
    mybatis的主配置文件:主要定義了數(shù)據庫的配置信息,SQL映射文件的位置
    1、約束文件
        <!DOCTYPE configuration
            PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
            "http://mybatis.org/dtd/mybatis-3-config.dtd">
        mybatis-3-config.dtd:約束文件名稱
    2、configuration:根標簽
-->
<configuration>
 
    <!-- settings:mybatis全局行為 -->
    <settings>
        <!-- 設置mybatis輸出日志 -->
        <setting name="logImpl" value="STDOUT_LOGGING" />
    </settings>
 
    <!--
        環(huán)境配置:數(shù)據庫的連接信息
            default:必須和某個environment的id值一樣
            告訴mybatis使用哪個數(shù)據庫的連接信息(訪問哪個數(shù)據庫)
    -->
    <environments default="development">
 
        <!--
            environment:一個數(shù)據庫的配置,環(huán)境
            id:一個唯一值(可自定義,表示環(huán)境的名稱)
         -->
        <environment id="development">
            <!--
                transactionManaer:mybatis的事務類型
                    type:JDBC(表示使用JDBC中的Connection對象的commit,rollback做事務處理)
            -->
            <transactionManager type="JDBC"/>
            <!--
                dataSource:表示數(shù)據源,連接數(shù)據庫的
                    type:表述數(shù)據源的類型,POOLED表示使用連接池
            -->
            <dataSource type="POOLED">
                <!--
                   driver, user, username, password 是固定的,不能自定義。
                -->
                <!-- 數(shù)據庫驅動類名 -->
                <property name="driver" value="com.mysql.jdbc.Driver"/>
                <!-- 連接數(shù)據庫的URL字符串 -->
                <property name="url" value="jdbc:mysql://localhost:3306/ssm"/>
                <!-- 訪問數(shù)據庫的用戶名 -->
                <property name="username" value="root"/>
                <!-- 訪問數(shù)據庫的密碼 -->
                <property name="password" value="123456"/>
            </dataSource>
        </environment>
 
        <!--表示線上的數(shù)據庫,是項目真實使用的庫-->
        <environment id="online">
            <transactionManager type="JDBC"/>
            <dataSource type="POOLED">
                <property name="driver" value="com.mysql.jdbc.Driver"/>
                <property name="url" value="jdbc:mysql://localhost:3306/onlinedb"/>
                <property name="username" value="root"/>
                <property name="password" value="123456"/>
            </dataSource>
        </environment>
 
    </environments>
 
    <!-- sql mapper(SQL映射文件)的位置 -->
    <mappers>
        <!--
            一個mapper標簽指定一個文件的位置
                從類路徑開始的路徑信息(target/classes)類路徑
        -->
        <mapper resource="com/mycompany/dao/UserDao.xml"/>
    </mappers>
</configuration>

7、創(chuàng)建使用mybatis測試類(通過mybatis訪問數(shù)據庫)

public class TestMyBatis {
    /**
     * 查詢user列表
     */
    @Test
    public void testSelectUserList(){
        try {
            //訪問mybatis讀取user數(shù)據
            //1、定義mybatis主配置文件名稱,從類路徑的根開始(target/clasess)
            String config = "mybatis-config.xml";
            //2、讀取config表示的文件
            InputStream in = Resources.getResourceAsStream(config);
            //3、創(chuàng)建SqlSessionFactoryBuilder對象
            SqlSessionFactoryBuilder builder = new SqlSessionFactoryBuilder();
            //4、創(chuàng)建SqlSessionFactory對象
            SqlSessionFactory factory = builder.build(in);
            //5、獲取SqlSession對象,從SqlSessionFactory中獲取SqlSession(非自動提交事務,如果增刪改需要手動提交事務)
            SqlSession sqlSession = factory.openSession();
            //6、指定要執(zhí)行的SQL語句標識;sql映射文件中的 namespace + "." + 標簽的id值
            String sqlId = "com.mycompany.dao.UserDao.selectUserList";
            //7、執(zhí)行sql語句,通過sqlId找到語句
            List<User> userList = sqlSession.selectList(sqlId);
            //8、輸出結果
            for (User user:userList){
                System.out.println("查詢用戶="+user);
            }
            //9、關閉SQLSession對象
            sqlSession.close();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
 
    /**
     * 查詢user列表
     */
    @Test
    public void testMyBatisUtil(){
        try {
            SqlSession sqlSession = MyBatisUtil.getSqlSession();
            String sqlId = "com.mycompany.dao.UserDao.selectUserList";
            //7、執(zhí)行sql語句,通過sqlId找到語句
            List<User> userList = sqlSession.selectList(sqlId);
            //8、輸出結果
            for (User user:userList){
                System.out.println("查詢用戶="+user);
            }
            //9、關閉SQLSession對象
            sqlSession.close();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
 
    /**
     * 插入
     */
    @Test
    public void testInsertUser(){
        SqlSession sqlSession = null;
        try {
            sqlSession = MyBatisUtil.getSqlSession();
            String sqlId = "com.mycompany.dao.UserDao.insertUser";
            //7、執(zhí)行sql語句,通過sqlId找到語句
            User user = new User();
            user.setUserId(5);
            user.setUserName("zhangfei");
            user.setEmail("zangfei@163.com");
            user.setAge(16);
            int nums = sqlSession.insert(sqlId,user);
 
            //mybatis默認不是自動提交事務的, 所以在insert ,update ,delete后要手工提交事務
            sqlSession.commit();
 
            System.out.println("更新用戶條數(shù)="+nums);
 
            //9、關閉SQLSession對象
            sqlSession.close();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

 我們將SqlSession提取為工具類MyBatisUtil

public class MyBatisUtil {
    public MyBatisUtil() {
    }
 
    public static SqlSession getSqlSession() throws IOException {
        String config = "mybatis-config.xml";
        InputStream ins = Resources.getResourceAsStream(config);
        SqlSessionFactoryBuilder builder = new SqlSessionFactoryBuilder();
        SqlSessionFactory factory = builder.build(ins);
        SqlSession sqlSession = factory.openSession();
        return sqlSession;
    }
}

(1)Resources

mybatis中的一個類, 負責讀取主配置文件

//1、定義mybatis主配置文件名稱,從類路徑的根開始(target/clasess)
String config = "mybatis-config.xml";
 
//2、讀取config表示的文件
InputStream in = Resources.getResourceAsStream(config);

(2)SqlSessionFactoryBuilder :

創(chuàng)建SqlSessionFactory對象 

//3、創(chuàng)建SqlSessionFactoryBuilder對象
SqlSessionFactoryBuilder builder = new SqlSessionFactoryBuilder();
 
//4、創(chuàng)建SqlSessionFactory對象
SqlSessionFactory factory = builder.build(in);

(3)SqlSessionFactory

重量級對象, 程序創(chuàng)建一個對象耗時比較長,使用資源比較多;在整個項目中,有一個就夠用

  • SqlSessionFactory:接口 ,接口實現(xiàn)類: DefaultSqlSessionFactory
  • SqlSessionFactory作用:獲取SqlSession對象
SqlSession sqlSession = factory.openSession();

openSession()方法

【1】openSession() :無參數(shù)的, 獲取是非自動提交事務的SqlSession對象

【2】openSession(boolean):

  • openSession(true)  獲取自動提交事務的SqlSession
  • openSession(false)  非自動提交事務的SqlSession對象

(4)SqlSession

SqlSession接口 :定義了操作數(shù)據的方法

例如 selectOne() ,selectList() ,insert(),update(),delete(),commit(),rollback()

SqlSession接口的實現(xiàn)類DefaultSqlSession。

使用要求: SqlSession對象不是線程安全的,需要在方法內部使用, 在執(zhí)行sql語句之前,使用openSession()獲取SqlSession對象。

在執(zhí)行完sql語句后,需要關閉它,執(zhí)行SqlSession.close();這樣能保證他的使用是線程安全的

9、整個mybatis框架的maven模塊目錄如下

10、常見報錯問題

(1)找不到mybatis-config.xml文件或者對應的dao以及SQL映射文件

有如下三種解決方案

【1】clean一下,然后compile一下,會重新生成target目錄

【2】Rebuild Project,再重新運行,就會在target目錄下出現(xiàn)mybatis-config.xml文件

【3】以上兩種方式不行,直接手動將src/resources/mybatis-config.xml文件拷貝至target/classes目錄下

 (2)dao接口的 方法 和 dao.xml映射文件中的 id 要保持一致

 (3)數(shù)據庫表中的列名,要和Java實體類中的字段,dao.xml映射文件的屬性字段保持一致

11、 junit : 單元測試

  • junit:單元測試, 一個工具類庫,做測試方法使用的。
  • 單元:指定的是方法, 一個類中有很多方法,一個方法稱為單元

使用單元測試

(1)需要加入junit依賴

    <dependency>
      <groupId>junit</groupId>
      <artifactId>junit</artifactId>
      <version>4.11</version>
      <scope>test</scope>
    </dependency>

(2)創(chuàng)建測試類

src/test/java目錄中創(chuàng)建類

(3)創(chuàng)建測試方法

【1】public 方法

【2】沒有返回值 void 

【3】方法名稱自定義,建議名稱是test + 測試方法名稱

【4】方法沒有參數(shù)

【5】方法的上面加入 @Test ,方法可以單獨執(zhí)行;不用使用main方法

總結

以上為個人經驗,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關文章

  • 在Spring Boot中如何使用數(shù)據緩存

    在Spring Boot中如何使用數(shù)據緩存

    本篇文章主要介紹了在Spring Boot中如何使用數(shù)據緩存,具有一定的參考價值,有興趣的可以了解一下。
    2017-04-04
  • Spring源碼解析之推斷構造方法

    Spring源碼解析之推斷構造方法

    今天給大家?guī)淼氖顷P于Java的相關知識,文章圍繞著Spring推斷構造方法展開,文中有非常詳細的介紹及代碼示例,需要的朋友可以參考下
    2021-06-06
  • Jar打包用法詳解

    Jar打包用法詳解

    這篇文章主要介紹了Jar打包用法,詳解分析了jar打包命令的各種常見用法及參數(shù)含義,非常具有實用價值,需要的朋友可以參考下
    2014-12-12
  • SpringBoot多模塊打包部署Docker的項目實戰(zhàn)

    SpringBoot多模塊打包部署Docker的項目實戰(zhàn)

    本文通過介紹最常見的Maven管理的Spring Boot項目多模塊打包部署Docker來介紹一下項目部署過程中操作流程和幾個需要注意的點,具有一定的參加價值,感興趣的可以了解一下
    2023-08-08
  • Maven繼承與聚合詳解及作用介紹

    Maven繼承與聚合詳解及作用介紹

    繼承關系中,分為父模塊與子模塊,父模塊也被稱為 parent 模塊,子模塊會繼承父模塊的依賴,父模塊中也可以設置依賴管理器,供子模塊選擇是否需要某些依賴
    2022-08-08
  • java序列化對象根據不同配置動態(tài)改變屬性名的方法

    java序列化對象根據不同配置動態(tài)改變屬性名的方法

    本文主要介紹了java序列化對象根據不同配置動態(tài)改變屬性名的方法,文中通過示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-05-05
  • Java版給愛人表白的玫瑰花程序代碼

    Java版給愛人表白的玫瑰花程序代碼

    這篇文章主要講解了Java版給愛人表白的玫瑰花程序代碼,具有很好的參考價值,希望對大家有所幫助,一起跟隨小編過來看看吧
    2018-05-05
  • Spring?Boot實現(xiàn)WebSocket實時通信

    Spring?Boot實現(xiàn)WebSocket實時通信

    本文主要介紹了Spring?Boot實現(xiàn)WebSocket實時通信,包含實現(xiàn)實時消息傳遞和群發(fā)消息等功能,具有一定的參考價值,感興趣的可以了解一下
    2024-05-05
  • 基于Java生成圖片驗證碼的方法解析

    基于Java生成圖片驗證碼的方法解析

    這篇文章主要來為大家詳細介紹一下基于Java生成圖片驗證碼的具體方法,文中的示例代碼講解詳細,具有一定的借鑒價值,需要的可以參考一下
    2023-02-02
  • 使用多種方式實現(xiàn)遍歷HashMap的方法

    使用多種方式實現(xiàn)遍歷HashMap的方法

    下面小編就為大家?guī)硪黄褂枚喾N方式實現(xiàn)遍歷HashMap的方法。小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2016-05-05

最新評論