<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          LcbatisMybatis 增強(qiáng)工具

          聯(lián)合創(chuàng)作 · 2023-09-30 01:57

          lcbatis是mybatis的增強(qiáng)工具,在mybaits的基礎(chǔ)上真正實(shí)現(xiàn)零配置擴(kuò)展,對(duì)于一般的sql語(yǔ)句可以告別xml了。

          用法(零配置,超簡(jiǎn)單)

          1. 把根目錄那個(gè)Lcbatis.jar包下載下來(lái)導(dǎo)入到項(xiàng)目里面就OK了。 (重要:因?yàn)槲倚⌒⌒薷牧薽ybatis源代碼的幾個(gè)地方,所以Lcbatis.jar的導(dǎo)入的優(yōu)先級(jí)必須要高于mybaits.jar,如果你沒(méi)改過(guò)包名,默認(rèn)是優(yōu)先的)

          2. 獲取Service對(duì)象,Service service = Session.getService("表名");

          3. 執(zhí)行Service的方法,比如下面這句是根據(jù)主鍵id刪除行,service.deleteById(27);

          更多教程(可以將源代碼下載下來(lái)看test包里的案例)

          /* 執(zhí)行添加操作,參數(shù)是按順序傳遞
           * sql:insert into laocheng_demo (`s`,`i`,`cid`) values (#{s},#{i},#{cid})
           * param:abc(String), 1(Integer), 2(Integer)
           * return:自增的id
           */
          public void t1(){		
          	Service service = Session.getService("demo");			
          	int lastId=service.setData("abc",1,2).insert("s","i","cid");
          	System.out.println(lastId);
          }
          /* 執(zhí)行添加操作,參數(shù)是按map的key進(jìn)行匹配
           * sql:insert into laocheng_demo (`s`,`i`,`cid`) values (#{s},#{i},#{cid})
           * param:abcde(String), 1(Integer), 2(Integer)
           * return:自增的id
           */
          public void t2(){		
          	Service service = Session.getService("demo");	
          	HashMap<String, Object> map=new HashMap<>();
          	map.put("cid", 2);
          	map.put("i", 1);
          	map.put("s", "abcde");
          	int lastId=service.setData(map).insert("s","i","cid");
          	System.out.println(lastId);
          }
          /* 添加一個(gè)實(shí)體對(duì)象到數(shù)據(jù)庫(kù),參數(shù)自動(dòng)匹配“表的字段名”與“實(shí)體的屬性名”,匹配成功的屬性將提交到數(shù)據(jù)庫(kù)
           * sql:insert into laocheng_demo (`i`,`s`,`cid`) values (#{i},#{s},#{cid})
           * param:5(Integer), aaa(String), 45(Integer)
           * 自增id將自動(dòng)映射到實(shí)體屬性中(必須名字相同,類型也相同)
           */
          public void t3(){		
          	Service service = Session.getService("demo");	
          	Demo demo=new Demo();
          	demo.setI(5);	
          	demo.setS("aaa");
          	demo.setCid(45);
          	service.insert(demo);
          	Vardump.print(demo);//打印查看結(jié)果
          }
          /* 執(zhí)行刪除操作
           * sql:delete from laocheng_demo  where tid=#{tid}
           * param:1(Integer)
           */
          public void t4(){		
          	Service service = Session.getService("demo");	
          	//where("tid=1")也可以,但如果1是變量的話不建議使用字符串拼接,不安全容易被注入
          	service.where("`tid`=#{tid}").setData(1).delete();
          }
          /* 根據(jù)主鍵id執(zhí)行刪除操作
           * sql:delete from laocheng_demo where tid=#{tid}
           * param:27(Integer)
           */
          public void t5(){		
          	Service service = Session.getService("demo");
          	//直接傳主鍵id的值,程序會(huì)自動(dòng)獲取主鍵名并刪除行
          	service.deleteById(27);
          }
          /* 執(zhí)行修改操作,參數(shù)會(huì)按setData的順序讀取,條件參數(shù)要寫(xiě)在結(jié)尾,當(dāng)然如果你用參數(shù)改用hashmap,可以自動(dòng)匹配key的值,不需要考慮順序
           * sql:update laocheng_demo set `s`=#{s},`i`=#{i},`cid`=#{cid}  where tid=#{tid}
           * param:abc(String), 123(Integer), 456(Integer), 50(Integer)
           */
          public void t6(){		
          	Service service = Session.getService("demo");
          	//直接傳主鍵id的值,程序會(huì)自動(dòng)獲取主鍵名并刪除行
          	service.where("tid=#{tid}").setData("abc",123,456,50).update("s","i","cid");
          }
          /* 根據(jù)實(shí)體對(duì)象保存修改,系統(tǒng)會(huì)根據(jù)屬性自動(dòng)匹配主鍵以及被修改的字段名
           * sql:update laocheng_demo set `i`=#{i},`s`=#{s},`cid`=#{cid} where tid=#{tid}
           * param:5(Integer), aaa(String), 45(Integer), 50(Integer)
           */	
          public void t7(){		
          	Service service = Session.getService("demo");
          	Demo demo=new Demo();		
          	demo.setTid(50);//主鍵
          	demo.setI(5);	
          	demo.setS("aaa");
          	demo.setCid(45);
          	service.update(demo);
          }
          /* 拼裝sql查詢,除了執(zhí)行必須排在最后,其他順序不限制
           * sql:select cid,s from laocheng_demo  where tid>#{tid} and s=#{s}  order by tid desc  limit 0,10
           * param:50(Integer), afdfsd(String)
           */
          public void t8(){	
          	Service service = Session.getService("demo");
          	Object o=service.where("tid>#{tid} and s=#{s}")//設(shè)置條件
          		   .column("cid","s")//設(shè)置要查詢的字段
          		   .limit(0, 10)//取行數(shù),僅支持mysql
          		   .order("tid desc")//排序
          	       .setData(50,"afdfsd")//傳遞參數(shù)	
          	       .selectList();//返回一個(gè)list集合,適用于多條數(shù)據(jù)
          		 //.selectMap();//返回一個(gè)map,適用于一條數(shù)據(jù)
          		 //.selectOne(Demo.class);//返回一個(gè)實(shí)體對(duì)象
          		 //.selectCount();//返回行數(shù)	
          	Vardump.print(o);//打印查看結(jié)果
          }
          /* 對(duì)于復(fù)雜的sql,多表查詢,可以用sql()方法,但還是建議老老實(shí)實(shí)寫(xiě)xml,不然你不如用hibernate
           * sql:select * from laocheng_demo a,laocheng_demochild b  where a.cid=b.cid  order by a.tid desc  limit 0,10
           * param:50(Integer), afdfsd(String)
           */
          public void t9(){	
          	Service service = Session.getService("demo");
          	List<HashMap<String, Object>> list = service
          		   .sql("select * from laocheng_demo a,laocheng_demochild b")
          	       .where("a.cid=b.cid")//設(shè)置條件
          		   .limit(0, 10)//取行數(shù),僅支持mysql
          		   .order("a.tid desc")//排序
          	       .setData(50,"afdfsd")//傳遞參數(shù)	
          	       .selectList();//返回一個(gè)list集合,適用于多條數(shù)據(jù)	
          	Vardump.print(list);//打印查看結(jié)果
          }
          /*
           * 可以在數(shù)據(jù)源中配置下面兩個(gè)屬性
           * <property name="servicePackage" value="cn.lcfms.service.{table}Service"/>
           * <property name="tablePrefix" value="laocheng_"/>
           * servicePackage為你service所在的包為cn.lcfms.service以及service的命名規(guī)范為“表名+Service”
           * 
           * tablePrefix為表前綴
           * 沒(méi)配置了tablePrefix需要寫(xiě)表的完整名字Session.getService("laocheng_demo"),laocheng_demo是表名
           * 配置了tablePrefix可以簡(jiǎn)化為Session.getService("demo")
           * 
           * 這樣你就可以像下面這樣直接獲取service對(duì)象
           */
          @Test
          public void t10(){	
          	DemoService service = (DemoService) Session.getService("demo");
          	service.test1();
          	service.test2();
          }
          
          /*
           * 執(zhí)行分頁(yè)查詢
           * 目前只支持mysql數(shù)據(jù)庫(kù),如果是多表查詢,可以使用sql("sql語(yǔ)句").selectPage(10,7,request);
           * 可以單獨(dú)使用Page p=new Page(總記錄數(shù), 每頁(yè)行數(shù), 頁(yè)碼數(shù), request)來(lái)獲取分頁(yè)的頁(yè)碼
           * p.first()//首頁(yè)
           * p.end()//末頁(yè)
           * p.pagelist()//頁(yè)碼列表
           * p.count()//統(tǒng)計(jì)信息
           * p.nowpage()//當(dāng)前頁(yè)信息	
           * 
           */
          public void t11(HttpServletRequest request){
          	Map<String, Object> map=Session.getService("item")
          			.column("itemId")
          			.where("itemId>#{itemId}")
          			.setData(10)
          			.order("itemId desc")
          			.selectPage(10,7,request);		
          	Vardump.print(map);//推薦用來(lái)在后臺(tái)查看各種類型的數(shù)據(jù)		
          }
          瀏覽 24
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          編輯 分享
          舉報(bào)
          評(píng)論
          圖片
          表情
          推薦
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          編輯 分享
          舉報(bào)
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  色色五月天视频 | 国产免费大香蕉 | 中文字幕A V在线播放 | 日韩欧美国产成人电影 | 99成人视频免费观看 |