注册
SpringBoot整合DM、金蝶实现简单网页登录认证
技术分享/ 文章详情 /

SpringBoot整合DM、金蝶实现简单网页登录认证

A 2023/08/13 2233 3 0

前言

数据库的国产化意味着国内企业可以自主研发和生产数据库产品,不再依赖于国外厂商的技术和产品。这对于国内企业来说,具有重要的战略意义和经济意义。
而中间件在信息系统中肩负着“承上启下”的重任。从保障信息安全的角度来看,由操作系统、数据库、中间件“三架马车”共同组成的基础软件必须采用具备自主知识产权的产品与技术,才能确保信息系统的自主可控性。
由此可见,国产数据库和中间件的学习具有坡远的意义,那接下来便开始我们的学习之旅。

配置依赖

1.配置达梦

pom.xml引入达梦JDBC jar包

<dependency> <groupId>com.dameng</groupId> <artifactId>Dm8JdbcDriver18</artifactId> <version>8.1.1.49</version> </dependency>

2.配置金蝶

maven本地仓添加金蝶jar包

mvn install:install-file -Dfile=aams-spring-boot-starter-all-2.1.7.RELEASE.jar -DgroupId=com.apusic -DartifactId=aams-spring-boot-starter-all -Dversion=2.1.7.RELEASE -Dpackaging=jar -DpomFile=pom.xml

pom.xml引入金蝶相关依赖

<dependency> <groupId>com.apusic</groupId> <artifactId>aams-spring-boot-starter-all</artifactId> <version>2.1.7.RELEASE</version> </dependency>

项目根目录新建金蝶配置文件license.xml

<?xml version="1.0" encoding="UTF-8"?> <license product="Apusic Application Server" edition="Agile Edition" version="V10.0" licensee="金蝶天燕测试" datefrom="2023-05-24" expiration="2023-09-30" license_ver="43" extraAttrs="null" signature="dnhgXrnlcRfFnsniXiO3j1EDv3M9Um5Z8oT28lGC1eO4dq1LnOjdDzPWI3gYgYTLAM07WAfqdV/yAyIsD0qyPz9gN5oRYplZy0JkIFO0XzbFXla2gaDAgOd1hnY1v1TZVvlOZeadkpcCHyke+LPXaOp42cRMJy5OWLbrDzxHfxZspWJmC80HPrFa/mx85bDcwBbjnzczO3NvlKNgzej8D8bV4OM43URO+62KMRvUwhf8pbVumdLTEKwbfgBRvpAfPTxIb5hnz1yRrzoySUc0l0IIOUoTjmS/A46F2U8ldper/66hVzTKz1eTqXLz/a459ifEc9GKzBAdvo6pQQPv6G77+YHbxZdx57ExTQ7t68riTA2GTv4BbQczdQeBZiZ/hE2HRluJAceKPm7lqHqunVsBbQW0mK3gbLkcbkAxV6tzXmqHviD4/AT0Ya6fOaAdBpYwydOoqhHJ6xl2W1Z4eSMq4A1cFogW6s7fUMM0H2Q+6L3aL8JpWPcOo/9DGznQ" />

开发项目

1.数据表

创建user11表

create table "UTEST". "USER11" ( "ID" INTEGER not null, "UNAME" CHAR(10), "PWD" CHAR(10), primary key("ID") ); insert into utest.user11 values(1,'user1','pwd1'); insert into utest.user11 values(2,'user2','pwd2'); commit;

2.前端

创建login.html页面

<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>登录页面</title> </head> <body> <form action="/api/user/login" method="post"> 用户:<input type="text" name="username"><br> 密码:<input type="password" name="password"><br> <input type="submit"> </form> </body> </html>

创建main.html页面,也就是登录成功后跳转的页面

<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>主页</title> </head> <body> <h2>登录成功,这里是主页 </body> </html>

创建error.html页面,也就是登录失败后跳转的页面

<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>错误页面</title> </head> <body> 密码错误或找不到该用户 </body> </html>

3.后端

配置application.yml

server: port: 8090 spring: servlet: multipart: # 单个文件的最大值 max-file-size: 1024MB # 上传文件总的最大值 max-request-size: 1024MB datasource: driverClassName: dm.jdbc.driver.DmDriver url: jdbc:dm://192.168.1.18:5236 username: UTEST password: 123456 thymeleaf: mode: HTML5 encoding: UTF-8 #开发配置为false,避免修改模板还要重启服务器 cache: false prefix: classpath:/templates/ suffix: .html mybatis-plus: configuration: log-impl: org.apache.ibatis.logging.stdout.StdOutImpl

配置pom.xml里的依赖

<dependencies> <!--达梦数据库驱动--> <dependency> <groupId>com.dameng</groupId> <artifactId>Dm8JdbcDriver18</artifactId> <version>8.1.1.49</version> </dependency> <dependency> <groupId>com.apusic</groupId> <artifactId>aams-spring-boot-starter-all</artifactId> <version>2.1.7.RELEASE</version> </dependency> <!-- redis --> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-redis</artifactId> </dependency> <!--支持session共享 --> <dependency> <groupId>org.springframework.session</groupId> <artifactId>spring-session-data-redis</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-thymeleaf</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-test</artifactId> </dependency> <dependency> <groupId>org.projectlombok</groupId> <artifactId>lombok</artifactId> <optional>true</optional> </dependency> <dependency> <groupId>io.springfox</groupId> <artifactId>springfox-swagger2</artifactId> <version>2.9.2</version> <exclusions> <exclusion> <groupId>io.swagger</groupId> <artifactId>swagger-models</artifactId> </exclusion> </exclusions> </dependency> <dependency> <groupId>io.springfox</groupId> <artifactId>springfox-swagger-ui</artifactId> <version>2.9.2</version> </dependency> <dependency> <groupId>io.swagger</groupId> <artifactId>swagger-models</artifactId> <version>1.5.22</version> </dependency> <dependency> <groupId>cn.hutool</groupId> <artifactId>hutool-all</artifactId> <version>5.1.0</version> </dependency> <dependency> <groupId>com.google.code.gson</groupId> <artifactId>gson</artifactId> <version>2.8.6</version> </dependency> <dependency> <groupId>com.baomidou</groupId> <artifactId>mybatis-plus-annotation</artifactId> <version>3.1.1</version> </dependency> <dependency> <groupId>com.baomidou</groupId> <artifactId>mybatis-plus-boot-starter</artifactId> <version>3.1.1</version> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-test</artifactId> </dependency> <dependency> <groupId>org.apache.poi</groupId> <artifactId>poi-ooxml</artifactId> <version>3.15</version> </dependency> <dependency> <groupId>org.apache.poi</groupId> <artifactId>poi</artifactId> <version>3.15</version> </dependency> <!-- 谷歌二维码 --> <dependency> <groupId>com.google.zxing</groupId> <artifactId>core</artifactId> <version>3.1.0</version> </dependency> <dependency> <groupId>com.google.zxing</groupId> <artifactId>javase</artifactId> <version>3.1.0</version> </dependency> <!--上传文件--> <dependency> <groupId>commons-io</groupId> <artifactId>commons-io</artifactId> <version>2.4</version> </dependency> <dependency> <groupId>commons-fileupload</groupId> <artifactId>commons-fileupload</artifactId> <version>1.4</version> </dependency> <dependency> <groupId>org.apache.httpcomponents</groupId> <artifactId>httpcore</artifactId> <version>4.4.10</version> </dependency> <dependency> <groupId>org.apache.httpcomponents</groupId> <artifactId>httpclient</artifactId> <version>4.5.6</version> </dependency> </dependencies> <build> <plugins> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> </plugin> </plugins> <resources> <resource> <!-- ⭐️其他资打包到资源里 --> <directory>src/main/resources</directory> <includes> <include>**/**</include> </includes> <filtering>false</filtering> </resource> </resources> </build>

创建user.java

import com.baomidou.mybatisplus.annotation.IdType; import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.AllArgsConstructor; import lombok.Data; import lombok.NoArgsConstructor; import lombok.ToString; import java.io.Serializable; @Data @AllArgsConstructor @NoArgsConstructor @ToString @TableName("UTEST.USER11") public class User implements Serializable { private static final long serialVersionUID = 1L; @TableId(value = "id",type = IdType.AUTO) @ApiModelProperty(value = "唯一主键,ID") private int id; @ApiModelProperty(value = "uname") private String uname; @ApiModelProperty(value = "pwd") private String pwd; }

创建UserMapper.java

package org.example.mapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Param; import org.apache.ibatis.annotations.Select; import org.example.model.User; @Mapper public interface UserMapper extends BaseMapper<User> { @Select("SELECT id,uname,pwd from utest.user11 WHERE uname=#{username}") User getByUserName(@Param("username") String username); }

创建UserController.java和ViewController.java

import lombok.extern.slf4j.Slf4j; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RequestMapping; @Slf4j @Controller @RequestMapping("") public class ViewController { @GetMapping("/login") public String login(){ return "login"; } }
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import lombok.extern.slf4j.Slf4j; import org.example.mapper.UserMapper; import org.example.model.User; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.*; import javax.annotation.Resource; import java.util.List; @Slf4j @Controller @RequestMapping("/api/user") public class UserController { @Resource private UserMapper userMapper; @ResponseBody @GetMapping("/get") public List<User> getAll(){ return userMapper.selectList(new QueryWrapper<>()); } @PostMapping("/login") public String login(@RequestParam("username") String username,@RequestParam("password") String password){ User user = userMapper.getByUserName(username); log.info(user.toString()); if(user != null){ if(user.getPwd().replace(" ","").equals(password)){ return "main"; } } return "error"; } }

运行效果

浏览器访问 http://localhost:8090/login

主页面

1691916320719.jpg

登录成功页面

1691916333945.jpg

登录失败页面

1691916346224.jpg

评论
后发表回复

作者

文章

阅读量

获赞

扫一扫
联系客服