1. 程式人生 > 其它 >mybatis對映檔案與介面繫結

mybatis對映檔案與介面繫結

對映檔案 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的方式是最常用的。