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
本次运行通过