spring boot + mysql + mybatis 简单的例子(附带分页)

使用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,全部完成了,接下来就是要如何实现前后端分离了。

  • 2
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值