interllij idea spring boot + mybatis 入门

it2022-05-05  140

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)