WEB

SpingBoot学习记录

2018-11-23  本文已影响26人  我问你瓜保熟吗

SSM基础

controller层:用来匹配url。需要导入service层,因为service中的方法是我们使用到的,controller通过接收前端传过来的参数进行业务操作,在返回一个指定的路径或者数据表。

service层:进行业务逻辑判断,有接口和接口的实现方法。在接口的实现方法中需要注入入mapper层,mapper层是直接跟数据库打交道的,他也是个接口,只有方法名字,具体实现在mapper.xml文件里,service是供我们使用的方法。

mapper层=dao层,现在用mybatis逆向工程生成的mapper层,其实就是dao层。对数据库进行数据持久化操作,他的方法语句是直接针对数据库操作的,而service层是针对我们controller,也就是针对我们使用者。service的impl是把mapper和service进行整合的文件。

model层=entity层。存放我们的实体类,与数据库中的属性值基本保持一致。

数据持久化操作就是指,把数据放到持久化的介质中,同时提供增删改查操作,比如数据通过hibernate插入到数据库中。




常用注解

1、@Controller

​ 处理http请求

2、@RequestMapping("/")

3、@ResponseBody

​ 表示该方法的返回结果直接写入 HTTP response body 中,一般在异步获取数据时使用【也就是AJAX】,在使用 @RequestMapping后,返回值通常解析为跳转路径,但是加上 @ResponseBody 后返回结果不会被解析为跳转路径,而是直接写入 HTTP response body 中。 比如异步获取 json 数据,加上 @ResponseBody 后,会直接返回 json 数据。@RequestBody 将 HTTP 请求正文插入方法中,使用适合的 HttpMessageConverter 将请求体写入某个对象。;返回值如果是字符串则直接返回字符串;如果是对象则返回json

4、@RestController :

​ 是@Controller和@ResponseBody的组合注解,使用此注解的类下的所有方法默认都 返回字符串或json数据

5、@GetMapping

​ 只支持Get,相当于@RequestMapping(value="/",method="RequestMethod.GET")

6、@PostMapping

​ 只支持Post相当于@RequestMapping(value="/",method="RequestMethod.Post")




pom.xml 配置文件

 集成Mybatis

<dependency>
    <groupId>org.mybatis.spring.boot</groupId>
    <artifactId>mybatis-spring-boot-starter</artifactId>
    <version>1.3.1</version>
</dependency>

<dependency>
    <groupId>mysql</groupId>
    <artifactId>mysql-connector-java</artifactId>
</dependency>



build标签内要加入如下内容,否则容易导致mapper下的xml文件不被编译的情况,出现`Invalid bound statement(notfound):.....错误
注意:要生成数据库实体类之后添加,否则生成出错

        <resources>
            <resource>
                <directory>src/main/java</directory>
                <includes>
                    <include>**/*.xml</include>
                </includes>
            </resource>
            <resource>
                <directory>src/main/resources</directory>
                <includes>
                    <include>**/*.*</include>
                </includes>
            </resource>
            <resource>
                <directory>src/main/webapp</directory>
                <targetPath>META-INF/resources</targetPath>
                <includes>
                    <include>**/*.*</include>
                </includes>
            </resource>
        </resources>





application.properties配置文件


# 指定运行端口

server.port=8080


# 连接数据库

spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
spring.datasource.url=jdbc:mysql://127.0.0.1:3306/数据库的名字?useUnicode=true&characterEncoding=UTF8&useSSL=false&serverTimezone=UTC
spring.datasource.username=root
spring.datasource.password=root


# Thymeleaf 模板引擎

# thymeleaf配置,开发环境不启用缓存,正式环境下请启用缓存,提高性能
spring.thymeleaf.cache=false
# thymeleaf对html元素格式要求严格,设置它的mode为HTML,忘记结束标签后不会报错
spring.thymeleaf.mode=HTML


# 如果要在mapper.xml里使用model,不加此项要写完整路径com.....model...
mybatis.type-aliases-package=com.springboot.test.model
# 如果要将mapper的xml文件放在 resources目录下,对mybatis 进行如下配置
mybatis.mapper-locations=classpath:mappering/*.xml




Mybatis连接数据库反向生成实体类

1、在pom.xml的plugins里添加:

            <!--mybatis代码自动生成插件-->
            <plugin>
                <groupId>org.mybatis.generator</groupId>
                <artifactId>mybatis-generator-maven-plugin</artifactId>
                <version>1.3.7</version>
                <configuration>
                    <!--配置文件的位置-->
                    <configurationFile>src/main/resources/GeneratorMapper.xml</configurationFile>
                    <overwrite>true</overwrite>
                    <verbose>true</verbose>
                </configuration>
            </plugin>

2、在resources文件夹里添加:GeneratorMapper.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>
    <!--sql 连接数据库jar 注意路径-->
    <classPathEntry location="C:/Users/xieyabo/Favorites/mysql-connector-java-8.0.13/mysql-connector-java-8.0.13.jar" />

    <!--配置table表信息内容体,targetRuntime制定采用MyBatis3版本-->
    <context id="testTables" targetRuntime="MyBatis3">
        <commentGenerator>
            <!-- 是否去除自动生成的英文注释 true:是 : false:否 -->
            <property name="suppressAllComments" value="true" />
        </commentGenerator>

        <!--数据库连接的信息:驱动类、连接地址、用户名、密码 -->
        <jdbcConnection driverClass="com.mysql.cj.jdbc.Driver"
                        connectionURL="jdbc:mysql://localhost:3306?serverTimezone=UTC"
                        userId="root"
                        password="root">
        </jdbcConnection>

        <!-- 默认false,把JDBC DECIMAL 和 NUMERIC 类型解析为 Integer,为 true时把JDBC DECIMAL 和NUMERIC 类型解析为java.math.BigDecimal -->
        <javaTypeResolver>
            <property name="forceBigDecimals" value="false" />
        </javaTypeResolver>

        <!-- 生成模型(PO)的包名和位置  生成model类,targetPackage制定model类的包名,targetProject制定生成的model放在哪个工程下面-->
        <javaModelGenerator targetPackage="com.springboot.introduction.model" targetProject="src/main/java">
            <!-- enableSubPackages:是否让schema作为包的后缀 -->
            <property name="enableSubPackages" value="false" />
            <!-- 从数据库返回的值被清理前后的空格 -->
            <property name="trimStrings" value="true" />
        </javaModelGenerator>

        <!-- 生成映射文件的包名和位置;生成MyBatis的Mapper.xml文件,targetPackage指定mapper.xml文件的包名,targetProject指定生成的mapper.xml放在-->
        <sqlMapGenerator targetPackage="com.springboot.introduction.mapper" targetProject="src/main/java">
            <!-- enableSubPackages:是否让schema作为包的后缀 -->
            <property name="enableSubPackages" value="false" />
        </sqlMapGenerator>

        <!-- 生成DAO的包名和位置;生成MyBatis的Mapper接口类文件,targetPackage指定Mapper接口类的包名,targetProject指定生成的Mapper接口放在哪个目录下-->
        <javaClientGenerator type="XMLMAPPER" targetPackage="com.springboot.introduction.mapper" targetProject="src/main/java">
            <!-- enableSubPackages:是否让schema作为包的后缀 -->
            <property name="enableSubPackages" value="false" />
        </javaClientGenerator>

        <!-- 要生成的表 tableName是数据库中的表名或视图名 domainObjectName是实体类名-->
        <!-- 注意:已生成的不要再生成,不然会覆盖已生成的文件 -->
        <table catalog="数据库名字"  tableName="student" domainObjectName="Student"
               enableCountByExample="false" enableUpdateByExample="false"
               enableDeleteByExample="false" enableSelectByExample="false"
               selectByExampleQueryId="false"></table>
    </context>
</generatorConfiguration>

3、View > Tool Window > Maven Projects > 调出Maven Projects窗口 > Plugins >

双击mybatis-genterator:generate




上一篇下一篇

猜你喜欢

热点阅读