第二章 第一個Mybatis程式
阿新 • • 發佈:2020-08-26
思路:
搭建環境--->匯入Mybatis--->編寫程式碼----->測試
1.搭建環境
2.建立專案
-
新建一個普通Maven專案
-
匯入Maven依賴
<dependencies> <!--mysql驅動--> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <
-
建立模組
-
編寫mybatis的核心配置檔案
<?xml version="1.0" encoding="UTF-8"
-
-
編寫mybatis工具類
package com.utils; 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.IOException; import java.io.InputStream; //sqlSessionFactory -->sqlSessioin public class MybatisUtils { private static SqlSessionFactory sqlSessionFactory; static { try { //獲取sqlSessionFactory物件 String resource = "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 getSqlSession(){ return sqlSessionFactory.openSession(); } }
-
編寫程式碼
-
實現類
package com.pojo; public class User { private int id; private String name; private String pwd; @Override public String toString() { return "User{" + "id=" + id + ", name='" + name + '\'' + ", pwd='" + 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; } }
-
DAO介面
public interface UserDao { List<User> getUserList(); }
-
介面實現類 由原來的UserDaoImpl轉變為一個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/Mapper介面--> <mapper namespace="com.dao.UserDao"> <select id="getUserList" resultType="com.pojo.User"> select * from mybatis.user </select> </mapper>
-
-
-
-
測試
注意點:org.apache.ibatis.binding.BindingException: Type interface com.dao.UserDao is not known to the MapperRegistry.
public void test(){ //第一步:獲得SqlSession物件 SqlSession sqlSession = MybatisUtils.getSqlSession(); //方式一:執行SQL UserDao userDao = sqlSession.getMapper(UserDao.class); List<User> userList = userDao.getUserList(); for (User user : userList) { System.out.println(user); } //關閉SqlSession sqlSession.close(); }
-
配置檔案沒有註冊
-
繫結介面錯誤
-
方法名不對
-
返回型別不對
-