Java String StringBuffer StringBuilder 效率測試
阿新 • • 發佈:2021-07-13
思路:搭建環境->匯入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&useUnicode=true&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>