從零開始搭建springboot web項(xiàng)目(二)

每天一葉

接上回扣唱,我們繼續(xù)搭建項(xiàng)目,爭取多集成一些功能

集成mybatis

引入數(shù)據(jù)庫連接池唐瀑、mysql驅(qū)動(dòng)群凶,mybatis,pagehelper分頁哄辣,generator逆向生成代碼等依賴

<dependency>
            <groupId>com.alibaba</groupId>
            <artifactId>druid</artifactId>
            <version>1.1.0</version>
        </dependency>

        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <version>5.1.9</version>
        </dependency>
        <!--mybatis -->
        <dependency>
            <groupId>org.mybatis.spring.boot</groupId>
            <artifactId>mybatis-spring-boot-starter</artifactId>
            <version>1.3.1</version>
        </dependency>
        <!--mapper -->
        <dependency>
            <groupId>tk.mybatis</groupId>
            <artifactId>mapper-spring-boot-starter</artifactId>
            <version>1.1.4</version>
        </dependency>
        <!--pagehelper -->
        <dependency>
            <groupId>com.github.pagehelper</groupId>
            <artifactId>pagehelper-spring-boot-starter</artifactId>
            <version>RELEASE</version>
        </dependency>

        <dependency>
            <groupId>com.alibaba</groupId>
            <artifactId>druid-spring-boot-starter</artifactId>
            <version>1.1.0</version>
        </dependency>

        <dependency>
            <groupId>org.mybatis.generator</groupId>
            <artifactId>mybatis-generator-core</artifactId>
            <version>1.3.2</version>
            <scope>compile</scope>
            <optional>true</optional>
        </dependency>
  • generator逆向生成代碼
    先在根目錄下新建generatorConfig.xml文件请梢,文件內(nèi)容如下
<generatorConfiguration>
    <context id="MysqlContext" targetRuntime="MyBatis3Simple" defaultModelType="flat">
        <property name="beginningDelimiter" value="`"/>
        <property name="endingDelimiter" value="`"/>

        <plugin type="tk.mybatis.mapper.generator.MapperPlugin">
            <property name="mappers" value="com.zwq.utils.MyMapper"/>
        </plugin>

        <jdbcConnection driverClass="com.mysql.jdbc.Driver"
                        connectionURL="jdbc:mysql://localhost:3306/hrm_db"
                        userId="root"
                        password="123456">
        </jdbcConnection>

        <!-- 對(duì)于生成的pojo所在包 -->
        <javaModelGenerator targetPackage="com.zwq.entity" targetProject="src/main/java"/>

        <!-- 對(duì)于生成的mapper所在目錄 -->
        <sqlMapGenerator targetPackage="mapper" targetProject="src/main/resources"/>

        <!-- 配置mapper對(duì)應(yīng)的java映射 -->
        <javaClientGenerator targetPackage="com.zwq.mapper" targetProject="src/main/java"
                             type="XMLMAPPER"/>


        <table tableName="dept_inf"></table>
        <table tableName="document_inf"></table>
        <table tableName="employee_inf"></table>
        <table tableName="job_inf"></table>
        <table tableName="menu_inf"></table>
        <table tableName="notice_inf"></table>
        <table tableName="user_inf"></table>

    </context>
</generatorConfiguration>

在java空間新建utils包,自定義MyMapper類繼承 Mapper<T>, MySqlMapper<T>力穗,再自定義逆向工程啟動(dòng)類GeneratorDisplay

public void generator() throws Exception{

       List<String> warnings = new ArrayList<String>();
       boolean overwrite = true;
       //指定 逆向工程配置文件
       File configFile = new File("generatorConfig.xml");
       ConfigurationParser cp = new ConfigurationParser(warnings);
       Configuration config = cp.parseConfiguration(configFile);
       DefaultShellCallback callback = new DefaultShellCallback(overwrite);
       MyBatisGenerator myBatisGenerator = new MyBatisGenerator(config,
               callback, warnings);
       myBatisGenerator.generate(null);

   }

   public static void main(String[] args) throws Exception {
       try {
           GeneratorDisplay generatorSqlmap = new GeneratorDisplay();
           generatorSqlmap.generator();
       } catch (Exception e) {
           e.printStackTrace();
       }

   }

通過運(yùn)行main方法就可以生成我們所需要的mapper,entity等文件了毅弧,
由于使用了公共的Mapper接口,我們可以像JPA一樣使用一些默認(rèn)方法操作增刪改查当窗。

mybatis配置

先配置數(shù)據(jù)源够坐,然后在application.properties中增加

mybatis.type-aliases-package=com.zwq.entity
mybatis.mapper-locations=classpath:mapper/*.xml

mapper.mappers=com.zwq.utils.MyMapper
mapper.not-empty=false
mapper.identity=MYSQL
pagehelper.helperDialect=mysql
pagehelper.reasonable=true
pagehelper.supportMethodsArguments=true
pagehelper.params.count=countSql

啟動(dòng)類中添加mybatis的mapper包掃描@MapperScan(basePackages = "com.zwq.mapper")

Service的創(chuàng)建

新建一個(gè)HrmService接口,我們先寫一些和UserInf相關(guān)的內(nèi)容,方法如下

/**
     * 用戶登錄
     * @param loginname
     * @param password
     * @return
     */
    UserInf login(String loginname, String password);

    /**
     * 根據(jù)id 查詢用戶
     * @param id
     * @return
     */
    UserInf findUserById(Integer id);

    /**
     * 獲得所有用戶(分頁)
     * @param user
     * @param page
     * @param pageSize
     * @return
     */
    List<UserInf> findUser(UserInf user,Integer page, Integer pageSize);

    /**
     * 根據(jù)id刪除用戶
     * @param id
     */
    void removeUserById(Integer id);

    /**
     * 修改用戶
     * @param user
     */
    void modifyUser(UserInf user);

    /**
     * 添加用戶
     * @param user
     */
    void addUser(UserInf user);

然后依次寫實(shí)現(xiàn)元咙,由于使用了公共Mapper梯影,單表的操作及其的簡單
我們可以直接用userInfMapper去調(diào)用相關(guān)方法,值得注意的是庶香,分頁接口甲棍,只需要一開始調(diào)用PageHelper.startPage(page, pageSize);即可實(shí)現(xiàn)分頁功能,十分方便赶掖,分頁代碼如下

@Override
    public List<UserInf> findUser(UserInf user, Integer page, Integer pageSize) {
        PageHelper.startPage(page, pageSize);
        Example example = new Example(UserInf.class);
        Example.Criteria criteria = example.createCriteria();
        if (!StringUtils.isEmptyOrWhitespace(user.getUsername())) {
            criteria.andLike("username", "%" + user.getUsername() + "%");
        }

        return userInfMapper.selectByExample(example);
    }

測(cè)試結(jié)果


測(cè)試結(jié)果

代碼已經(jīng)上傳到了github 點(diǎn)擊跳轉(zhuǎn)

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末感猛,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子倘零,更是在濱河造成了極大的恐慌唱遭,老刑警劉巖,帶你破解...
    沈念sama閱讀 216,470評(píng)論 6 501
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件呈驶,死亡現(xiàn)場(chǎng)離奇詭異拷泽,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)袖瞻,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,393評(píng)論 3 392
  • 文/潘曉璐 我一進(jìn)店門司致,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人聋迎,你說我怎么就攤上這事脂矫。” “怎么了霉晕?”我有些...
    開封第一講書人閱讀 162,577評(píng)論 0 353
  • 文/不壞的土叔 我叫張陵庭再,是天一觀的道長。 經(jīng)常有香客問我牺堰,道長拄轻,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,176評(píng)論 1 292
  • 正文 為了忘掉前任伟葫,我火速辦了婚禮恨搓,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘筏养。我一直安慰自己斧抱,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,189評(píng)論 6 388
  • 文/花漫 我一把揭開白布渐溶。 她就那樣靜靜地躺著辉浦,像睡著了一般。 火紅的嫁衣襯著肌膚如雪茎辐。 梳的紋絲不亂的頭發(fā)上宪郊,一...
    開封第一講書人閱讀 51,155評(píng)論 1 299
  • 那天眉睹,我揣著相機(jī)與錄音,去河邊找鬼废膘。 笑死竹海,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的丐黄。 我是一名探鬼主播斋配,決...
    沈念sama閱讀 40,041評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼灌闺!你這毒婦竟也來了艰争?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 38,903評(píng)論 0 274
  • 序言:老撾萬榮一對(duì)情侶失蹤桂对,失蹤者是張志新(化名)和其女友劉穎色洞,沒想到半個(gè)月后加缘,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,319評(píng)論 1 310
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,539評(píng)論 2 332
  • 正文 我和宋清朗相戀三年馋吗,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了莺葫。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片垒棋。...
    茶點(diǎn)故事閱讀 39,703評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡褐捻,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出父腕,到底是詐尸還是另有隱情弱匪,我是刑警寧澤,帶...
    沈念sama閱讀 35,417評(píng)論 5 343
  • 正文 年R本政府宣布璧亮,位于F島的核電站萧诫,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏枝嘶。R本人自食惡果不足惜帘饶,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,013評(píng)論 3 325
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望躬络。 院中可真熱鬧尖奔,春花似錦搭儒、人聲如沸穷当。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,664評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽馁菜。三九已至,卻和暖如春铃岔,著一層夾襖步出監(jiān)牢的瞬間汪疮,已是汗流浹背峭火。 一陣腳步聲響...
    開封第一講書人閱讀 32,818評(píng)論 1 269
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留智嚷,地道東北人卖丸。 一個(gè)月前我還...
    沈念sama閱讀 47,711評(píng)論 2 368
  • 正文 我出身青樓,卻偏偏與公主長得像盏道,于是被迫代替她去往敵國和親稍浆。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,601評(píng)論 2 353

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