Mybatis 持久層框架,數據訪問層 mybatis是一個優秀的基於java的持久層框架,它內部封裝了jdbc,使開發者只需要關註sql語句本身,而不需要花費精力去處理載入驅動,創建連接,創建statement等繁雜的過程,使用ORM思想實現了結果集的封裝 ORM:Object Relationa ...
Mybatis
持久層框架,數據訪問層
mybatis是一個優秀的基於java的持久層框架,它內部封裝了jdbc,使開發者只需要關註sql語句本身,而不需要花費精力去處理載入驅動,創建連接,創建statement等繁雜的過程,使用ORM思想實現了結果集的封裝
ORM:Object Relational Mappaging對象關係映射,就是把資料庫表和實體類及實體類的屬性對應起來,讓我們可以操作實體類就實現操作資料庫表
環境搭建註意事項:
mybatis的映射配置文件位置必須和dao介面的包結構相同
映射配置文件的mapper標簽namespace屬性的取值必須是dao介面的全限定類名
映射配置文件的操作配置(select),id屬性的取值必須是dao介面的方法名
好處:在開發中無需在寫dao的實現類,寫完介面我們的操作就結束了。剩下的功能將有mybatis為我們實現
mybatis的入門案列(不寫dao的實現類)
//1.讀取配置文件,目的:把配置文件,資料庫的信息讀取進來
//2.創建SqlSessionFactory工廠
//3.使用工廠生產SqlSession對象
//4.使用SqlSession創建Dao介面的代理對象
//5.使用代理對象執行方法
//6.釋放資源
public class MybatisTest {
public static void main(String[] args) throws IOException {
//1.讀取配置文件,目的:把配置文件,資料庫的信息讀取進來
InputStream in = Resources.getResourceAsStream("SqlMapConfig.xml");
//2.創建SqlSessionFactory工廠
SqlSessionFactoryBuilder builder = new SqlSessionFactoryBuilder();
SqlSessionFactory factory = builder.build(in);
//3.使用工廠生產SqlSession對象
SqlSession session = factory.openSession();
//4.使用SqlSession創建Dao介面的代理對象
IUserDao userDao = session.getMapper(IUserDao.class);
//5.使用代理對象執行方法
List<User> users = userDao.findAll();
for(User user:users){
System.out.println(user);
}
//6.釋放資源
session.close();
in.close();
}
}
運行報錯:log4j:ERROR setFile(null,true) call failed.FileNotFoundException (設備未就緒。)
修改一下log4j文件的路徑就好了
使用註解方式配置
public interface IUserDao {
@Select("select * from user")
List<User> findAll();
}
2.使用class屬性指定被註解的dao全限定類名
<mappers>
<mapper class="com.itheima.dao.IUserDao"/>
</mappers>