第一個(gè)mybatis項(xiàng)目

實(shí)現(xiàn)步驟

1.創(chuàng)建一個(gè)student表


image.png

2.新建一個(gè)maven項(xiàng)目
3.創(chuàng)建一個(gè)實(shí)體類student彩匕,定義屬性财松,屬性名辽聊,和列名一致

package com.zwx.entity;

public class Student {
    private Integer id;
    private String name;
    private String email;
    private Integer age;

    public int getId() {
        return id;
    }

    public void setId(int id) {
        this.id = id;
    }

    public String getName() {
        return name;
    }

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

    public String getEmail() {
        return email;
    }

    public void setEmail(String email) {
        this.email = email;
    }

    public int getAge() {
        return age;
    }

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

    @Override
    public String toString() {
        return "Student{" +
                "id=" + id +
                ", name='" + name + '\'' +
                ", email='" + email + '\'' +
                ", age=" + age +
                '}';
    }
}

4.創(chuàng)建dao接口栋烤,定義操作數(shù)據(jù)庫的方法

package com.zwx.dao;

import com.zwx.entity.Student;

public interface StudentDao {
    //查詢一個(gè)學(xué)生
    Student selectStudentById(Integer id);
}

5.創(chuàng)建一個(gè)xml文件(mapper文件)寫sql語句
mybatis把代碼和sql語句分開
mapper文件:定義和dao接口在一個(gè)目錄谒养,一個(gè)表一個(gè)mapper文件

<?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.zwx.dao.StudentDao">

    <select id="selectStudentById" resultType="com.zwx.entity.Student">
        SELECT id,name,email,age FROM mybatis.student WHERE id = #{id}
    </select>
</mapper>

6.創(chuàng)建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>
<!--    日志-->
    <settings>
        <setting name="logImpl" value="STDOUT_LOGGING"/>
    </settings>
    <environments default="development">
        <environment id="development">
            <transactionManager type="JDBC"/>
            <dataSource type="POOLED">
                <property name="driver" value="com.mysql.cj.jdbc.Driver"/>
                <property name="url" value="jdbc:mysql://localhost:3306/mybatis?useSSL=false&amp;useUnicode=true&amp;characterEncoding=utf-8&amp;autoReconnect=true&amp;failOverReadOnly=false"/>
                <property name="username" value="root"/>
                <property name="password" value="123456"/>
            </dataSource>
        </environment>
    </environments>
    <mappers>
        <mapper resource="com/zwx/dao/StudentDao.xml"/>
    </mappers>
</configuration>

定義創(chuàng)建鏈接實(shí)例的數(shù)據(jù)源對象(datasource)
指定其他mapper文件的位置
7.測試

import com.zwx.entity.Student;
import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;
import org.apache.ibatis.session.SqlSessionFactoryBuilder;
import org.junit.Test;


import org.apache.ibatis.io.Resources;

import java.io.IOException;
import java.io.InputStream;

public class Mytest {

    @Test
    public void test() throws IOException {
//        mybatis核心類:SqlSessionFactory
        //定義mybatis主配置文件的位置,從類路徑開始的相對路徑
        String config="mybatis.xml";
//        讀取主配置文件使用mybatis框架中的Resource類
       InputStream inputStream = Resources.getResourceAsStream(config);
       //創(chuàng)建SqlSessionFactory對象明郭,使用SqlSessionFactoryBuilder()
        SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
        //獲取sqlsession對象
        SqlSession sqlSession = sqlSessionFactory.openSession();
//        指定要執(zhí)行的sql的id
        String sqlId="com.zwx.dao.StudentDao"+"."+"selectStudentById";
//        通過sqlSession的方法 執(zhí)行sql語句
        Student student = sqlSession.selectOne(sqlId,1101);
        System.out.println(student);
//        關(guān)閉sqlsession對象
        sqlSession.close();
    }
}

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末买窟,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子薯定,更是在濱河造成了極大的恐慌始绍,老刑警劉巖,帶你破解...
    沈念sama閱讀 212,080評論 6 493
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件话侄,死亡現(xiàn)場離奇詭異亏推,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)年堆,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,422評論 3 385
  • 文/潘曉璐 我一進(jìn)店門吞杭,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人变丧,你說我怎么就攤上這事芽狗。” “怎么了痒蓬?”我有些...
    開封第一講書人閱讀 157,630評論 0 348
  • 文/不壞的土叔 我叫張陵童擎,是天一觀的道長。 經(jīng)常有香客問我攻晒,道長顾复,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 56,554評論 1 284
  • 正文 為了忘掉前任鲁捏,我火速辦了婚禮芯砸,結(jié)果婚禮上甸祭,老公的妹妹穿的比我還像新娘低滩。我一直安慰自己侥啤,他們只是感情好预伺,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,662評論 6 386
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著虎谢,像睡著了一般盟榴。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上婴噩,一...
    開封第一講書人閱讀 49,856評論 1 290
  • 那天擎场,我揣著相機(jī)與錄音,去河邊找鬼几莽。 笑死迅办,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的章蚣。 我是一名探鬼主播站欺,決...
    沈念sama閱讀 39,014評論 3 408
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼纤垂!你這毒婦竟也來了矾策?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 37,752評論 0 268
  • 序言:老撾萬榮一對情侶失蹤峭沦,失蹤者是張志新(化名)和其女友劉穎贾虽,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體吼鱼,經(jīng)...
    沈念sama閱讀 44,212評論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡蓬豁,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,541評論 2 327
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了菇肃。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片地粪。...
    茶點(diǎn)故事閱讀 38,687評論 1 341
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖琐谤,靈堂內(nèi)的尸體忽然破棺而出蟆技,到底是詐尸還是另有隱情,我是刑警寧澤笑跛,帶...
    沈念sama閱讀 34,347評論 4 331
  • 正文 年R本政府宣布付魔,位于F島的核電站聊品,受9級特大地震影響飞蹂,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜翻屈,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,973評論 3 315
  • 文/蒙蒙 一陈哑、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦惊窖、人聲如沸刽宪。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,777評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽圣拄。三九已至,卻和暖如春毁欣,著一層夾襖步出監(jiān)牢的瞬間庇谆,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,006評論 1 266
  • 我被黑心中介騙來泰國打工凭疮, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留饭耳,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 46,406評論 2 360
  • 正文 我出身青樓执解,卻偏偏與公主長得像寞肖,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個(gè)殘疾皇子衰腌,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,576評論 2 349