mybatis對映檔案與介面繫結
阿新 • • 發佈:2022-04-10
對映檔案 ScoreMapper.xml
完整路徑: mybatis.ScoreMapper.xml
<?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"> <mapper namespace="mybatis_orm.ScoreMapper"> <select resultType="mybatis_orm.Score" id= "selectAllScore"> select * from score </select> </xml>
配置檔案 mybatis-config.xml
完整路徑: mybatis.mybatis-config.xml
<?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> <properties resource="mybatis/database.properties"/> <settings> <setting name="logImpl" value="LOG4J" /> </settings> <!-- 配置mybatis執行環境 --> <environments default="development"> <environment id="development"> <!--使用JDBC的事務管理 --> <transactionManager type="JDBC" /> <dataSource type="POOLED"> <property name="driver" value="${driver}" /> <!-- 連線資料庫的URL --> <property name="url" value="${url}" /> <property name="username" value="${username}" /> <property name="password" value="${password}" /> </dataSource> </environment> </environments> <!-- 將mapper檔案加入到配置檔案中 --> <mappers> <mapper resource="mybatis/ScoreMapper.xml"/> </mappers> </configuration>
要繫結的介面檔案 ScoreMapper2.java
完整路徑: mybatis_orm.ScoreMapper2.java
package mybatis_orm; import java.util.List;public interface ScoreMapper2 { public List<Score> selectAllScore(); }
測試程式碼
public class Application { public static void main(String[] args) throws IOException { InputStream config = Resources.getResourceAsStream("mybatis/mybatis-config.xml"); SqlSessionFactory ssf = new SqlSessionFactoryBuilder().build(config); SqlSession session = ssf.openSession(); ScoreMapper2 scoreMapper2 = session.getMapper(ScoreMapper2.class);
List<Score> resultList = scoreMapper2.selectAllScore();
}
以上就完成了對映檔案和xml檔案的對映,只要注意一下幾點
1 在配置檔案中,繫結的介面不需要加入mappers, 不然會報已處在的錯誤: mybatis_orm.ScoreMapper is already known to the MapperRegistry
就是說不需要寫 <package name="所在包名"/> ,package是用來掃描註解介面所在的包。mybatis是不允許重複掃描已存在的檔案。
2 繫結介面不一定就要和對映檔案xml同層目錄,對映檔案的namespace寫為繫結介面的完整路徑,此完整路徑為bin下的包路徑. 這樣就完成了對映檔案和介面的繫結
3 select.update等標籤的id應與介面的方法名相同,引數對應(mybatis傳遞引數的方式三種,基本資料型別,javabean,map),返回型別對應
如果對於單個引數,或者多個相同型別引數會採用基本資料型別。因為基本資料型別只能定義一個,不能定義多個。所以一般不採用。
map由於可讀性不高,所以也不採用。
使用POJO的方式是最常用的。