springboot+vue 登录页面(二)
承接上文
注意:下面的文件路径需要自己修改!!!
7.创建数据库user
CREATE TABLE `user` ( `id` int(11) NOT NULL AUTO_INCREMENT, `name` varchar(255) DEFAULT NULL COMMENT '用户名', `password` varchar(255) DEFAULT NULL COMMENT '密码', `create_by` int(11) DEFAULT NULL COMMENT '创建人', `create_time` datetime DEFAULT NULL ON UPDATE CURRENT_TIMESTAMP COMMENT '创建时间', `update_by` int(11) DEFAULT NULL COMMENT '修改人', `update_time` datetime DEFAULT NULL ON UPDATE CURRENT_TIMESTAMP COMMENT '修改时间', `remark` varchar(255) DEFAULT NULL COMMENT '备注', PRIMARY KEY (`id`) ) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8;
8.引用mybatis逆向工程
mybatis 逆向工程可以生成基本的mapper,dao,entity
注意:修改配置文件中的路径
package com.example.demo.utils; import org.mybatis.generator.api.MyBatisGenerator; import org.mybatis.generator.config.Configuration; import org.mybatis.generator.config.xml.ConfigurationParser; import org.mybatis.generator.internal.DefaultShellCallback; import java.io.File; import java.util.ArrayList; import java.util.List; public class GeneratorSqlmap { public void generator() throws Exception{ List<String> warnings = new ArrayList<String>(); boolean overwrite = true; //指定 逆向工程配置文件 路径从项目名开始 File configFile = new File(".\\src\\main\\resources\\generatorConfig.xml"); ConfigurationParser cp = new ConfigurationParser(warnings); Configuration config = cp.parseConfiguration(configFile); DefaultShellCallback callback = new DefaultShellCallback(overwrite); MyBatisGenerator myBatisGenerator = new MyBatisGenerator(config, callback, warnings); myBatisGenerator.generate(null); //如果在没有生成代码,则请查看:warnings } public static void main(String[] args) throws Exception { try { GeneratorSqlmap generatorSqlmap = new GeneratorSqlmap(); generatorSqlmap.generator(); } catch (Exception e) { e.printStackTrace(); } } }
<?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> <context id="testTables" targetRuntime="MyBatis3"> <!-- mybatis 与swagger 生成的实体类注释--> <!--<plugin type="mybatis.generator.plugins.GeneratorSwagger2Doc">--> <!--<property name="apiModelAnnotationPackage" value="io.swagger.annotations.ApiModel"/>--> <!--<property name="apiModelPropertyAnnotationPackage" value="io.swagger.annotations.ApiModelProperty"/>--> <!--</plugin>--> <commentGenerator> <!-- 是否去除自动生成的注释 true:是 : false:否 --> <property name="suppressAllComments" value="true"/> </commentGenerator> <!--mysql配置--> <!--数据库连接的信息:驱动类、连接地址、用户名、密码 --> <jdbcConnection driverClass="com.mysql.cj.jdbc.Driver" connectionURL="jdbc:mysql://127.0.0.1:3306/daydayfund?serverTimezone=GMT&tinyInt1isBit=false" userId="root" password="123456"> <!-- https://www.cnblogs.com/xqz0618/archive/2019/02/15/MybatisGeneratorError.html--> <property name="nullCatalogMeansCurrent" value="true"/> </jdbcConnection> <!--oracle配置--> <!--<jdbcConnection driverClass="oracle.jdbc.OracleDriver" connectionURL="jdbc:oracle:thin:@127.0.0.1:1521:yycg" --> <!--userId="yycg" --> <!--password="yycg"> --> <!--</jdbcConnection>--> <!-- 默认false,把JDBC DECIMAL 和 NUMERIC 类型解析为 Integer,为 true时把JDBC DECIMAL 和 NUMERIC 类型解析为java.math.BigDecimal --> <javaTypeResolver> <property name="forceBigDecimals" value="false"/> </javaTypeResolver> <!-- targetProject:生成PO类的位置 --> <javaModelGenerator targetPackage="com.zong.fund.entity" targetProject=".\src\main\java"> <!-- enableSubPackages:是否让schema作为包的后缀 --> <property name="enableSubPackages" value="false"/> <!-- 从数据库返回的值被清理前后的空格 --> <property name="trimStrings" value="true"/> </javaModelGenerator> <!-- targetProject:mapper映射文件生成的位置 --> <sqlMapGenerator targetPackage="mapper" targetProject=".\src\main\resources"> <!-- enableSubPackages:是否让schema作为包的后缀 --> <property name="enableSubPackages" value="false"/> </sqlMapGenerator> <!-- targetPackage:mapper接口生成的位置 --> <javaClientGenerator type="XMLMAPPER" targetPackage="com.zong.fund.dao" targetProject=".\src\main\java"> <!-- enableSubPackages:是否让schema作为包的后缀 --> <property name="enableSubPackages" value="false"/> </javaClientGenerator> <!-- 指定数据库表 domainObjectName="实体类名" --> <table tableName="user" selectByExampleQueryId="false" enableCountByExample="false" enableUpdateByExample="false" enableDeleteByExample="false" enableSelectByExample="false" > <!--<columnOverride column="img" javaType="java.lang.String" jdbcType="VARCHAR" />--> <!--<columnOverride column="content" javaType="java.lang.String" jdbcType="VARCHAR" />--> <!--<columnOverride column="appeal_pic" javaType="java.lang.String" jdbcType="VARCHAR" />--> <!--<columnOverride column="seller_delivery" javaType="java.lang.String" jdbcType="VARCHAR" />--> <!--<columnOverride column="delivery" javaType="java.lang.String" jdbcType="VARCHAR" />--> </table> </context> </generatorConfiguration>
<!-- 逆向工程 --> <dependency> <groupId>org.mybatis.generator</groupId> <artifactId>mybatis-generator-core</artifactId> <version>1.3.5</version> </dependency>
9.在mapper,dao文件中添加一个方法:selectByEntity
<select id="selectByEntity" parameterType="com.zong.fund.entity.User" resultMap="BaseResultMap"> select <include refid="Base_Column_List" /> from user where 1=1 <if test="name != null"> AND name = #{name,jdbcType=VARCHAR} </if> <if test="password != null"> AND password = #{password,jdbcType=VARCHAR} </if> <if test="createBy != null"> AND create_by = #{createBy,jdbcType=INTEGER} </if> <if test="createTime != null"> AND create_time = #{createTime,jdbcType=TIMESTAMP} </if> <if test="updateBy != null"> AND update_by = #{updateBy,jdbcType=INTEGER} </if> <if test="updateTime != null"> AND update_time = #{updateTime,jdbcType=TIMESTAMP} </if> <if test="remark != null"> AND remark = #{remark,jdbcType=VARCHAR} </if> </select>
List<User> selectByEntity(User record);
10.创建service,impl,controller 文件夹并创建对应的方法
这个码砖的事我就不说了
注意:在dao文件中添加@Mapper
11.配置文件:
#端口号
server.port=9090
#mybatis 扫描
mybatis.mapper-locations=classpath*:mapper/*.xml
#日志配置文件
logging.config=classpath:logging-config.xml
#数据库 spring.datasource.url = jdbc:mysql://localhost:3306/xxxx?serverTimezone=GMT%2B8 spring.datasource.username = root spring.datasource.password = xxxxx spring.datasource.driver-class-name = com.mysql.cj.jdbc.Driver
注意: 如果想在控制台打印sql则在配置文件中添加:
logging.level.org.springframework.boot.autoconfigure: ERROR
如果配置文件是yml 则:
server: port: 8080 spring: datasource: name: url: jdbc:mysql://127.0.0.1:3306/es?useUnicode=true&characterEncoding=UTF-8&allowMultiQueries=true&serverTimezone=UTC username: root password: root mybatis: mapper-locations: classpath*:mapper/*.xml #日志配置文件 logging: config: classpath:config/logging-config.xml level: org.springframework.boot.autoconfigure: ERROR
12.配置日志文件
<?xml version="1.0" encoding="UTF-8"?> <configuration debug="false"> <!--定义日志文件的存储地址 勿在 LogBack 的配置中使用相对路径--> <property name="LOG_HOME" value="E:\xxx\log"/> <!-- 控制台输出 --> <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender"> <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder"> <!--格式化输出:%d表示日期,%thread表示线程名,%-5level:级别从左显示5个字符宽度%msg:日志消息,%n是换行符--> <!--<pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n</pattern>--> <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} %-5level %logger{50} - %msg%n</pattern> </encoder> </appender> <!-- 按照每天生成日志文件 --> <appender name="FILE" class="ch.qos.logback.core.rolling.RollingFileAppender"> <rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy"> <!--日志文件输出的文件名--> <!--<FileNamePattern>${LOG_HOME}/sk_erp.%d{yyyy-MM-dd}.log</FileNamePattern>--> <FileNamePattern>${LOG_HOME}\sk_erp.%d{yyyy-MM-dd}.%i.log</FileNamePattern> <!--日志文件保留天数--> <MaxHistory>30</MaxHistory> <totalSizeCap>1GB</totalSizeCap> <MaxFileSize>10MB</MaxFileSize> </rollingPolicy> <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder"> <!--格式化输出:%d表示日期,%thread表示线程名,%-5level:级别从左显示5个字符宽度%msg:日志消息,%n是换行符--> <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n</pattern> </encoder> </appender> <!--myibatis log configure--> <logger name="com.apache.ibatis" level="DEBUG"/> <logger name="java.sql.Connection" level="DEBUG"/> <logger name="java.sql.Statement" level="DEBUG"/> <logger name="java.sql.PreparedStatement" level="DEBUG"/> <!-- 将sql打印出来--> <logger name="com.xxx" level="DEBUG"/> <!-- 日志输出级别 --> <root level="INFO"> <appender-ref ref="STDOUT"/> <appender-ref ref="FILE"/> </root> </configuration>
14.spingboot 内置tomcat 直接启动即可
13.通过使用postMan等测试接口工具来测试controller 处的方法来测试整个项目的
至此,后台完成