1. 程式人生 > 其它 >Java String StringBuffer StringBuilder 效率測試

Java String StringBuffer StringBuilder 效率測試

思路:搭建環境->匯入mybatis-->編寫程式碼-->測試

1)搭建環境

搭建資料庫

CREATE DATABASE `mybatis`;
USE `mybatis`;
CREATE TABLE `user`(
  `id` INT(20) NOT NULL PRIMARY KEY,
  `name` VARCHAR(30) DEFAULT NULL,
  `pwd` VARCHAR(30) DEFAULT NULL
)ENGINE=INNODB DEFAULT CHARSET=utf8;

INSERT INTO `user`(`id`,`name`,`pwd`) VALUES
(1,'張三','123456'), (2,'李四','123459'), (3,'王五','123450')

2 )新建專案

2.1)新建普通maven專案

2.2刪除src目錄

2.3匯入依賴

<!--   匯入依賴 -->
    <dependencies>
<!--        mysql驅動-->
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <version>5.1.46</version>
        </dependency>
<!--        mybatis-->
        <dependency>
            <groupId>org.mybatis</groupId>
            <artifactId>mybatis</artifactId>
            <version>3.5.2</version>
        </dependency>
<!--        junit-->
        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <version>4.12</version>
        </dependency>
    </dependencies>

2.4建立核心模組

  • 編寫mybatis的核心配置檔案
<?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>
    <environments default="development">
        <environment id="development">
            <transactionManager type="JDBC"/>
            <dataSource type="POOLED">
                <property name="driver" value="com.mysql.jdbc.Driver"/>
                <property name="url" value="jdbc:mysql://localhost:3306/mybatis?useSSL=true&amp;useUnicode=true&amp;characterEncoding=UTF-8"/>
                <property name="username" value="root"/>
                <property name="password" value="123456"/>
            </dataSource>
        </environment>
    </environments>

</configuration>
  • 編寫mybatis的工具類
public class MybatisUtils {
    private static SqlSessionFactory sqlSessionFactory;
    static {
        try {
            // 使用mybatis第一步獲取sqlsessionFactory物件
            String resource = "org/mybatis/example/mybatis-config.xml";
            InputStream inputStream = Resources.getResourceAsStream(resource);
             sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
        } catch (IOException e) {
            e.printStackTrace();
        }
    }

    /*既然有了 SqlSessionFactory,顧名思義,我們可以從中獲得 SqlSession 的例項。
    SqlSession 提供了在資料庫執行 SQL 命令所需的所有方法。
    你可以通過 SqlSession 例項來直接執行已對映的 SQL 語句*/
    public static SqlSession getSqlSessio() {
        return  sqlSessionFactory.openSession();
    }



}

3 編寫程式碼

  • 實體類
    • package com.mine.pojo;
      
      public class User {
          private int id;
          private String name;
          private String pwd;
      
          public int getId() {
              return id;
          }
      
          public void setId(int id) {
              this.id = id;
          }
      
          public String getName() {
              return name;
          }
      
          public void setName(String name) {
              this.name = name;
          }
      
          public String getPwd() {
              return pwd;
          }
      
          public void setPwd(String pwd) {
              this.pwd = pwd;
          }
      
          @Override
          public String toString() {
              return "User{" +
                      "id=" + id +
                      ", name='" + name + '\'' +
                      ", pwd='" + pwd + '\'' +
                      '}';
          }
      }
  • 介面
    • package com.mine.dao;
      
      import com.mine.pojo.User;
      
      import java.util.List;
      
      public interface UserDao {
          List<User> getUserList();
      
      }
  • 介面實現類由原來的impl轉換為一個mapper配置檔案
<?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=繫結一個對應的dao介面/mapperjiekou -->
<!--這句話相當於原來的實現介面-->
<mapper namespace="com.mine.dao.UserDao">
<!--    查詢語句,id對應以前的方法名字-->
    <select id="getUserList" resultType="com.mine.pojo.User">
    select * from mybatis.user;
  </select>
</mapper>

4:測試

注意點:1)org.apache.ibatis.binding.BindingException: Type interface com.mine.dao.UserDao is not known to the MapperRegistry.

錯誤原因及解決方案

2)

錯誤原因及解決方案

maven預設查詢不是在我們自己寫的這裡,會被過濾掉

解決:pom.xml中新增如下程式碼

 <build>
        <resources>
            <resource>
                <directory>src/main/resources</directory>
                <includes>
                    <include>**/*.properties</include>
                    <include>**/*.xml</include>
                </includes>
                <filtering>true</filtering>
            </resource>
            <resource>
                <directory>src/main/java</directory>
                <includes>
                    <include>**/*.properties</include>
                    <include>**/*.xml</include>
                </includes>
                <filtering>true</filtering>
            </resource>
        </resources>
    </build>