日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪(fǎng)問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) >

mybatis学习笔记(3)—数据库和bean名称不一样处理方案

發(fā)布時(shí)間:2025/3/20 39 豆豆
生活随笔 收集整理的這篇文章主要介紹了 mybatis学习笔记(3)—数据库和bean名称不一样处理方案 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
  • 之前寫(xiě)的mybatis對(duì)象的bean對(duì)象和數(shù)據(jù)庫(kù)的對(duì)象名稱(chēng)是對(duì)應(yīng)的,然而再實(shí)際開(kāi)發(fā)的過(guò)程有很多不一一對(duì)應(yīng)的情況。就需要解決。
    bean對(duì)象:
package com.test.bean; /** javabean 對(duì)象*/ public class order {private int id;private String no;private float price;public int getId() {return id;}public void setId(int id) {this.id = id;}public String getOrderNo() {return no;}public void setOrderNo(String orderNo) {this.no = orderNo;}public float getPrice() {return price;}public void setPrice(float price) {this.price = price;}@Overridepublic String toString() {return "Order [id=" id ", orderNo=" no ", price=" price "]";} }

而mysql的對(duì)象為

再xml中的配置為:

-<mapper namespace="ordermapper"><!-- 根據(jù)id查詢(xún)得到一個(gè)order對(duì)象,使用這個(gè)查詢(xún)是查詢(xún)不到我們想要的結(jié)果的,這主要是因?yàn)閷?shí)體類(lèi)的屬性名和數(shù)據(jù)庫(kù)的字段名對(duì)應(yīng)不上的原因,因此無(wú)法查詢(xún)出對(duì)應(yīng)的記錄 --><select resultType="com.test.bean.order" parameterType="int" id="getorderbyid">select * from orders where order_id=#{id} </select><!-- 第一種方法根據(jù)id查詢(xún)得到一個(gè)order對(duì)象,使用這個(gè)查詢(xún)是可以正常查詢(xún)到我們想要的結(jié)果的,這是因?yàn)槲覀儗⒉樵?xún)的字段名都起一個(gè)和實(shí)體類(lèi)屬性名相同的別名,這樣實(shí)體類(lèi)的屬性名和查詢(xún)結(jié)果中的字段名就可以一一對(duì)應(yīng)上 --><select resultType="com.test.bean.order" parameterType="int" id="getorderbyid2">select order_id id,order_no no,order_price price from orders where order_id=#{id} </select><select parameterType="int" id="getorderbymap" resultMap="orderResultMap">select * from orders where order_id=#{id} </select>-<resultMap id="orderResultMap" type="com.test.bean.order"><!-- 用id屬性來(lái)映射主鍵字段 --><id column="order_id" property="id"/><!-- 用result屬性來(lái)映射非主鍵字段 --><result column="order_no" property="no"/><result column="order_price" property="price"/></resultMap><!-- 查詢(xún)得到男性或女性的數(shù)量, 如果傳入的是0就女性否則是男性 --><select id="getUserCount" statementType="CALLABLE" parameterMap="getUserCountMap">CALL mybits.ges_user_count(?,?) </select><!--parameterMap.put("sexid", 0);parameterMap.put("usercount", -1); -->-<parameterMap id="getUserCountMap" type="java.util.Map"><parameter property="sexid" jdbcType="INTEGER" mode="IN"/><parameter property="usercount" jdbcType="INTEGER" mode="OUT"/></parameterMap></mapper>

test實(shí)例(先封裝一下)

import java.io.InputStream;import org.apache.ibatis.session.SqlSession; import org.apache.ibatis.session.SqlSessionFactory; import org.apache.ibatis.session.SqlSessionFactoryBuilder;public class returnsqlsession {public static SqlSessionFactory getSqlSessionFactory(){String resource="conf.xml";InputStream in=returnsqlsession.class.getClassLoader().getResourceAsStream(resource);SqlSessionFactory factory=new SqlSessionFactoryBuilder().build(in);return factory;}public static SqlSession getSqlSession(){//返回sqlsessionreturn getSqlSessionFactory().openSession(); }/*** 獲取SqlSession* @param isAutoCommit * true 表示創(chuàng)建的SqlSession對(duì)象在執(zhí)行完SQL之后會(huì)自動(dòng)提交事務(wù)* false 表示創(chuàng)建的SqlSession對(duì)象在執(zhí)行完SQL之后不會(huì)自動(dòng)提交事務(wù),這時(shí)就需要我們手動(dòng)調(diào)用sqlSession.commit()提交事務(wù)* @return SqlSession*/public static SqlSession getSqlSession(boolean isAutoCommit) {return getSqlSessionFactory().openSession(isAutoCommit);} } import java.io.IOException; import java.util.HashMap; import java.util.Map;import org.apache.ibatis.session.SqlSession;import com.test.bean.order;public class test1 {public static void testselect1() throws IOException{SqlSession sqlsession=returnsqlsession.getsqlsession(true);//String statement="ordermapper.getorderbyid1";//String statement="ordermapper.getorderbyid2";String statement="ordermapper.getorderbymap";order order=sqlsession.selectOne(statement, 2);sqlsession.close();System.out.println(order);}public static void main(String[] args) throws IOException {// TODO Auto-generated method stubtestselect1(); } }

兩種基本的解決方式,如果用到的較少,可以選擇第一種,如果用到較多較復(fù)雜,可以選擇第二種。

總結(jié)

以上是生活随笔為你收集整理的mybatis学习笔记(3)—数据库和bean名称不一样处理方案的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

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