简单的数据库连接与提供前端接口

前言:

本文浅浅讲解一下,使用多种软件共同开发一个java工程。

这是我在windows系统上跑成功的一次设计:

逻辑图如下:

 一:所需软件和版本。

idea,maven,jdk,git,jenkins,nginx,fiddler,chrome,mysql,navicat,tomcat,apifox

idea:Docs

maven:http:// maven.apache. org

jdk:建议使用jdk.8,目前较为主流的jdk版本。百度安全验证

git:Git - Downloads

jenkins:Jenkins详细教程 - 简书

mysql和navicat:https://blog.csdn.net/weixin_44006731/article/details/128613910?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522168024526716800215077560%2522%252C%2522scm%2522%253A%252220140713.130102334..%2522%257D&request_id=168024526716800215077560&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2~all~top_positive~default-1-128613910-null-null.142^v80^insert_down38,201^v4^add_ask,239^v2^insert_chatgpt&utm_term=navicat%E5%AE%89%E8%A3%85&spm=1018.2226.3001.4187

tomcat:【Tomcat】Tomcat 介绍及使用教程_吞吞吐吐大魔王的博客-CSDN博客

二:软件配置

Spring作为最流行的java开发框架,常用来实现微服务,其主要特点是简化了初始化搭建与开发过程,提供了包括自动化配置、Starter(简化Maven配置)、内嵌Servlet容器、应用监控等能力。

环境准备

步骤

名称

详细

1

Windows操作系统

Microsoft Windows [版本 10.0.17134.1184]

2

JDK

java version "1.8.0_231"

Java(TM) SE Runtime Environment (build 1.8.0_231-b11)

Java HotSpot(TM) 64-Bit Server VM (build 25.231-b11, mixed mode)

3

IntelliJ IDEA

IntelliJ IDEA Community Edition 2019.3.1 x64

4

Apache Maven

Apache Maven 3.6.2 (40f52333136460af0dc0d7232c0dc0bcf0d9e117; 2019-08-27T23:06:16+08:00)

Maven home: D:\SETUP\Java\apache-maven-3.6.2-bin\apache-maven-3.6.2\bin\..

Java version: 1.8.0_231, vendor: Oracle Corporation, runtime: C:\Program Files\Java\jdk1.8.0_231\jre

Default locale: zh_CN, platform encoding: GBK

OS name: "windows 10", version: "10.0", arch: "amd64", family: "windows"

5

配置IntelliJ IDEA

  1. 用Maven命令创建项目

【Maven】【Name】【Group】【Version】【ModuleName】创建即可。

然后手工添加Spring Boot的依赖,pom.xml

<parent><!-- 提供了如下能力:1、jdk版本 1.82、编码格式 utf-83、提供依赖管理用来管理项目的版本4、资源过滤与插件配置如果不使用此,需要自己添加替代的配置--><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId><version>2.3.3.RELEASE</version></parent><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency>编写启动类@SpringBootApplicationpublic class DemoApplication {public static void main(String[] args) {SpringApplication.run(DemoApplication.class, args);}}
  1. 用Spring Asistant构建项目

【File】-【New】-【 Project】

选择【Spring Asistant】

确定项目名称【helloworld】

然后,选择【Web】-【Spring Web】

最后确定项目名【helloworld】

然后,项目生成,可下载依赖包(Reimport All Maven Projects)

这里我更新时提醒错误【Cannot resolve net.bytebuddy:byte-buddy:1.10.6】,通过调整版本2.2.4到2.2.2解决之

最后,找到入口类,执行main方法

  1. 工程目录介绍

以上述生成的helloworld为例,介绍相关的文件目录如下:

IDEAPROJECTS\HELLOWORLD

├─.idea

│  └─libraries

├─.mvn

│  └─wrapper

├─src

│  ├─main

│  │  ├─java # 放置所有的java文件

│  │  │  └─com

│  │  │      └─example

│  │  │          └─helloWorld

│  │  └─resources    # 放置所有的资源文件,包括静态资源、配置、页面文件等。包括application.properties或者是 application.yml

│  │      ├─static   

│  │      └─templates # 放置末班文件,如Thymeleaf模板文件

│  └─test

│      └─java # 放置单元测试类代码java文件

│          └─com

│              └─example

│                  └─helloWorld

└─target #放置编译后的.calss文件,配置文件等

    ├─classes

    │  └─com

    │      └─example

    │          └─helloWorld

    ├─generated-sources

    │  └─annotations

    ├─generated-test-sources

    │  └─test-annotations

    └─test-classes

        └─com

            └─example

                └─helloWorld

1 配置文件

Spring Boot自动在/src/main/resources目录下寻找application.properties或application.yml文件,找到后则应用此文件的配置,两者可并存。以properties文件的配置优先。

application.properties 格式如下

server.port = 8080

application.yml 格式如下

server:

port: 8080

2 入口类

入口类的类名是按照项目名生成的,【项目名+Application】

其使用@SpringBootApplication组合注解。

入口类放在包的最外层,便于扫描所有的子包中的类。

3 测试类

测试类的类名是按照项目名生成的,【项目名+ApplicationTests】

@RunWith(SpringRunner.class) : 参数化运行器,配合@Parameters使用Junit的参数化功能。

@SpringBootTest : 测试SpringApplication

@Test: Junit单元测试的注解,表示一个测试方法。

4 POM文件

待深入

  1. Maven在IDEA的辅助工具

IDEA工程右侧对maven的结构可呈现树状视图,如下:

修改完pom.xml后,右侧会呈现相关依赖列表,并可通过点击刷新实现下载,点击Lifecycle下的标签,实现maven命令的触发。

  1. 编写最简单的Demo

在src中新建controler包,在包中创建SimleDemo类,代码如下:

package com.example.helloWorld.controller;import org.springframework.web.bind.annotation.GetMapping;import org.springframework.web.bind.annotation.RestController;@RestControllerpublic class SimpleDemo {@GetMapping("/helloworld")public String hello() {return "Hello World!";}}
  1. 执行测试

启动Application入口类,访问地址 http://127.0.0.1:8080/helloworld,可得到如下页面:

 

5 集成MySQL数据库

SpringBoot集成MySQL通过引入依赖,配置数据库参数,建立实体类即可实现。

  1. 引入依赖

修改POM,刷新即可。

在pom文件中添加对MySQL的依赖,具体代码如下:

<dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-jdbc</artifactId></dependency>
  1. 添加数据库参数配置

在application.properties文件添加类似如下配置信息

spring.datasource.url=jdbc:mysql://db.domin.com:3306/db_namespring.datasource.username=namespring.datasource.password=passwdspring.datasource.driver-class-name=com.mysql.jdbc.Driver
  1. 设计简单实体类

表结构如下,准备好数据之后,就可以参考设计自己的实体类。

设计的实体类如下:

package com.example.helloWorld;public class TCategory {private Integer f_id;private String f_name;private String f_crt_tm;private String f_mod_tm;private String f_desc;/****在编辑完上面的代码后,按p即可出现快捷输入*选择快捷代码右边有绿色的打开的锁的图标的代码即可出现下列代码**/public Integer getF_id() {return f_id;}public String getF_crt_tm() {return f_crt_tm;}public String getF_desc() {return f_desc;}public String getF_mod_tm() {return f_mod_tm;}public String getF_name() {return f_name;}public void setF_crt_tm(String f_crt_tm) {this.f_crt_tm = f_crt_tm;}public void setF_desc(String f_desc) {this.f_desc = f_desc;}public void setF_id(Integer f_id) {this.f_id = f_id;}public void setF_mod_tm(String f_mod_tm) {this.f_mod_tm = f_mod_tm;}public void setF_name(String f_name) {this.f_name = f_name;}
}
  1. 编写测试方法
@Resourceprivate JdbcTemplate jdbcTemplate;@Testpublic void mySqlTest(){String sql = "select f_id,f_name ,f_crt_tm,f_mod_tm,f_desc from t_category";List<TCategory> cateList = (List<TCategory>) jdbcTemplate.query(sql,new RowMapper<TCategory>(){@Overridepublic TCategory mapRow(ResultSet rs,int rowNum) throws SQLException {TCategory cate = new TCategory();cate.setF_id(rs.getInt("f_id"));cate.setF_crt_tm(rs.getString("f_crt_tm"));cate.setF_mod_tm(rs.getString("f_mod_tm"));cate.setF_name(rs.getString("f_name"));cate.setF_desc(rs.getString("f_desc"));return cate;}});System.out.println("Query ok:");for(TCategory itm:cateList){System.out.println(itm.getF_id()+"\t"+itm.getF_name()+"\t"+itm.getF_crt_tm()+"\t"+itm.getF_mod_tm()+"\t"+itm.getF_desc());}
}

测试方法还可以使用tomcat

 点击➕,选择tomcat服务器

 根据自己的tomcat版本选择相应的的服务程序,名称。URL和http端口可以自行定义

点击部署,加入相应的war包,保存后便可以正常运行。 

JdbcTemplate是一个通过JDBC连接数据库的辅助类。可通过如下代码引入:

<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-jdbc</artifactId></dependency>

@Resource是一个注解,可让Spring Boot协助实例化一个JdbcTemplate实例对象,省去初始化的工作。

6 执行测试

IDEA中选择测试方法,运行,可看到输出相关数据库的值。(小技巧,运行打包等操作之前可以clean一下然后再重新加载一下很多时候因为数据缓存导致运行失败的,那种情况查都查不出来)

三.将可以运行的文件上传到git仓库中。

首先,创建一个属于自己的git仓库,然后将项目提交并推送到git仓库中

Windows系统下搭建Git本地代码库「建议收藏」 - 腾讯云开发者社区-腾讯云

 这个是自己的git仓库地址,然后进行以下操作git-推送-选择需要变更的文件-提交并推送。

这样你可以在自己的git仓库中看到可以运行的软件

其实到这里已经成功的建立了一个javaweb的后端程序并上传到自己的git仓库,这样也不怕改错了导致需要重新编辑,可以随时从git上下载代码用idea打开。但是我们往往会使用到最后一个工具jenkins来将自己写的代码上传到企业的测试环境中,以及使用apifox进行测试。

四.上传及测试。

上传

上传工具我使用的是jenkins

 这里需要添加密匙,需要输入自己的git账号密码

 

 如果发现自己有的配置选项没有,就需要去dashboard下面的系统管理中的插件管理里面增加对应的插件。

配置完成之后可以运行

 然后查看构建历史

 然后点击最新的构建历史并查看控制台输出,看看是否运行成功或者问题出在哪里(一般构建需要较长的时间,如果几秒钟就构建完成并显示绿色的勾基本是没有上传文件,需要查看自己的配置)

 测试

 每个团队用到的测试软件都有差异,我这里使用的apifox,可以使用软件,也可以使用网页版,创建账号后可以新建团队,在新建团队里面可以邀请成员一起参与编辑和测试(前提是在同一个测试环境里面)

 这里我新建了一个演示项目

 打开之后点击新建接口

 

这里我们一般只用到GET(查找)和POST(修改)并在接口路径上写入URL 

我这里写入这个 

 然后保存,运行,发送

 到这一步就已经查询成功了。

 要注意格式,{

"name":"text",

"id":"1"

}

现在我们建立一个修改,在示例值里面写入想给其他成员看的查询/修改模板。

这里我没有增加ID所以报错(ID一般是在navicat中设置的主键)

保存运行之后,在动态值里面写入对应的数据,点击发送即可修改,如果加入对应的id主键就是修改,如果加入不存在的ID就是新增。

这里因为我的8888端口被fiddler占用了,关闭fiddler后

 帮助中心 | Apifox 帮助文档

 我这里修改name为name1,刷新一下chrome

修改成功 !

这是我最后一段数据库的数据,我将id设置为100后,刷新一下chrome 

 新增成功!

五.结束语

非常感谢能看到这里,本文主要提供了新人工作时可能遇到的一小部分情况。

如果有错误还望指出,谢谢各位。

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/27075.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

免费“白嫖” GPT-4 方法 +1, 开发者锐评:跟“偷”有什么区别?

整理 | 郑丽媛、出品 | CSDN&#xff08;ID&#xff1a;CSDNnews&#xff09; 前不久&#xff0c;可“白嫖” GPT-4 的 Forefront Chat 吸引了众多关注&#xff0c;导致该网站一度崩溃&#xff0c;也令不少人发出疑问&#xff1a;“GPT-4 这么贵&#xff0c;为什么它能免费让我…

chatgpt赋能python:免费Python软件——学习和开发的首选工具

免费Python软件——学习和开发的首选工具 Python是一门高级编程语言&#xff0c;流行于数据科学、机器学习、自然语言处理等领域。但是&#xff0c;许多初学者和开发者因为高昂的学习和购买成本而退缩。然而&#xff0c;免费的Python软件正在帮助更多人轻松学习和开发Python程…

chatgpt赋能python:免费的Python编程软件:开发者必备工具!

免费的Python编程软件&#xff1a;开发者必备工具&#xff01; Python是一门广受欢迎的编程语言&#xff0c;它已经成为了很多公司和开发者的首选语言。Python的出现改变了编程的方式&#xff0c;它具有简单、易懂、易读、易写、易拓展等特点&#xff0c;因此成为了很多新手入…

写 bug 速度提升200%!吊爆的 IDEA 使用技巧

来源&#xff1a;blog.xiaohansong.com/idea-live-templates.html 今天分享一篇idea技巧&#xff0c;让我们少写一些重复代码&#xff0c;提高效率~ 背景 Java 开发过程经常需要编写有固定格式的代码&#xff0c;例如说声明一个私有变量&#xff0c;logger或者bean等等。对于这…

chatgpt赋能Python-python886

Python886&#xff1a;一款优秀的Python IDE 作为一款Python开发的强大IDE&#xff0c;Python886 绝对不会让您失望。Python886 是 Python 编程语言的一个集成开发环境&#xff08;IDE&#xff09;&#xff0c;支持C、C、Python、PHP、Ruby、Perl等多种编程语言。Python886 具…

IntelliJ IDEA 2023.1 发布:新UI、支持Java 20、简化Git Commit、重新设计 “Run”

出品 | OSC开源社区&#xff08;ID&#xff1a;oschina2013) IntelliJ IDEA 2023.1 现已发布。此版本包括对新 UI 的改进&#xff0c;根据从用户那里收到的反馈进行了彻底改造。此外还实现了性能增强&#xff0c;从而在打开项目时更快地导入 Maven 和更早地使用 IDE 功能。由于…

npm安装教程

一、使用之前&#xff0c;我们先来掌握3个东西是用来干什么的。 npm: Nodejs下的包管理器。 webpack: 它主要的用途是通过CommonJS的语法把所有浏览器端需要发布的静态资源做相应的准备&#xff0c;比如资源的合并和打包。 vue-cli: 用户生成Vue工程模板。&#xff08;帮你快…

实用工具 | <01>ChatGPT-4——Cursor(AI代码神器)

目录 一、简单介绍 二、安装教程 三、使用教程 四、总结 一、简单介绍 ChatGPT是一个大型多模态模型&#xff0c;可以接受图像和文本输入&#xff0c;并生成文本输出。GPT-4是基于Transformer的模型&#xff0c;经过训练后可以预测文档中的next token。为了提高准确性和确保G…

分割一切后,Segment Anything又能分辨类别了:Meta/UTAustin提出全新开放类分割模型...

点击上方“AI遇见机器学习”&#xff0c;选择“星标”公众号 第一时间获取价值内容 前几日&#xff0c;Meta 推出了「分割一切」AI 模型 Segment Anything&#xff0c;令网友直呼 CV 不存在了&#xff1f;&#xff01;而在另一篇被 CVPR 2023 收录的论文中&#xff0c;Meta、UT…

无线电的节日

昨天坐车看东西&#xff0c;司机又拉过了&#xff0c;终于到家了 冥冥之中选择电磁场与无线电这个专业。这个专业就业方向包括射频、雷达和微波。后来跟着师傅选择了射频这条道路。 我老师当年说过你们要学英语&#xff0c;甚至还要学日语和德语&#xff0c;因为先进的创造来自…

Kotlin 集合操作符

集合操作符 集合操作符 一 (首字母 a - f) 这篇文章介绍下 Kotlin 集合中的操作符&#xff0c;本文中 Kotlin 所用版本是 1.8.10 all 判断集合中的所有元素是否满足需求&#xff0c;返回值为 Boolean 例如我们需要判断字符串的长度是否大于4 val songs listOf("一路…

讯飞星火认知大模型成果发布会举行

目录 一、提出通用人工智能七大维度481项评测体系 二、讯飞星火认知大模型三大能力已超ChatGPT 现场语音输入流畅 多维实测燃爆全场 写邮件、做方案、讲故事&#xff0c;讯飞星火大模型到底有多会写&#xff1f; 中文理解十级测试&#xff0c;现场观众&#xff1a;讯飞星火…

OpenAI 推出漏洞赏金计划,最高奖励 2 万美元;京东零售开启 5 年来最大组织变革;​Django 4.2|极客头条...

「极客头条」—— 技术人员的新闻圈&#xff01; CSDN 的读者朋友们早上好哇&#xff0c;「极客头条」来啦&#xff0c;快来看今天都有哪些值得我们技术人关注的重要新闻吧。 整理 | 梦依丹 出品 | CSDN&#xff08;ID&#xff1a;CSDNnews&#xff09; 一分钟速览新闻点&#…

“三项能力超过ChatGPT”,科大讯飞星火大模型现场接受观众挑战,写稿制表PPT通通拿下...

杨净 发自 合肥量子位 | 公众号 QbitAI “三项能力超过ChatGPT” “1024将整体超过GPT水平&#xff01;” 在科大讯飞星火认知大模型发布会现场&#xff0c;董事长刘庆峰拍着胸脯保证&#xff0c;引起现场掌声雷动&#xff01; 而真机演示效果和多场景产品展示直接把观众们看呆…

自然机器人最新发布:智能流程助手,与GPT深度融合

ChatGPT自2022年11月上线后就受到现象级地广泛关注&#xff0c;5天时间用户就已经突破百万&#xff0c;仅2个月时间月活用户就突破1亿&#xff0c;成为史上增速最快的消费级应用&#xff0c;远超TikTok、Facebook、Google等全球应用。它展现了类似人类的语言理解和对话交互能力…

go语言实现聊天服务器(多人聊天)

用go语言实现一个server作中转群发消息&#xff0c;多个客户端聊天 1&#xff09;服务器开启&#xff0c;等待来自客户端的连接&#xff0c;把每一个客户端存储在map中 2&#xff09;客户端连接服务器&#xff0c;给自己取一个别名&#xff0c;存储在服务器 3&#xff09;服…

Golang 从零开始实现多人聊天室(三)上线通知与公屏聊天

系列文章目录 跟着&#x1f63d;猫猫学Golang&#xff0c;快人一步 系列初开&#xff0c;跟着我走进Go 语言的世界里&#x1f30d; 系列目录 Golang 从零开始实现多人聊天室&#xff08;一&#xff09;服务端监听 Golang 从零开始实现多人聊天室&#xff08;二&#xff09;客…

商务人士邮箱推荐?高大上邮箱来了!

既然点进文章那不用多说&#xff0c;大家肯定都是商务人士。在普通人眼里商务人士就等于精英人士&#xff0c;他们的行头都是一身西装梳着根根分明的大背头&#xff0c;他们会多国语言精通各种数字&#xff0c;总之就是看起来很厉害每天很精致。那商务人士到底是不是这样呢我也…

商务人士适合用什么邮箱?一款商务人士必备的邮箱推荐

在商务及办公场合中&#xff0c;电子邮箱的使用越加频繁&#xff0c;对于邮箱的选择安全及易用性成为了重中之重。 如果你是金融、互联网、法律、机关单位等领域的商务人士&#xff0c;或者你需要将邮箱作为对外的入口&#xff0c;对你而言&#xff0c;一个可靠的付费邮箱是非…

国内好用的邮箱评选,电子邮箱大全有你的吗?

国内邮箱、好用的邮箱、电子邮箱大全、163邮箱、TOM邮箱、邮箱品牌 早在三国时期&#xff0c;一种说法便流传至今&#xff0c;这酒是“三分天下”&#xff0c;最早是指三国时期魏、蜀、吴三国鼎立并且互相牵制的局面。在现代&#xff0c;也常常引用“三分天下”来形容某市场或…