日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

mybatis 依赖于jdbc_优于jdbc的mybatis框架入门

發(fā)布時間:2024/9/27 编程问答 34 豆豆
生活随笔 收集整理的這篇文章主要介紹了 mybatis 依赖于jdbc_优于jdbc的mybatis框架入门 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

1.什么是mybatis?

MyBatis 是支持普通 SQL 查詢,存儲過程和高級映射的優(yōu)秀持久層框架。 MyBatis 消除了幾乎所有的 JDBC 代碼和參數(shù)的手工設置以及對結果集的檢索。?MyBatis 可以使用簡單的XML 或注解用于配置和原始映射,將接口和 Java 的 POJO( Plain Old Java Objects,普通的Java 對象)映射成數(shù)據(jù)庫中的記錄.

1)MyBATIS 目前提供了三種語言實現(xiàn)的版本,包括:Java、.NET以及Ruby。(我主要學習java,就講java的使用)

2)它提供的持久層框架包括SQL Maps和Data Access Objects(DAO)。

3)mybatis與hibernate的對比?

mybatis提供一種“半自動化”的ORM實現(xiàn)。

這里的“半自動化”,是相對Hibernate等提供了全面的數(shù)據(jù)庫封裝機制的“全自動化”O(jiān)RM實現(xiàn)而言,“全自動”O(jiān)RM實現(xiàn)了POJO和數(shù)據(jù)庫表之間的映射,以及 SQL 的自動生成和執(zhí)行。

而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的配置文件(它也加載關聯(lián)的映射文件)

Reader conf =Resources.getResourceAsReader(resource);//構建sqlSession的工廠

SqlSessionFactory sessionFactory = newSqlSessionFactoryBuilder().build(conf);//創(chuàng)建能執(zhí)行映射文件中sql的sqlSession

SqlSession session =sessionFactory.openSession();/*** 映射sql的標識字符串,

* mybatis.CityMapper是CityMapper.xml文件中mapper標簽的namespace屬性的值,

* selectCityByCountryCode是select標簽的id屬性值,通過select標簽的id屬性值就可以找到要執(zhí)行的SQL*/String statement= "mybatis.CityMapper.selectCityByCountryCode";//映射sql的標識字符串//執(zhí)行查詢返回一個唯一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的配置文件(它也加載關聯(lián)的映射文件)

Reader conf =Resources.getResourceAsReader(resource);//構建sqlSession的工廠

SqlSessionFactory sessionFactory = newSqlSessionFactoryBuilder().build(conf);//創(chuàng)建能執(zhí)行映射文件中sql的sqlSession

SqlSession session =sessionFactory.openSession();

CityInterface cityInter= session.getMapper(CityInterface.class);

City city= cityInter.selectCityByCountryCode("ANT");

System.out.println(city);

}

}

========================================================================================

實現(xiàn)數(shù)據(jù)的增刪改查:

前面已經(jīng)講到用接口的方式編程。如果不一致就會出錯,這一章主要在上一講基于接口編程的基礎上完成如下事情:

1. 用 mybatis 查詢數(shù)據(jù),包括列表

2. 用 mybatis 增加數(shù)據(jù)

3. 用 mybatis 更新數(shù)據(jù).

4. 用 mybatis 刪除數(shù)據(jù).

查詢數(shù)據(jù),前面已經(jīng)講過簡單的,主要看查詢出列表,也就是返回list, 在我們這個例子中也就是 List , 這種方式返回數(shù)據(jù),需要在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的配置文件(它也加載關聯(lián)的映射文件)

Reader conf =Resources.getResourceAsReader(resource);//構建sqlSession的工廠

SqlSessionFactory sessionFactory = newSqlSessionFactoryBuilder().build(conf);//創(chuàng)建能執(zhí)行映射文件中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框架入门的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 国产精品自拍偷拍视频 | 免费观看av网址 | 成人黄色视屏 | 调教丰满的已婚少妇在线观看 | 向日葵视频在线播放 | 久久精品影视 | 重囗味sm一区二区三区 | 国产裸体视频网站 | 日韩精品aaa | 欧美高清视频在线观看 | 超碰超碰超碰超碰超碰 | 少妇高潮一区二区三区 | 乱xxxxx普通话对白 | 一区二区三区四区中文字幕 | jizz精品| 欧美精品成人一区二区三区四区 | 婷婷综合在线观看 | 91porn破解版| 人妻精品一区一区三区蜜桃91 | 欧美日韩少妇精品 | 精品国产aⅴ一区二区三区四川人 | av一区二区三区四区 | 抖音视频在线观看 | 激情五月综合 | 在线看片国产 | 色妇av | 日本丰满大乳奶做爰 | 麻豆av一区二区三区在线观看 | 老公吃小头头视频免费观看 | 日本丰满熟妇hd | 国产精品探花一区二区在线观看 | 亚洲一二三级 | 国产精选av | 怡红院成人网 | 黄色免费网站在线看 | 中文字幕人妻一区二区三区 | 亚洲亚洲人成综合网络 | 91精品国产欧美一区二区成人 | 日韩区在线 | 国产一区二区中文字幕 | 久久久久久少妇 | 精品一区二区三区不卡 | 精品免费国产一区二区三区四区 | 美女扒开腿让人桶爽原神 | 日韩av不卡一区 | 欧美日韩在线视频免费播放 | 中文字幕成人一区 | 色欲亚洲Av无码精品天堂 | 麻豆av一区二区三区久久 | 欧美日韩在线视频一区二区三区 | 黄色激情四射 | 日本高清视频在线播放 | 国产又粗又猛又大爽 | 韩国三级中文字幕hd久久精品 | 88福利视频 | 色婷婷av在线 | 日韩一区欧美二区 | 欧美黄色激情视频 | h视频免费在线观看 | 可以看的毛片 | 四虎影视永久 | 人妻洗澡被强公日日澡 | 午夜久久福利 | 日韩精品一区二区亚洲av观看 | 亚洲天堂av一区二区三区 | 中文字幕第12页 | 亚洲在线网站 | 伊人网站 | 懂色av蜜臀av粉嫩av分享吧 | 久操视频在线免费观看 | 久久久国产免费 | 欧美在线视频免费观看 | 51吃瓜网今日吃瓜 | 97超碰免费在线观看 | www国产91 | 日本不卡二区 | 免费在线色 | 网站免费视频www | 91精品国产综合久久久蜜臀图片 | 自拍偷拍p | 麻豆视频免费网站 | 一级特黄特色的免费大片视频 | 免费午夜激情 | 男生c女生 | 日韩在线一级片 | 永久免费看成人av的动态图 | 国产一区二区三区在线观看视频 | 久久91亚洲精品中文字幕奶水 | 曰批视频在线观看 | 国产又黄又猛的视频 | 一区二区久久精品66国产精品 | 奇米影视第四色888 免费观看a毛片 | 最色网站 | 免费高清欧美大片在线观看 | 蜜臀av午夜精品 | 亚洲风情亚aⅴ在线发布 | 国产精品午夜电影 | 国产欧美日韩视频在线观看 | 日韩激情视频在线 |