如何在Spring項(xiàng)目中使用Mybatis

warning:下面一切的內(nèi)容必需基于你的spring能正常使用秃励,不能使用的你還是先不要看氏仗。。莺治。zzz

一廓鞠、準(zhǔn)備工作##

  1. jar包下載
    mybatis-3.4.4.jar
    mybatis-spring-1.3.1.jar
    spring-jdbc-4.2.4.RELEASE.jar
    mysql-connector-Java-5.1.10.jar(由于我這里使用mysql為例)
    spring-tx-4.2.4.RELEASE.jar
  2. mysql建庫(kù)建表初始化數(shù)據(jù)
create database studentDB;
use studentDB;
create table student(id char(11) primary key,name varchar(30),age tinyint,sex char(1));
insert into student values('12014052074','xyh',21,'男');
insert into student values('1201405207x','xiaojiejie',18,'女');

二帚稠、定義bean類(lèi)和dao接口以及映射XML文件##

1谣旁、bean(student.java)

@Component//該處注解該bean為一個(gè)spring托管的bean
public class Student {
    private String id;
    private String name;
    private byte age;
    private String sex;
    public String getId() {
        return id;
    }
    public void setId(String id) {
        this.id = id;
    }
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
    public int getAge() {
        return age;
    }
    public void setAge(byte age) {
        this.age = age;
    }
    public String getSex() {
        return sex;
    }
    public void setSex(String sex) {
        this.sex = sex;
    }
    
}

2、 dao(studentDao.java)

public interface StudentDao {
    public int updateStudent(Student s);\\更新記錄接口方法
    public List<Student> getAllStudent();\\獲取所有表行記錄
}

3滋早、XML(studentDao.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"> 
<mapper namespace="com.xyh.dao.StudentDao">
    <update id="updateStudent" parameterType="com.xyh.beans.Student">
        update student set name=#{name},age=#{age},sex=#{sex} where id=#{id}
    </update>
    <resultMap type="com.xyh.beans.Student" id="students">
        <id column="id" property="id" jdbcType="CHAR"/>
        <result column="name" property="name" jdbcType="VARCHAR"/>
        <result column="age" property="age" jdbcType="TINYINT" />
        <result column="sex" property="sex" jdbcType="CHAR"/>
    </resultMap>
    <select id="getAllStudent" resultMap="students">
        select * from student
    </select>
</mapper>

mapper標(biāo)簽的namespace屬性為該映射文件對(duì)應(yīng)Dao接口類(lèi)榄审。
update標(biāo)簽用于更新操作,id屬性為對(duì)應(yīng)方法名杆麸,paramerType屬性為傳入方法的參數(shù)類(lèi)型搁进,標(biāo)簽體為操作sql,#{x}為傳入?yún)?shù)bean的x屬性昔头。
resultMap標(biāo)簽定義返回映射集饼问,由于select操作中返回的結(jié)果需要存儲(chǔ)為list集合,type屬性為集合中元素類(lèi)型揭斧,id標(biāo)簽對(duì)應(yīng)數(shù)據(jù)庫(kù)主鍵列莱革,column屬性為表中字段名,property為bean中屬性名,jdbcType為表字段類(lèi)型(注意:并不是與表中類(lèi)型名稱(chēng)都一樣)
select 標(biāo)簽用于查詢(xún)操作盅视,id屬性對(duì)應(yīng)方法名捐名,resultMap屬性為返回類(lèi)型,因?yàn)槭墙Y(jié)果集合闹击,使用前面定義的resultMap镶蹋。

4、mybatis.xml配置文件

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN" "http://mybatis.org/dtd/mybatis-3-config.dtd"> 
<configuration>
    <mappers>
        <mapper resource="com/xyh/dao/StudentDao.xml"/>
    </mappers>
</configuration>

引入定義的studentDao.xml文件

三赏半、配置spring.xml配置文件

1贺归、配置mysql數(shù)據(jù)源

<bean id="dataSource"                   class="org.springframework.jdbc.datasource.DriverManagerDataSource">
        <property name="driverClassName" value="com.mysql.jdbc.Driver"></property>
        <property name="url" value="jdbc:mysql://localhost:3306/newsDB?characterEncoding=UTF-8"></property>
        <property name="username" value="root"></property>
        <property name="password" value="12345"></property>
</bean>

2、配置會(huì)話(huà)工廠(chǎng)

<bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
            <property name="configLocation" value="classpath:MyBatis-Configuration.xml"></property>
            <property name="dataSource" ref="dataSource" />
</bean>

3断箫、配置studentDao

<bean id="studentDao" class="org.mybatis.spring.mapper.MapperFactoryBean">  
        <property name="mapperInterface" value="com.xyh.dao.StudentDao"></property>  
        <property name="sqlSessionFactory" ref="sqlSessionFactory"></property>  
    </bean> 

好了牧氮,該配置該定義該準(zhǔn)備的都完成了,讓我們來(lái)看看結(jié)果吧

四瑰枫、 test##

public class Main {

    public static void main(String[] args) {
        // TODO Auto-generated method stub
        ApplicationContext atc = new ClassPathXmlApplicationContext("spring.xml");
        Student s = (Student) atc.getBean("student");
        s.setId("12014052074");
        s.setName("xyh");
        s.setAge((byte)22);
        s.setSex("男");
        
        StudentDao dao = (StudentDao) atc.getBean("studentDao");
        System.out.println(dao.updateStudent(s));
    }

}

輸出結(jié)果為1(影響數(shù)據(jù)行數(shù))踱葛,這時(shí)候去數(shù)據(jù)庫(kù)一看,噢光坝,我又老了一歲了尸诽。。盯另。zzz

public class Main {

    public static void main(String[] args) {
        // TODO Auto-generated method stub
        ApplicationContext atc = new ClassPathXmlApplicationContext("spring.xml");      
        StudentDao dao = (StudentDao) atc.getBean("studentDao");
        List<Student> students = dao.getAllStudent();
        System.out.println(students.size());
    }
}

輸出結(jié)果為2性含,數(shù)據(jù)集的數(shù)據(jù)size。
好了鸳惯,到這里你還整合不了的話(huà)~~~~~~~~~~~你還是從頭再來(lái)吧商蕴。。芝发。zzz

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末绪商,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子辅鲸,更是在濱河造成了極大的恐慌格郁,老刑警劉巖,帶你破解...
    沈念sama閱讀 222,000評(píng)論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件独悴,死亡現(xiàn)場(chǎng)離奇詭異例书,居然都是意外死亡,警方通過(guò)查閱死者的電腦和手機(jī)刻炒,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,745評(píng)論 3 399
  • 文/潘曉璐 我一進(jìn)店門(mén)决采,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人坟奥,你說(shuō)我怎么就攤上這事树瞭≡萦祝” “怎么了?”我有些...
    開(kāi)封第一講書(shū)人閱讀 168,561評(píng)論 0 360
  • 文/不壞的土叔 我叫張陵移迫,是天一觀(guān)的道長(zhǎng)旺嬉。 經(jīng)常有香客問(wèn)我,道長(zhǎng)厨埋,這世上最難降的妖魔是什么邪媳? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 59,782評(píng)論 1 298
  • 正文 為了忘掉前任,我火速辦了婚禮荡陷,結(jié)果婚禮上雨效,老公的妹妹穿的比我還像新娘。我一直安慰自己废赞,他們只是感情好徽龟,可當(dāng)我...
    茶點(diǎn)故事閱讀 68,798評(píng)論 6 397
  • 文/花漫 我一把揭開(kāi)白布。 她就那樣靜靜地躺著唉地,像睡著了一般据悔。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上耘沼,一...
    開(kāi)封第一講書(shū)人閱讀 52,394評(píng)論 1 310
  • 那天极颓,我揣著相機(jī)與錄音,去河邊找鬼群嗤。 笑死菠隆,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的狂秘。 我是一名探鬼主播骇径,決...
    沈念sama閱讀 40,952評(píng)論 3 421
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼者春!你這毒婦竟也來(lái)了破衔?” 一聲冷哼從身側(cè)響起,我...
    開(kāi)封第一講書(shū)人閱讀 39,852評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤碧查,失蹤者是張志新(化名)和其女友劉穎运敢,沒(méi)想到半個(gè)月后校仑,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體忠售,經(jīng)...
    沈念sama閱讀 46,409評(píng)論 1 318
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,483評(píng)論 3 341
  • 正文 我和宋清朗相戀三年迄沫,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了稻扬。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 40,615評(píng)論 1 352
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡羊瘩,死狀恐怖泰佳,靈堂內(nèi)的尸體忽然破棺而出盼砍,到底是詐尸還是另有隱情,我是刑警寧澤逝她,帶...
    沈念sama閱讀 36,303評(píng)論 5 350
  • 正文 年R本政府宣布浇坐,位于F島的核電站,受9級(jí)特大地震影響黔宛,放射性物質(zhì)發(fā)生泄漏近刘。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,979評(píng)論 3 334
  • 文/蒙蒙 一臀晃、第九天 我趴在偏房一處隱蔽的房頂上張望觉渴。 院中可真熱鬧,春花似錦徽惋、人聲如沸案淋。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 32,470評(píng)論 0 24
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)焰檩。三九已至,卻和暖如春蜘澜,著一層夾襖步出監(jiān)牢的瞬間镀岛,已是汗流浹背。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 33,571評(píng)論 1 272
  • 我被黑心中介騙來(lái)泰國(guó)打工渺氧, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留旨涝,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 49,041評(píng)論 3 377
  • 正文 我出身青樓侣背,卻偏偏與公主長(zhǎng)得像白华,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子贩耐,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,630評(píng)論 2 359

推薦閱讀更多精彩內(nèi)容

  • Spring Cloud為開(kāi)發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見(jiàn)模式的工具(例如配置管理弧腥,服務(wù)發(fā)現(xiàn),斷路器潮太,智...
    卡卡羅2017閱讀 134,702評(píng)論 18 139
  • Spring Boot 參考指南 介紹 轉(zhuǎn)載自:https://www.gitbook.com/book/qbgb...
    毛宇鵬閱讀 46,859評(píng)論 6 342
  • 什么是Spring Spring是一個(gè)開(kāi)源的Java EE開(kāi)發(fā)框架管搪。Spring框架的核心功能可以應(yīng)用在任何Jav...
    jemmm閱讀 16,475評(píng)論 1 133
  • 別人說(shuō)的不一定是全的,有時(shí)不一定是對(duì)的铡买。 沒(méi)有入群時(shí)更鲁,看什么公眾號(hào)都是一概吸收其內(nèi)容,不管內(nèi)部邏輯是否合理奇钞,除非是...
    云棫閱讀 271評(píng)論 2 2
  • POST請(qǐng)求比較常見(jiàn)的一種情況就是用戶(hù)名密碼登陸情況澡为,這里介紹一種用程序登陸豆瓣賬號(hào)的流程。 在豆瓣需要我們輸入用...
    楚江數(shù)據(jù)閱讀 1,344評(píng)論 0 0