interllij idea spring boot + mybatis 入门

1、  创建项目


file-->new-->project

 

完成之后等待:所有的依赖包全部加载完毕,之后的项目目录如下:

至此:项目新建完成,根据个人需要在相应目录下建立文件夹如下:

 


2、 数据库链接


在intrellij idea 右侧边栏找到database打开

链接成功后如线图所示

然后在项目中配置数据库连接信息

application.yml中的内容如下:

server:
#服务端口:即该网络服务访问时的端口
  port: 8888

spring:
  datasource:
    name:
    #数据库链接信息
    url: jdbc:mysql://1270.0.1:3306/你的数据库名称?useUnicode=true&characterEncoding=UTF-8&allowMultiQueries=true&serverTimezone=UTC
    #数据库链接 用户名
    username: 用户名
    #数据库链接 密码
    password: 密码
    #数据库链接 驱动
    driver-class-name: com.mysql.jdbc.Driver
#mybatis 的配置文件 目录
mybatis:
  mapper-locations: classpath:mapper/*.xml

3、 配置mybatis 数据表生成


在resources根目录下建立文件“generatorConfig.xml”

generatorConfig.xml文件中应填充的信息为:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE generatorConfiguration
        
        PUBLIC "-//mybatis.org//DTD MyBatis Generator Configuration 1.0//EN"
        "http://mybatis.org/dtd/mybatis-generator-config_1_0.dtd">
<generatorConfiguration>
    <!--数据库驱动-->

    <classPathEntry    location="D:/soft/mysql-connector-java-5.1.37/mysql-connector-java-5.1.37-bin.jar"/> <!-- 本地驱动位置-->
    <context id="DB2Tables"    targetRuntime="MyBatis3">
        <commentGenerator>
            <property name="suppressDate" value="true"/>
            <property name="suppressAllComments" value="true"/>
        </commentGenerator>
        <!--数据库链接地址账号密码-->
        <jdbcConnection driverClass="com.mysql.jdbc.Driver" connectionURL="jdbc:mysql://数据库IP:3306/ZDJTest01" userId="用户名" password="密码">
        </jdbcConnection>
        <javaTypeResolver>
            <property name="forceBigDecimals" value="false"/>
        </javaTypeResolver>
        <!--生成Model类存放位置--><!--targetProject 填入项目存在计算机的位置 -->
        <javaModelGenerator targetPackage="你自己的包名.model" targetProject="E:/MyWorkAbout/testmapper/zdjdemo/src/main/java">
            <property name="enableSubPackages" value="true"/>
            <property name="trimStrings" value="true"/>
        </javaModelGenerator>
        <!--生成映射文件存放位置-->
        <sqlMapGenerator targetPackage="mapper" targetProject="E:/MyWorkAbout/testmapper/zdjdemo/src/main/resources">
            <property name="enableSubPackages" value="true"/>
        </sqlMapGenerator>
        <!--生成Dao类存放位置-->
        <javaClientGenerator type="XMLMAPPER" targetPackage="你自己的包名.dao" targetProject="E:/MyWorkAbout/testmapper/zdjdemo/src/main/java">
            <property name="enableSubPackages" value="true"/>
        </javaClientGenerator>

        <!--生成对应表及类名-->

        <table tableName="数据库中表名" domainObjectName="代码中实体名称" enableCountByExample="true" enableUpdateByExample="true" enableDeleteByExample="true" enableSelectByExample="true" selectByExampleQueryId="true"></table>

    </context>
</generatorConfiguration>

在pom.xml中的build-->plugins节点下添加如下代码

 <plugin>
                <groupId>org.mybatis.generator</groupId>
                <artifactId>mybatis-generator-maven-plugin</artifactId>
                <version>1.3.5</version>
                <configuration>
                    <configurationFile>src/main/resources/generatorConfig.xml</configurationFile>
                    <overwrite>true</overwrite>
                    <verbose>true</verbose>
                </configuration>
            </plugin>

然后在interllij idea 右侧边栏找到maven projects 中的Plugins下面的mybatis-generator 下面的mybatis-generator:generate

  如图

此时如果以上你的操作没有问题你将看到输出窗口有如下代码:

"C:\Program Files\Java\jdk1.8.0_172\bin\java.exe" -Dmaven.multiModuleProjectDirectory=E:\MyWorkAbout\demox "-Dmaven.home=D:\soft\IntelliJ IDEA 2018.1.1\plugins\maven\lib\maven3" "-Dclassworlds.conf=D:\soft\IntelliJ IDEA 2018.1.1\plugins\maven\lib\maven3\bin\m2.conf" "-javaagent:D:\soft\IntelliJ IDEA 2018.1.1\lib\idea_rt.jar=45821:D:\soft\IntelliJ IDEA 2018.1.1\bin" -Dfile.encoding=GBK -classpath "D:\soft\IntelliJ IDEA 2018.1.1\plugins\maven\lib\maven3\boot\plexus-classworlds-2.5.2.jar" org.codehaus.classworlds.Launcher -Didea.version=2018.1.2 org.mybatis.generator:mybatis-generator-maven-plugin:1.3.5:generate -f pom.xml
[INFO] Scanning for projects...
[INFO]                                                                         
[INFO] ------------------------------------------------------------------------
[INFO] Building demox 0.0.1-SNAPSHOT
[INFO] ------------------------------------------------------------------------
[INFO] 
[INFO] --- mybatis-generator-maven-plugin:1.3.5:generate (default-cli) @ demox ---
[INFO] Connecting to the Database
[INFO] Introspecting table ProjectInfo
[INFO] Generating Example class for table ProjectInfo
[INFO] Generating Record class for table ProjectInfo
[INFO] Generating Mapper Interface for table ProjectInfo
[INFO] Generating SQL Map for table ProjectInfo
[INFO] Saving file ProjectInfoMapper.xml
[INFO] Saving file ProjectInfoExample.java
[INFO] Saving file ProjectInfo.java
[INFO] Saving file ProjectInfoMapper.java
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 1.262 s
[INFO] Finished at: 2019-07-18T15:31:01+08:00
[INFO] Final Memory: 14M/245M
[INFO] ------------------------------------------------------------------------

Process finished with exit code 0

同时你上面新建的文件夹中应该多出对应的生成代码:


4、 业务代码编写


在执行业务代码编写之前我们需要给dao文件夹中的接口类添加一个@Mapper:如下图所示

 

添加数据服务层代码:在我们前面新建的service目录下创建一个class 内容如下:

package com.examplex.demox.service;

import com.examplex.demox.dao.ProjectInfoMapper;
import com.examplex.demox.model.ProjectInfo;
import com.examplex.demox.model.ProjectInfoExample;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import javax.annotation.PostConstruct;
import java.util.List;

@Service
public class ProjectInfoService {
    @Autowired(required = false)
    ProjectInfoMapper companyInfoDao;
    public static ProjectInfoService readExcel;

    @PostConstruct
    public void init(){
        readExcel=this;
    }
    /*
        Service层介于controller和dao之间作为服务层进行一些逻辑处理,
        这里逻辑太简单所以知识单纯调用dao所以不做注释
     */
    public List<ProjectInfo> getAll(){
        ProjectInfoExample projectInfoExample=new ProjectInfoExample();
        projectInfoExample.or().andGuidIsNotNull();
        return readExcel.companyInfoDao.selectByExample(projectInfoExample);
    }
}

接下来我们创建一个Controller控制器,也是在先前我们创建的Controller文件夹下面 代码如下:

package com.springtest.zdjdemo.controller;

import com.springtest.zdjdemo.model.ProjectInfo;
import com.springtest.zdjdemo.service.testS;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.servlet.ModelAndView;

import java.util.List;

@Controller
public class test {
    @Autowired
    testS companyInfoService;
    @RequestMapping("/test")
    public ModelAndView index(){
        // 顾名思义 实体和数据 同时返回页面模板和数据
        ModelAndView mav = new ModelAndView("index01");
        List<ProjectInfo> list = companyInfoService.getAll();
        mav.addObject("list",list);
        return mav;
    }
}

在上面这段代码中我们开到有个叫做“index01”的view

下面我们就创建一个名为index01.html的view,这个view应在resources目录下的templates目录中进行创建,具体代码如下:

<!DOCTYPE html>
<html lang="en">
<!-- -->
<!-- 使用thymeleaf需引入 -->
<html xmlns:th="http://www.thymeleaf.org">
<head>
</head>
<body>
<div  id="tableP">
    <table>
        <caption>人员信息</caption>
        <tr>
            <th>guid</th>
            <th>projectName</th>
            <th>projectAddress</th>
            <th>toString</th>
        </tr>
        <!-- 通过th命令使用一些操作 -->
        <!-- 通过${} 使用变量 -->
        <tr  th:each="item: ${list}">
            <td th:text="${{item.getGuid()}}">该项目没有guid信息</td>
            <td th:text="${{item.getProjectName()}}">该项目没有名称信息</td>
            <td th:text="${{item.getProjectAddress()}}">该项目没有地址信息</td>
        </tr>
    </table>
</div>
</div>
</body>
</html>

至此我们一个小的Demo程序就创建完了:通过

运行一下,我这边报错说 数据库驱动有问题;这是因为pom.xml中的mysql-connector-java没有进行版本限制,所以使用的是最新版本,我们给他限定一个版本,我这边是这样改的

<dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <version>5.1.37</version>#在这里加这么一行
            <scope>runtime</scope>
        </dependency>

再次运行,通过网页访问http://localhost:8888/test

本次运行通过

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值