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

每天一葉

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

集成mybatis

引入數(shù)據(jù)庫連接池、mysql驅(qū)動,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>

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

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

        <!-- 配置mapper對應(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>,再自定義逆向工程啟動類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

啟動類中添加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);
    }

測試結(jié)果


測試結(jié)果

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

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容