使用IDEA直接建立项目,File --- New --- project。
在New Project下面选择 Spring Initializr,点击右边next
包名,项目名按照自己的喜好随意编写。
在web里面选择web
在SQL里面选择,MySQL、JDBC、MyBatis
点击next,修改成自己喜欢的Project Name 名字以及项目的位置,点击Finish即可完成。
由于之前用的jsp比较多,这个例子用的也是jsp,但不推荐,使用官方的html,支持的更好。
在pom里面加入mybatis的分页插件、支持jsp、jstl依赖。
<!-- mybatis的分页插件 -->
<dependency>
<groupId>com.github.pagehelper</groupId>
<artifactId>pagehelper</artifactId>
<version>4.1.6</version>
</dependency>
<!--jsp支持-->
<!-- servlet 依赖. -->
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>javax.servlet-api</artifactId>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>org.apache.tomcat.embed</groupId>
<artifactId>tomcat-embed-jasper</artifactId>
</dependency>
<!-- 支持jstl -->
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>jstl</artifactId>
<version>1.2</version>
</dependency>
使用MyBatis自动生成代码的插件generator,引入依赖
<!-- MyBatis 自动生成代码 generator -->
<dependency>
<groupId>org.mybatis.generator</groupId>
<artifactId>mybatis-generator-maven-plugin</artifactId>
<version>1.3.2</version>
</dependency>
在build标签里面加入mybatis generator 自动生成代码插件,如下贴出整个build标签的内容。
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
<!-- mybatis generator 自动生成代码插件 -->
<plugin>
<groupId>org.mybatis.generator</groupId>
<artifactId>mybatis-generator-maven-plugin</artifactId>
<version>1.3.2</version>
<configuration>
<configurationFile>${basedir}/src/main/resources/generator/generatorConfig.xml</configurationFile>
<overwrite>true</overwrite>
<verbose>true</verbose>
</configuration>
</plugin>
</plugins>
</build>
其中,<configurationFile>${basedir}/src/main/resources/generator/generatorConfig.xml</configurationFile>是生成模板的xml,指定该xml的位置。
generatorConfig.xml里面的详细信息
需要注意的是:
<classPathEntry location="E:\workspaceboot\repository\mysql\mysql-connector-java\5.1.46\mysql-connector-java-5.1.46.jar"/>是引用maven仓库的mysql的jar位置,自动生成代码的位置根据自己的喜好修改。
<?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="E:\workspaceboot\repository\mysql\mysql-connector-java\5.1.46\mysql-connector-java-5.1.46.jar"/>
<context id="DB2Tables" targetRuntime="MyBatis3">
<commentGenerator>
<property name="suppressDate" value="true"/>
<!-- 是否去除自动生成的注释 true:是 : false:否 -->
<property name="suppressAllComments" value="true"/>
</commentGenerator>
<!--数据库链接URL,用户名、密码 -->
<jdbcConnection driverClass="com.mysql.jdbc.Driver" connectionURL="jdbc:mysql://127.0.0.1/mytest" userId="root" password="root">
</jdbcConnection>
<javaTypeResolver>
<property name="forceBigDecimals" value="false"/>
</javaTypeResolver>
<!-- 生成模型的包名和位置-->
<javaModelGenerator targetPackage="com.mdh.model" targetProject="src/main/java">
<property name="enableSubPackages" value="true"/>
<property name="trimStrings" value="true"/>
</javaModelGenerator>
<!-- 生成映射文件的包名和位置-->
<sqlMapGenerator targetPackage="mapping" targetProject="src/main/resources">
<property name="enableSubPackages" value="true"/>
</sqlMapGenerator>
<!-- 生成DAO的包名和位置-->
<javaClientGenerator type="XMLMAPPER" targetPackage="com.mdh.mapper" targetProject="src/main/java">
<property name="enableSubPackages" value="true"/>
</javaClientGenerator>
<!-- 要生成的表 tableName是数据库中的表名或视图名 domainObjectName是实体类名-->
<table tableName="t_user" domainObjectName="User" enableCountByExample="false" enableUpdateByExample="false" enableDeleteByExample="false" enableSelectByExample="false" selectByExampleQueryId="false"></table>
</context>
</generatorConfiguration>
如下如的目录结构。
在application.properties加入以下信息:
# jsp形式
#设置视图解析器路径
spring.mvc.view.prefix=/WEB-INF/views/
#设置视图解析器后缀
spring.mvc.view.suffix=.jsp
#MVC html形式
#spring.mvc.view.prefix=/
#spring.mvc.view.suffix=.html
#数据库配置
spring.datasource.url=jdbc:mysql://localhost:3306/mytest?useUnicode=true&characterEncoding=utf-8&zeroDateTimeBehavior=convertToNull&allowMultiQueries=true
spring.datasource.username=root
spring.datasource.password=root
spring.datasource.driver-class-name=com.mysql.jdbc.Driver
#配置.xml文件路径
mybatis.mapper-locations=classpath:mapping/*.xml
#配置模型路径
mybatis.type-aliases-package=com.mdh.model
关于自动生成插件的使用如下
所有的准备工作就完成了,开始愉快的写代码吧!
mapper层(红色标注的为自己添加的,其余的为自动生成的):
mapping层:
serviceImpl层:
Controller层:
下面重点来了,因为没有扫描mapper这个文件目录,在serviceImpl中使用@Autowired注解会报错,项目启动不了,此时在启动项的里面加入@MapperScan("com.mdh.mapper")注解,就OK了,可以访问了。
ok,所有的后台工作完成了,写两个jsp即可。
数据库的表结构如下:
--drop table t_user;
--CREATE TABLE t_user(
--user_id INT NOT NULL PRIMARY KEY AUTO_INCREMENT,
--user_name VARCHAR(255) NOT NULL ,
--password VARCHAR(255) NOT NULL ,
---phone VARCHAR(255) NOT NULL
--) ENGINE=INNODB AUTO_INCREMENT=1000 DEFAULT CHARSET=utf8;
--INSERT INTO t_user (user_name,password,phone) value ('张三','123456','12345678910');
--INSERT INTO t_user (user_name,password,phone) value ('李四','123456','12345678911');
--INSERT INTO t_user (user_name,password,phone) value ('王五','123456','12345678912');
--INSERT INTO t_user (user_name,password,phone) value ('赵六','123456','12345678913');
--INSERT INTO t_user (user_name,password,phone) value ('孙七','123456','12345678914');
--INSERT INTO t_user (user_name,password,phone) value ('周八','123456','12345678915');
--INSERT INTO t_user (user_name,password,phone) value ('吴九','123456','12345678916');
--INSERT INTO t_user (user_name,password,phone) value ('郑十','123456','12345678917');
--INSERT INTO t_user (user_name,password,phone) value ('王二麻子','123456','12345678918');
分页的效果是在后台直接写的固定值,一页三条数据,显示第三页。结果如下:
ok,全部完成了,接下来就是要如何实现前后端分离了。