springboot 配置前后缀 suffix(springboot配置数据源)

Springboot基础知识及整合mybatis

Springboot基础

Springboot的设计初衷是解决spring各版本配置工作过于繁重的问题,简化初始搭建流程,降低开发难度,使开发人员只需要关注应用程序的功能也业务逻辑实现,而不用在配置上花费太多时间。

Springboot使用“默认大于配置”的理念,提供了很多已经集成好的方案,以便程序员开发程序时做到零配置或者极简配置。同时,为了不失灵活性,它也支持自定义操作。

搭建springboot项目

第一步:create Module,此处service URL:https://start.aliyun.com/

第二步:配置项目基本信息

第三步:选择需要的插件

第四步:确定文件夹信息,注意文件夹路径,名称不要错

1.2 springboot项目结构分析

  1. main/java:入口(启动)类及程序的开发目录,在这个目录下进行业务开发、创建实体层、控制器层、数据连接层等。
  2. Main/resources: 资源文件目录,主要用于存放静态文件和配置文件。
  • Static:用于存放静态资源,如层叠样式表css文件,js文件,图片等。
  • Templates:用于存放模板文件。
  • Application.properties: 用于配置项目运行所需的配置数据。如果用yaml方式管理配置,也在这个目录中。
  1. Test/java: 测试程序所在的目录。
  2. Pom.xml: 项目配置文件,添加需要的依赖和配置信息。

代码自动生成工具generator的使用

  1. 引入MyBatis Generator的maven插件

<!– 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>

  1. 在resources目录下创建generator文件夹,并在该目录下创建generatorConfig.xml文件,文件夹如下:

Springboot基础知识及整合mybatis案列讲解

  1. 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="C:Usersliyanrong.m2repositorymysqlmysql-connector-java8.0.23mysql-connector-java-8.0.23.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/rongtong?serverTimezone=UTC"

userId="root" password="123456">

<property name="nullCatalogMeansCurrent" value="true"/>

</jdbcConnection>

<javaTypeResolver>

<property name="forceBigDecimals" value="false"/>

</javaTypeResolver>

<!– 生成模型的包名和位置–>

<javaModelGenerator targetPackage="com.lyr.mybatisxml.entity" targetProject="src/main/java">

<property name="enableSubPackages" value="true"/>

<property name="trimStrings" value="true"/>

</javaModelGenerator>

<!– 生成映射文件的包名和位置–>

<sqlMapGenerator targetPackage="com.lyr.mybatisxml.mapper" targetProject="src/main/java">

<property name="enableSubPackages" value="true"/>

</sqlMapGenerator>

<!– 生成DAO的包名和位置–>

<javaClientGenerator type="XMLMAPPER" targetPackage="com.lyr.mybatisxml.mapper" targetProject="src/main/java">

<property name="enableSubPackages" value="true"/>

</javaClientGenerator>

<!– 要生成的表 tableName是数据库中的表名或视图名 domainObjectName是实体类名–>

<table tableName="users" domainObjectName="Users" enableCountByExample="false" enableUpdateByExample="false"

enableDeleteByExample="false" enableSelectByExample="false" selectByExampleQueryId="false"></table>

</context>

</generatorConfiguration>

  1. 运行

springboot快速集成mybatis

2.1 application.properties文件配置

  1. 配置application.properties文件中配置数据源

# 应用名称

spring.application.name=mybatisdemo

# 数据库驱动:

spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver

# 数据源名称

spring.datasource.name=defaultDataSource

# 数据库连接地址

spring.datasource.url=jdbc:mysql://localhost:3306/rongtong?serverTimezone=Asia/Shanghai&useUnicode=true&characterEncoding=UTF-8

# 数据库用户名&密码:

spring.datasource.username=root

spring.datasource.password=123456

  1. application.properties文件中配置mybatis

mybatis.type-aliases-package=com.lyr.mybatisdemo.entity

  1. application.properties文件中配置thymeleaf模板

# THYMELEAF (ThymeleafAutoConfiguration)

# 开启模板缓存(默认值: true )

spring.thymeleaf.cache=true

# 检查模板是否存在,然后再呈现

spring.thymeleaf.check-template=true

# 检查模板位置是否正确(默认值 :true )

spring.thymeleaf.check-template-location=true

#Content-Type 的值(默认值: text/html )

spring.thymeleaf.content-type=text/html

# 开启 MVC Thymeleaf 视图解析(默认值: true )

spring.thymeleaf.enabled=true

# 模板编码

spring.thymeleaf.encoding=UTF-8

# 要被排除在解析之外的视图名称列表,?逗号分隔

spring.thymeleaf.excluded-view-names=

# 要运?于模板之上的模板模式。另? StandardTemplate-ModeHandlers( 默认值: HTML5)

spring.thymeleaf.mode=HTML5

# 在构建 URL 时添加到视图名称前的前缀(默认值: classpath:/templates/ )

spring.thymeleaf.prefix=classpath:/templates/

# 在构建 URL 时添加到视图名称后的后缀(默认值: .html )

spring.thymeleaf.suffix=.html

2.2 pom.xml 文件中配置

由于maven工程在默认情况下src/main/java目录下的mapper文件是不发布到target目录下的。

解决办法:需要在你的xxxx项目的pom.xml的<build></build>里面添加一下配置

<resources>

<resource>

<directory>src/main/java</directory>

<includes>

<include>**/*.xml</include>

</includes>

</resource>

<resource>

<directory>src/main/resources</directory>

</resource>

</resources>

2.3 编写mapper包文件,注意注释

@Repository

@Mapper

public interface UsersMapper {

int deleteByPrimaryKey(Integer id);

int insert(Users record);

int insertSelective(Users record);

Users selectByPrimaryKey(Integer id);

int updateByPrimaryKeySelective(Users record);

int updateByPrimaryKey(Users record);

}

2.3 controller中调用

@Controller

public class UsersController {

@Autowired

UsersService us;

@RequestMapping("/hello")

public String usersByid(Model model,Integer id){

Users u=us.selectById(1);

List<Users> list=us.listAll();

model.addAttribute("users",u);

model.addAttribute("list",list);

return "hello";

}

@RequestMapping("/add")

public void usersAdd(HttpServletRequest request, HttpServletResponse response, Users u) throws IOException {

int i=us.add(u);

response.getWriter().write("添加成功dfafadsd");

}

}

2.4 模板输出文件

在templates文件夹下创建hello.html文件,内容如下:

<!DOCTYPE html>

<html lang="en" xmlns:th="http://www.thymeleaf.org">

<head>

<meta charset="UTF-8">

<title th:text="${users.username}"></title>

</head>

<body>

<!—–获取后台传过来的对象值—–>

<div th:object="${users}"></div>

<!—–获取后user对象的sex值—–>

<div th:text="${users.getUsername()}"></div>

<!—–th:value 将user对象的name属性赋值给value属性—->

<input type="text" th:value="${users.password}" name="id" />

<!—–th:field:绑定后台对象数据,但是在这儿用getName()取不到值—>

<input type="text" id=“title” th:field="${users.phone}" />

</body>

</html>

本站部分内容由互联网用户自发贡献,该文观点仅代表作者本人,本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。

如发现本站有涉嫌抄袭侵权/违法违规等内容,请联系我们举报!一经查实,本站将立刻删除。