mybatis 學(xué)習(xí)筆記1

pom.xml添加依賴

<dependency>
            <groupId>org.mybatis</groupId>
            <artifactId>mybatis</artifactId>
            <version>3.4.4</version>
</dependency>
我們創(chuàng)建一張user表
CREATE TABLE user (
  id int(11) NOT NULL AUTO_INCREMENT,
  name char(30) NOT NULL,
  age int(4) NOT NULL,
  sex int(4) NOT NULL,
  PRIMARY KEY (id)
)

創(chuàng)建mybats配置文件mybatis_config.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>
    <environments default="development">
        <environment id="development">
            <transactionManager type="JDBC"></transactionManager>
            <dataSource type="POOLED">
                <property name="driver" value="com.mysql.jdbc.Driver"/>
                <property name="url" value="jdbc:mysql://localhost:3306/sampledb"/>
                <property name="username" value="root"/>
                <property name="password" value="123456"/>
            </dataSource>

        </environment>
    </environments>

    <mappers>
        <mapper resource="userMapper.xml"/>
    </mappers>
</configuration>

創(chuàng)建mapper映射器userMapper.xml

<mapper namespace="com.hn.spring.UserMapper">
    <select id="selectUserByName" resultType="com.hn.spring.User">
        select * from user where name = #{name}
    </select>
    <insert id="insertUser" parameterType="com.hn.spring.User">
        insert into user(name,sex,age) VALUES (#{name},#{sex},#{age})
    </insert>
</mapper>

在userMapper.xml中我們定義了一個select元素田炭,返回一個user類型的對象教硫。接下來我們實現(xiàn)相應(yīng)的userMappper和user類。
首先我們定義userMapper茶鉴,userMapper定義為一個接口

public interface UserMapper {
    User selectUserByName(String name);
    void insertUser(User user);
}

該接口定義了一個selectUser方法景用,和select元素相匹配。
接下來我們實現(xiàn)User類割粮。

public class User {
    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    private String name;

    public int getAge() {
        return age;
    }

    public void setAge(int age) {
        this.age = age;
    }

    public int getSex() {
        return sex;
    }

    public void setSex(int sex) {
        this.sex = sex;
    }

    private int age;
    private int sex;

    @Override
    public String toString() {
        return "username is "+name + " age is "+age;
    }
}

User類定義了name,age,sex屬性。

接下來我們編寫測試程序從mysql中查詢數(shù)據(jù)映射到我們的User對象中廷雅。

public class TestUser {

    public SqlSessionFactory getSessionFactory(){
        SqlSessionFactory sqlSessionFactory = null;
        try {
            Reader reader = Resources.getResourceAsReader("mybatis-config.xml");
            sqlSessionFactory = new SqlSessionFactoryBuilder().build(reader);
        }catch (IOException ex){

        }
        return sqlSessionFactory;
    }
    @Test
    public void selectUserByID(){
        SqlSessionFactory sqlSessionFactory = getSessionFactory();
        SqlSession session = sqlSessionFactory.openSession();

        try {
            UserMapper userMapper = (UserMapper)session.getMapper(UserMapper.class);

            User user1 = new User();
            user1.setName("jack");
            user1.setAge(20);
            user1.setSex(1);
            userMapper.insertUser(user1);

            User user = userMapper.selectUserByName("jack");
            System.out.println(user.toString());
            Assert.assertNotNull(user);
        }catch (Exception ex){
            ex.printStackTrace();

        }finally {
            session.close();
        }

    }


}

首先讀取mybatis-config.xml,然后構(gòu)造sqlSessionFactory實例谬盐。使用sqlSessionFactory創(chuàng)建會話,使用會話獲取mapper映射器UserMapper,調(diào)用selectUser方法觸發(fā)sql查詢返回User對象飞傀。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市绞吁,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌颜说,老刑警劉巖汰聋,帶你破解...
    沈念sama閱讀 217,406評論 6 503
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件玄妈,死亡現(xiàn)場離奇詭異髓梅,居然都是意外死亡,警方通過查閱死者的電腦和手機瞭郑,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,732評論 3 393
  • 文/潘曉璐 我一進(jìn)店門擒权,熙熙樓的掌柜王于貴愁眉苦臉地迎上來阁谆,“玉大人,你說我怎么就攤上這事剖效⊙娴粒” “怎么了?”我有些...
    開封第一講書人閱讀 163,711評論 0 353
  • 文/不壞的土叔 我叫張陵,是天一觀的道長澎粟。 經(jīng)常有香客問我,道長活烙,這世上最難降的妖魔是什么啸盏? 我笑而不...
    開封第一講書人閱讀 58,380評論 1 293
  • 正文 為了忘掉前任,我火速辦了婚禮檬姥,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘贫贝。我一直安慰自己稚晚,他們只是感情好型诚,可當(dāng)我...
    茶點故事閱讀 67,432評論 6 392
  • 文/花漫 我一把揭開白布狰贯。 她就那樣靜靜地躺著,像睡著了一般幔摸。 火紅的嫁衣襯著肌膚如雪颤练。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,301評論 1 301
  • 那天,我揣著相機與錄音宇挫,去河邊找鬼。 笑死又谋,一個胖子當(dāng)著我的面吹牛彰亥,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播任斋,決...
    沈念sama閱讀 40,145評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼抹缕!你這毒婦竟也來了澈蟆?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,008評論 0 276
  • 序言:老撾萬榮一對情侶失蹤卓研,失蹤者是張志新(化名)和其女友劉穎趴俘,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體奏赘,經(jīng)...
    沈念sama閱讀 45,443評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡寥闪,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,649評論 3 334
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了磨淌。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片疲憋。...
    茶點故事閱讀 39,795評論 1 347
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖梁只,靈堂內(nèi)的尸體忽然破棺而出缚柳,到底是詐尸還是另有隱情埃脏,我是刑警寧澤,帶...
    沈念sama閱讀 35,501評論 5 345
  • 正文 年R本政府宣布喂击,位于F島的核電站,受9級特大地震影響谐檀,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜溃肪,卻給世界環(huán)境...
    茶點故事閱讀 41,119評論 3 328
  • 文/蒙蒙 一厨钻、第九天 我趴在偏房一處隱蔽的房頂上張望夯膀。 院中可真熱鬧,春花似錦涂佃、人聲如沸抓狭。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,731評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽便锨。三九已至姚建,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間稿湿,已是汗流浹背缎罢。 一陣腳步聲響...
    開封第一講書人閱讀 32,865評論 1 269
  • 我被黑心中介騙來泰國打工咽袜, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留询刹,地道東北人蔽挠。 一個月前我還...
    沈念sama閱讀 47,899評論 2 370
  • 正文 我出身青樓杠巡,卻偏偏與公主長得像蚌铜,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子造壮,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 44,724評論 2 354

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