日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区

您的位置:首頁技術(shù)文章
文章詳情頁

mybatis實現(xiàn)mapper代理模式的方式

瀏覽:108日期:2023-10-19 07:16:02

今晚繼續(xù)復(fù)習(xí)mybtis以根據(jù)id值查詢單條數(shù)據(jù)為例編寫SqlMapConfig.xml文件

<configuration> <!-- 使用mybatis需要的數(shù)據(jù)源和事務(wù)配置,后續(xù)如果整合spring之后,將不再需要 --> <environments default='development'> <!-- 配置數(shù)據(jù)源和事務(wù) --> <environment id='development'> <!-- 配置事務(wù)管理,將事務(wù)管理交給mybatis管理 --> <transactionManager type='JDBC' /> <!-- 配置數(shù)據(jù)源 --> <dataSource type='POOLED'> <property name = 'driver' value = 'com.mysql.jdbc.Driver' /> <property name='url' value='jdbc:mysql://localhost:3306/db_shop? useUnicode=true&amp;characterEncoding=utf-8'/> <property name='username' value='root'/> <property name='password' value=''/> </dataSource> </environment> </environments> <!-- 加載**.xml配置文件 --> <mappers> <mapper resource='product.xml'/></mappers> </configuration>

編寫失血模型對象:Product,最好字段名和數(shù)據(jù)庫里面的字段名一直

/**** <p>Title: Product</p> * <p>Description: 商品類失血模型</p> * @author Alon * @date 2020年9月27日 下午6:51:57 * @version 1.0 */ public class Product { private int p_id; private String name; private int p_number; private double price; private String add_time; public Product(int p_id, String name, int p_number, double price, String add_time) { super(); this.p_id = p_id; this.name = name; this.p_number = p_number; this.price = price; this.add_time = add_time; }public Product() { super(); } public int getP_id() {return p_id; } public void setP_id(int p_id) {this.p_id = p_id; }public String getName() { return name; } public void setName(String name) { this.name = name; } public int getP_number() {return p_number; } public void setP_number(int p_number) { this.p_number = p_number; } public double getPrice() { return price; } public void setPrice(double price) { this.price = price; } public String getAdd_time() { return add_time;}public void setAdd_time(String add_time) { this.add_time = add_time; }@Override public String toString() { return 'Product [p_id=' + p_id + ', name=' + name + ', p_number=' + p_number + ', price=' + price + ', add_time=' + add_time + ']'; } }

編寫單個映射關(guān)系的sql.xml:product.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'> <!-- 映射的sql文件 namespace:命名空間,可以理解成將部分的sql語句進行隔離。到后面的mapper代理方式將有更 加重要的作用 --> <mapper namespace='test'> <!--select:表示要執(zhí)行的查詢語句 id:給這個查詢語句取一個名字,唯一的,java中要調(diào)用的使用。 parameterType:輸入?yún)?shù)的數(shù)據(jù)類型 resultType:輸出參數(shù)的數(shù)據(jù)類型,一般綁定成model的對象 #{value}:表示用來和占位符一樣,用來接受輸入的參數(shù)值。 --> <select parameterType='java.lang.Integer' resultType='com.woniuxy.model.Product'> SELECT * FROM t_product WHERE p_id = #{value} </select> </mapper>

編寫java代碼進行測試執(zhí)行sql語句并得到結(jié)果

/**** <p>Title: MybatisDemo1</p> * <p>Description: 查詢數(shù)據(jù)的demo</p> * @author Alon * @date 2020年9月27日 下午7:05:32 * * @version 1.0 */ * public class MybatisDemo1 { * public static void main(String[] args) throws IOException { * new MybatisDemo1().queryById(); } * public void queryById() throws IOException { * //1、讀取到SqlMapConfig.xml文件的流 String path = 'SqlMapConfig.xml'; * InputStream config = Resources.getResourceAsStream(path);//創(chuàng)建會話工廠,同時將SqlMapConfig.xml里面的數(shù)據(jù)放到工廠中 SqlSessionFactory factory = new SqlSessionFactoryBuilder().build(config); //開啟會話 SqlSession sqlSession = factory.openSession(); /** 第一個參數(shù):要執(zhí)行哪個sql語句的參數(shù),一般命名空間.id值 * 第二個參數(shù):傳入填充#{value}的傳入?yún)?shù)值。 */ Object obj = sqlSession.selectOne('test.findById', 1); System.out.println(obj); } }

進行模糊查詢:查詢出多條結(jié)果集

<!-- 在原有的xml文件中進行配置即可,不需要新建,之前的也已經(jīng)在SqlMapConfig.xml文件中進行了配 置 --> <select parameterType='java.lang.String' resultType='com.woniuxy.model.Product'> SELECT * FROM t_product WHERE name like '%${value}%' </select> public void queryByName() throws Exception{ String path = 'SqlMapConfig.xml'; //獲取流對象 InputStream config = Resources.getResourceAsStream(path); //獲取會話工廠 SqlSessionFactory factory = new SqlSessionFactoryBuilder().build(config); //開啟會話 SqlSession sqlSession = factory.openSession(); /** 因為執(zhí)行結(jié)果有多條語句,那么必須使用selectList */ List<Object> list = sqlSession.selectList('test.queryByName', '旺仔'); //迭代 System.out.println(list); }

新增語句

<!-- 新增一條數(shù)據(jù) parameterType:傳入?yún)?shù)的數(shù)據(jù)類型,用失血模型對象即可。 --> <insert parameterType='com.woniuxy.model.Product'> INSERT INTO t_product(name,p_number,price) value(#{name},#{p_number},# {price}); </insert>

/****<p>Title: insert</p> *<p>Description: 新增數(shù)據(jù)</p> * @throws Exception * */ public void insert() throws Exception{ String path = 'SqlMapConfig.xml'; * //獲取流對象 * InputStream config = Resources.getResourceAsStream(path); //獲取會話工廠* SqlSessionFactory factory = new SqlSessionFactoryBuilder().build(config); * //開啟會話 * SqlSession sqlSession = factory.openSession();* Product prod = new Product();* prod.setName('雪碧'); * prod.setP_number(10); * prod.setPrice(3.0);* int row = sqlSession.insert('test.insertProduct', prod); System.out.println(row); sqlSession.commit(); sqlSession.close(); }

mapper代理的方式進行講解增、刪、改、查(重點)步驟1:創(chuàng)建對應(yīng)的Mapper接口,和之前的dao接口一致步驟2:編寫對應(yīng)的xxmapper.xml配置文件。有要求1)mapper標(biāo)簽里面的namespace:必須寫成對應(yīng)的Mapper接口的全路徑名2)sql語句里面的id:必須和接口中對應(yīng)方法的名稱一致。3)sql語句里面的parameterType:必須要和接口中方法的形式參數(shù)數(shù)據(jù)類型一致4)sql語句里面的resultType:必須和接口中方法的返回值數(shù)據(jù)類型一致步驟3:將編寫好的**mapper.xml文件在SqlMapConfig.xml文件中加載步驟4:編寫實現(xiàn)類,并在這里直接測試別名和mapper映射詳解設(shè)置別名在mybatis配置文件中,別名是一直存在的,實際上在框架中已經(jīng)存在一些默認(rèn)的別名。比如java.lang.String對應(yīng)的別名:String,java.lang.Integer對應(yīng)的別名:int在開發(fā)中,一般mapper.xml配置文件中的parameterType和resultType往往對應(yīng)的名稱需要寫上model的全路徑,而且還是多次被重復(fù)使用,可以選擇給該路徑取一個別名。用別名來替換比較復(fù)雜的全路徑名以掃描包的形式進行配置自定義的POJO類(重點)自定義POJO類,一般指的是高級查詢,在想要的數(shù)據(jù)和傳入的條件不再一張表中,通過表所創(chuàng)建的失血模型model已經(jīng)不能夠滿足傳入?yún)?shù)的需求了,這個時候,就需要使用自定義的POJO類因為一個失血模型已經(jīng)不能夠滿足查詢輸入?yún)?shù)的要求了,所以進行擴展,創(chuàng)建一個UserCustom類,里面包含user對象聲明和userInfo對象聲明

以上就是mybatis實現(xiàn)mapper代理模式的方式的詳細(xì)內(nèi)容,更多關(guān)于mybatis mapper代理模式的資料請關(guān)注好吧啦網(wǎng)其它相關(guān)文章!

標(biāo)簽: Mybatis 數(shù)據(jù)庫
相關(guān)文章:
日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区
一区二区精品伦理...| 国产一卡不卡| 成人国产精选| 中文在线中文资源| 91精品啪在线观看国产18| 亚洲综合在线电影| 亚洲一级高清| 亚洲一区欧美| 国产精选一区| 成人福利av| 四季av一区二区凹凸精品| 成人国产精品一区二区网站| 日韩欧美在线中字| 黄色亚洲在线| 亚洲精品日韩久久| 精品视频一区二区三区在线观看| 97精品国产一区二区三区 | 影院欧美亚洲| 日韩激情av在线| 91视频精品| 蜜臀av一区二区在线免费观看 | 久久国产精品美女| 99精品网站| 日本视频一区二区| 国产精品久久久久久模特| 日本午夜精品视频在线观看| 国产91一区| 在线日韩视频| 国产精品一区二区三区av麻| 老司机精品视频网| 国产精品嫩草99av在线| 精品一区二区三区免费看| 爽好多水快深点欧美视频| 国产一区二区三区四区大秀| 亚洲一区二区免费在线观看| 国产一二在线播放| 蜜桃久久久久久| 在线亚洲人成| 麻豆一区二区在线| 日本一区免费网站| 黄色av日韩| 日韩av首页| 成人台湾亚洲精品一区二区| 亚洲另类黄色| 好吊视频一区二区三区四区| 精品一区不卡| 国产精品66| 日本a级不卡| 一区二区日韩免费看| 九一国产精品| 在线成人动漫av| 日韩黄色大片| 福利精品在线| 精品三级av在线导航| 久久不见久久见免费视频7 | 久久精品xxxxx| 亚洲精品字幕| 日欧美一区二区| 日韩精品1区2区3区| 日韩久久99| 日本va欧美va欧美va精品| 男女激情视频一区| 蜜桃视频一区二区三区| 亚洲欧美一级| 性色av一区二区怡红| 麻豆精品91| 日本免费新一区视频| 国产日产精品一区二区三区四区的观看方式| 亚洲资源网站| 国产精品尤物| 日韩三区免费| 久久国产成人| 国产亚洲观看| 久久婷婷国产| 久久久久一区| 亚洲日韩视频| 久久成人高清| 色吊丝一区二区| 蜜桃视频第一区免费观看| 亚洲欧美网站在线观看| 日韩精品1区2区3区| 久久精品国内一区二区三区| 电影天堂国产精品| 蜜臀久久99精品久久久画质超高清| 日韩激情综合| www.九色在线| 99在线精品免费视频九九视| 日韩av在线免费观看不卡| 国产成人精品999在线观看| 欧美在线亚洲| 久久精品国产久精国产爱| 午夜精品婷婷| 欧美激情福利| 国产精品普通话对白| 欧美三区不卡| 欧美在线影院| а√天堂8资源中文在线| 亚洲精品进入| 蜜臀av免费一区二区三区| 国产精品久久亚洲不卡| 欧美网站在线| 国产盗摄——sm在线视频| 免费观看在线色综合| 中文字幕在线视频网站| 欧美影院精品| 日韩一区精品视频| 国产剧情一区| 另类激情亚洲| 亚洲二区在线| 久久中文字幕导航| 91成人精品观看| 日韩中文字幕一区二区三区| 欧美日韩国产v| 精品一区二区三区四区五区| 亚洲tv在线| 免费久久精品视频| 亚洲一区二区毛片| 免费精品国产| 激情欧美丁香| 激情偷拍久久| 国产一区日韩一区| 91精品蜜臀一区二区三区在线| 国产高潮在线| 人在线成免费视频| 国产精品第十页| 国产精品中文字幕亚洲欧美 | 国产高潮在线| 韩国女主播一区二区三区| 国产精品videosex极品| 国产精品黄网站| 麻豆一区二区99久久久久| 国产极品模特精品一二| 国产精品久久久久久久久久白浆| 欧美伊人久久| 久久99视频| 国产videos久久| 日韩一区二区中文| 日韩电影免费网站| 一本大道色婷婷在线| 国产主播一区| 久久av一区| 日欧美一区二区| 老司机精品视频网| 精品免费av在线| 视频一区二区欧美| 国产精品天天看天天狠| 麻豆视频在线看| 免播放器亚洲| 国产精品一区二区av交换| 精品欠久久久中文字幕加勒比| 亚洲爱爱视频| 日韩综合小视频| 韩日一区二区| 宅男噜噜噜66国产日韩在线观看| 婷婷久久免费视频| 亚洲成人一区在线观看| 婷婷久久免费视频| 成人va天堂| 国产精品免费99久久久| 日韩精品91| 国产欧美精品| 91久久中文| 国产一区二区精品久| 亚洲理论在线| 99久久精品网| 国产日韩视频在线| 免费观看在线色综合| av中文资源在线资源免费观看| 欧美精品激情| 91看片一区| 麻豆精品视频在线| 日本不卡不码高清免费观看 | 91高清一区| 超级白嫩亚洲国产第一| 国产精品一国产精品k频道56| 亚洲少妇诱惑| 欧美国产91| 亚洲精品.com| 日韩av片子| 久久国产视频网| 日韩精品一区二区三区中文在线| 久久久777| 久久精品欧美一区| 成年男女免费视频网站不卡| 国产精品久久久亚洲一区| 日韩有吗在线观看| 蜜桃一区二区三区在线观看| 亚洲欧美综合| 999久久久91| 成人精品中文字幕| 日韩伦理在线一区| а√在线中文在线新版| 欧美国产小视频| 日韩精品第一区| 高清久久一区| 少妇精品导航| 国产女优一区| 亚洲小说春色综合另类电影| 日韩一区精品字幕| 日欧美一区二区|