mybatis 依赖于jdbc_优于jdbc的mybatis框架入门
1.什么是mybatis?
MyBatis 是支持普通 SQL 查詢,存儲過程和高級映射的優秀持久層框架。 MyBatis 消除了幾乎所有的 JDBC 代碼和參數的手工設置以及對結果集的檢索。?MyBatis 可以使用簡單的XML 或注解用于配置和原始映射,將接口和 Java 的 POJO( Plain Old Java Objects,普通的Java 對象)映射成數據庫中的記錄.
1)MyBATIS 目前提供了三種語言實現的版本,包括:Java、.NET以及Ruby。(我主要學習java,就講java的使用)
2)它提供的持久層框架包括SQL Maps和Data Access Objects(DAO)。
3)mybatis與hibernate的對比?
mybatis提供一種“半自動化”的ORM實現。
這里的“半自動化”,是相對Hibernate等提供了全面的數據庫封裝機制的“全自動化”ORM實現而言,“全自動”ORM實現了POJO和數據庫表之間的映射,以及 SQL 的自動生成和執行。
而mybatis的著力點,則在于POJO與SQL之間的映射關系
2.結構目錄詳情:
3.設置配置文件如下:
/p>
"http://mybatis.org/dtd/mybatis-3-config.dtd">
4.建立對應的實體類:
packagemybatis;public classCity {public intID;publicString Name;publicString CountryCode;publicString District;public intPopulation;public intgetID() {returnID;
}public void setID(intiD) {
ID=iD;
}publicString getName() {returnName;
}public voidsetName(String name) {
Name=name;
}publicString getCountryCode() {returnCountryCode;
}public voidsetCountryCode(String countryCode) {
CountryCode=countryCode;
}publicString getDistrict() {returnDistrict;
}public voidsetDistrict(String district) {
District=district;
}public intgetPopulation() {returnPopulation;
}public void setPopulation(intpopulation) {
Population=population;
}
@OverridepublicString toString() {return "World [ID=" + ID + ", Name=" + Name + ", CountryCode="
+ CountryCode + ", District=" + District + ", Population="
+ Population + "]";
}
}
5.配置CityMapper.xml:
/p>
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
select * from city where CountryCode = #{CountryCode}
6.測試類進行測試:
packagemybatis;importjava.io.IOException;importjava.io.Reader;importorg.apache.ibatis.io.Resources;importorg.apache.ibatis.session.SqlSession;importorg.apache.ibatis.session.SqlSessionFactory;importorg.apache.ibatis.session.SqlSessionFactoryBuilder;public classMybatisDemo {public static void main(String[] args) throwsIOException {//mybatis的配置文件
String resource = "mybatis/Configuration.xml";//使用類加載器加載mybatis的配置文件(它也加載關聯的映射文件)
Reader conf =Resources.getResourceAsReader(resource);//構建sqlSession的工廠
SqlSessionFactory sessionFactory = newSqlSessionFactoryBuilder().build(conf);//創建能執行映射文件中sql的sqlSession
SqlSession session =sessionFactory.openSession();/*** 映射sql的標識字符串,
* mybatis.CityMapper是CityMapper.xml文件中mapper標簽的namespace屬性的值,
* selectCityByCountryCode是select標簽的id屬性值,通過select標簽的id屬性值就可以找到要執行的SQL*/String statement= "mybatis.CityMapper.selectCityByCountryCode";//映射sql的標識字符串//執行查詢返回一個唯一City對象的sql
City wo = session.selectOne(statement, "ANT");
System.out.println(wo);
}
}
=====================================================================================================
使用接口:
新建一個接口類,CityInterface
packageinter;importmybatis.City;public interfaceCityInterface {public abstractCity selectCityByCountryCode(String CountryCode);
}
此時需要修改CityMapper.xml中的namespace的值,namespace的值必須為對應的接口類的全路徑
select * from city where CountryCode = #{CountryCode}
修改測試類:
packagemybatis;importinter.CityInterface;importjava.io.IOException;importjava.io.Reader;importorg.apache.ibatis.io.Resources;importorg.apache.ibatis.session.SqlSession;importorg.apache.ibatis.session.SqlSessionFactory;importorg.apache.ibatis.session.SqlSessionFactoryBuilder;public classMybatisDemo {public static void main(String[] args) throwsIOException {//mybatis的配置文件
String resource = "mybatis/Configuration.xml";//使用類加載器加載mybatis的配置文件(它也加載關聯的映射文件)
Reader conf =Resources.getResourceAsReader(resource);//構建sqlSession的工廠
SqlSessionFactory sessionFactory = newSqlSessionFactoryBuilder().build(conf);//創建能執行映射文件中sql的sqlSession
SqlSession session =sessionFactory.openSession();
CityInterface cityInter= session.getMapper(CityInterface.class);
City city= cityInter.selectCityByCountryCode("ANT");
System.out.println(city);
}
}
========================================================================================
實現數據的增刪改查:
前面已經講到用接口的方式編程。如果不一致就會出錯,這一章主要在上一講基于接口編程的基礎上完成如下事情:
1. 用 mybatis 查詢數據,包括列表
2. 用 mybatis 增加數據
3. 用 mybatis 更新數據.
4. 用 mybatis 刪除數據.
查詢數據,前面已經講過簡單的,主要看查詢出列表,也就是返回list, 在我們這個例子中也就是 List , 這種方式返回數據,需要在CityMapper.xml 里面配置返回的類型 resultMap, 注意不是 resultType, 而這個resultMap 所對應的應該是我們自己配置的:
/p>
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
select * from city where CountryCode = #{CountryCode}
接口中增加方法返回類型是List的方法:
packageinter;importjava.util.List;importmybatis.City;public interfaceCityInterface {public abstract ListselectCityByCountryCode(String CountryCode);
}
修改測試類如下:
packagemybatis;importinter.CityInterface;importjava.io.IOException;importjava.io.Reader;importjava.util.List;importorg.apache.ibatis.io.Resources;importorg.apache.ibatis.session.SqlSession;importorg.apache.ibatis.session.SqlSessionFactory;importorg.apache.ibatis.session.SqlSessionFactoryBuilder;public classMybatisDemo {public static void main(String[] args) throwsIOException {//mybatis的配置文件
String resource = "mybatis/Configuration.xml";//使用類加載器加載mybatis的配置文件(它也加載關聯的映射文件)
Reader conf =Resources.getResourceAsReader(resource);//構建sqlSession的工廠
SqlSessionFactory sessionFactory = newSqlSessionFactoryBuilder().build(conf);//創建能執行映射文件中sql的sqlSession
SqlSession session =sessionFactory.openSession();
CityInterface cityInter= session.getMapper(CityInterface.class);
List city = cityInter.selectCityByCountryCode("AFG");//System.out.println(city.get(0));//System.out.println(city.get(1));//System.out.println(city.get(2));
for(City c : city){
System.out.println(c);
}
}
}
總結
以上是生活随笔為你收集整理的mybatis 依赖于jdbc_优于jdbc的mybatis框架入门的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: vue中input多选_vue实现下拉多
- 下一篇: Linux系统json文件打中文,如何在