SpringCloud学习之路(一)-简单Demo

首先,我们先在C:\Windows\System32\drivers\etc路径下的hosts最后添加两个地址用于模拟服务端以及消费端的IP

 
127.0.0.1 dept-8001.com #微服务端127.0.0.1 client.com #消费端

 

SpringCloud的一个最基础Demo,本地真实模拟环境(服务的创建者以及消费者),这是我们Demo截图:

分为一个parent(microcloud),三个Module分别是:microcloud-api,microcloud-consumer-80(消费者),microcloud-provider-dept-8001(服务的提供者)

以下是四个Maven项目各自源码

  • 1.microcloud,新建一个pom的maven项目。

pom.xml

<?xml version="1.0" encoding="UTF-8"?><project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"><modelVersion>4.0.0</modelVersion><groupId>com.jmx</groupId><artifactId>microcloud</artifactId><version>0.0.1</version><packaging>pom</packaging><name>microcloud</name><url>http://maven.apache.org</url><properties><jdk.version>1.8</jdk.version><project.build.sourceEncoding>UTF-8</project.build.sourceEncoding></properties><dependencyManagement><dependencies><dependency><groupId>com.jmx</groupId><artifactId>microcloud-api</artifactId><version>0.0.1</version></dependency><dependency> <!-- 进行SpringCloud依赖包的导入处理 --><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-dependencies</artifactId><version>Dalston.SR1</version><type>pom</type><scope>import</scope></dependency><dependency> <!-- SpringCloud离不开SpringBoot,所以必须要配置此依赖包 --><groupId>org.springframework.boot</groupId><artifactId>spring-boot-dependencies</artifactId><version>1.5.4.RELEASE</version><type>pom</type><scope>import</scope></dependency><dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId><version>5.0.4</version></dependency><dependency><groupId>com.alibaba</groupId><artifactId>druid</artifactId><version>1.0.31</version></dependency><dependency><groupId>org.mybatis.spring.boot</groupId><artifactId>mybatis-spring-boot-starter</artifactId><version>1.3.0</version></dependency></dependencies></dependencyManagement><build><finalName>microcloud</finalName><plugins><plugin><groupId>org.apache.maven.plugins</groupId><artifactId>maven-compiler-plugin</artifactId><configuration><source>${jdk.version}</source><!-- 源代码使用的开发版本 --><target>${jdk.version}</target><!-- 需要生成的目标class文件的编译版本 --><encode>${project.build.sourceEncoding}</encode></configuration></plugin></plugins></build><modules><module>microcloud-api</module><module>microcloud-provider-dept-8001</module><module>microcloud-consumer-80</module></modules></project>

 

  • 2.microcloud-api,类型为module的maven的项目,这个项目主要就放一些vo类

pom.xml

<?xml version="1.0" encoding="UTF-8"?><project xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd" xmlns="http://maven.apache.org/POM/4.0.0"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"><modelVersion>4.0.0</modelVersion><parent><groupId>com.jmx</groupId><artifactId>microcloud</artifactId><version>0.0.1</version></parent><groupId>com.jmx</groupId><artifactId>microcloud-api</artifactId><version>0.0.1</version><name>microcloud-api</name><url>http://maven.apache.org</url><properties><project.build.sourceEncoding>UTF-8</project.build.sourceEncoding></properties></project>

 

Dept.java

package com.jmx.vo;import java.io.Serializable;/**部门VO类* @author JMX**/@SuppressWarnings("serial")public class Dept implements Serializable {private Long deptno;private String dname;private String loc;public Long getDeptno() {return deptno;}public void setDeptno(Long deptno) {this.deptno = deptno;}public String getDname() {return dname;}public void setDname(String dname) {this.dname = dname;}public String getLoc() {return loc;}public void setLoc(String loc) {this.loc = loc;}@Overridepublic String toString() {return "Dept [deptno=" + deptno + ", dname=" + dname + ", loc=" + loc + "]";}}

数据库创建脚本-8001.sql,使用的是MySQL5.5

 
DROP DATABASE IF EXISTS "jmx8001" ;CREATE DATABASE jmx8001 CHARACTER SET UTF8 ;USE jmx8001 ;CREATE TABLE dept (deptno BIGINT AUTO_INCREMENT ,dname VARCHAR(50) ,loc VARCHAR(50) ,CONSTRAINT pk_deptno PRIMARY KEY(deptno)) ;INSERT INTO dept(dname,loc) VALUES ('开发部',database()) ;INSERT INTO dept(dname,loc) VALUES ('财务部',database()) ;INSERT INTO dept(dname,loc) VALUES ('市场部',database()) ;INSERT INTO dept(dname,loc) VALUES ('后勤部',database()) ;INSERT INTO dept(dname,loc) VALUES ('公关部',database()) ;
  • 3.*microcloud-provider-dept-8001这个是微服务的创建者,在这里我们要将SpringBoot整合Mybatis

pom.xml

<?xml version="1.0" encoding="UTF-8"?><project xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd" xmlns="http://maven.apache.org/POM/4.0.0"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"><modelVersion>4.0.0</modelVersion><parent><groupId>com.jmx</groupId><artifactId>microcloud</artifactId><version>0.0.1</version></parent><groupId>com.jmx</groupId><artifactId>microcloud-provider-dept-8001</artifactId><version>0.0.1</version><name>microcloud-provider-dept-8001</name><url>http://maven.apache.org</url><properties><project.build.sourceEncoding>UTF-8</project.build.sourceEncoding></properties><dependencies><dependency><groupId>com.jmx</groupId><artifactId>microcloud-api</artifactId></dependency><dependency><groupId>junit</groupId><artifactId>junit</artifactId><scope>test</scope></dependency><dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId></dependency><dependency><groupId>com.alibaba</groupId><artifactId>druid</artifactId></dependency><dependency><groupId>ch.qos.logback</groupId><artifactId>logback-core</artifactId></dependency><dependency><groupId>org.mybatis.spring.boot</groupId><artifactId>mybatis-spring-boot-starter</artifactId></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-jetty</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><scope>test</scope></dependency><dependency><groupId>org.springframework</groupId><artifactId>springloaded</artifactId></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-devtools</artifactId></dependency></dependencies></project>

 

Dept_8001_StartSpringCloudApplication.java

package com.jmx.microcloud;import org.springframework.boot.SpringApplication;import org.springframework.boot.autoconfigure.SpringBootApplication;/**程序主类* @author JMX**/@SpringBootApplicationpublic class Dept_8001_StartSpringCloudApplication {public static void main(String[] args) {SpringApplication.run(Dept_8001_StartSpringCloudApplication.class, args);}}

 

IDeptDao.java

package com.jmx.microcloud.dao;import java.util.List;import org.apache.ibatis.annotations.Mapper;import com.jmx.vo.Dept;@Mapperpublic interface IDeptDao {public boolean doCreate(Dept vo);public Dept findById(int id);public List<Dept>findAll();}

 

DeptRest.java

package com.jmx.microcloud.rest;import java.util.List;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.web.bind.annotation.PathVariable;import org.springframework.web.bind.annotation.RequestBody;import org.springframework.web.bind.annotation.RequestMapping;import org.springframework.web.bind.annotation.RequestMethod;import org.springframework.web.bind.annotation.RestController;import com.jmx.microcloud.service.IDeptService;import com.jmx.vo.Dept;@RestControllerpublic class DeptRest {@Autowiredprivate IDeptService ideptService;@RequestMapping(value="/dept/get/{id}",method=RequestMethod.GET)public Dept get(@PathVariable(value="id")int id) {return ideptService.get(id);}@RequestMapping(value="/dept/add",method=RequestMethod.POST)public boolean add(@RequestBody Dept dept) {return ideptService.add(dept);}@RequestMapping(value="/dept/list",method=RequestMethod.GET)public List<Dept> list() {return ideptService.list();}}

 

IDeptService.java

package com.jmx.microcloud.service;import java.util.List;import com.jmx.vo.Dept;public interface IDeptService {public Dept get(int id);public boolean add(Dept dept);public List<Dept>list();}

 

DeptServiceImpl.java

package com.jmx.microcloud.service.impl;import java.util.List;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.stereotype.Service;import com.jmx.microcloud.dao.IDeptDao;import com.jmx.microcloud.service.IDeptService;import com.jmx.vo.Dept;@Servicepublic class DeptServiceImpl implements IDeptService {@Autowiredprivate IDeptDao ideptdao;@Overridepublic Dept get(int id) {// TODO 自动生成的方法存根return ideptdao.findById(id);}@Overridepublic boolean add(Dept dept) {// TODO 自动生成的方法存根return ideptdao.doCreate(dept);}@Overridepublic List<Dept> list() {// TODO 自动生成的方法存根return ideptdao.findAll();}}

 

Dept.xml

<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN""http://mybatis.org/dtd/mybatis-3-mapper.dtd"><mapper namespace="com.jmx.microcloud.dao.IDeptDao"><select id="findById" resultType="Dept" parameterType="int">SELECT deptno,dname,loc FROM dept WHERE deptno=#{deptno} ;</select><select id="findAll" resultType="Dept">SELECT deptno,dname,loc FROM dept ;</select><insert id="doCreate" parameterType="Dept">INSERT INTO dept(dname,loc) VALUES (#{dname},database()) ;</insert></mapper>

 

 

application.yml     SpringBoot整合配置文件

server:port: 8001mybatis:config-location: classpath:mybatis/mybatis.cfg.xml # mybatis配置文件所在路径type-aliases-package: com.jmx.vo # 定义所有操作类的别名所在包mapper-locations: # 所有的mapper映射文件- classpath:mybatis/mapper/**/*.xmlspring:datasource:type: com.alibaba.druid.pool.DruidDataSource # 配置当前要使用的数据源的操作类型driver-class-name: org.gjt.mm.mysql.Driver # 配置MySQL的驱动程序类url: jdbc:mysql://localhost:3307/jmx8001?useUnicode=true&characterEncoding=utf-8 # 数据库连接地址username: root # 数据库用户名password: 123456 # 数据库连接密码dbcp2: # 进行数据库连接池的配置min-idle: 5 # 数据库连接池的最小维持连接数initial-size: 5 # 初始化提供的连接数max-total: 5 # 最大的连接数max-wait-millis: 200 # 等待连接获取的最大超时时间

 

mybatis.cfg.xml

<?xml version="1.0" encoding="UTF-8" ?><!DOCTYPE configurationPUBLIC "-//mybatis.org//DTD Config 3.0//EN""http://mybatis.org/dtd/mybatis-3-config.dtd"><configuration> <!-- 进行Mybatis的相应的环境的属性定义 --><settings> <!-- 在本项目之中开启二级缓存 --><setting name="cacheEnabled" value="true"/></settings></configuration>

 

logback.xml

<?xml version="1.0" encoding="UTF-8"?><configuration scan="true"><property name="APP" value="${project.artifactId}" /><property name="LOG_HOME" value="/data/www/log/${APP}" /><appender name="CONSOLE" class="ch.qos.logback.core.ConsoleAppender"><encoder><pattern>%d{yy-MM-dd.HH:mm:ss.SSS} [%-16t] %-5p %-22c{0} %X{ServiceId} - %m%n</pattern></encoder></appender><appender name="DETAIL"class="ch.qos.logback.core.rolling.RollingFileAppender" additivity="false"><File>${LOG_HOME}/${APP}_detail.log</File><encoder><pattern>%d{yy-MM-dd.HH:mm:ss.SSS} [%-16t] %-5p %-22c{0} %X{ServiceId} - %m%n</pattern></encoder><rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"><fileNamePattern>${LOG_HOME}/${APP}_detail.log.%d{yyyyMMdd}</fileNamePattern></rollingPolicy></appender><appender name="ACCESS"class="ch.qos.logback.core.rolling.RollingFileAppender" additivity="false"><File>${LOG_HOME}/${APP}_access.log</File><encoder><pattern>%d{yy-MM-dd.HH:mm:ss.SSS};%X{ServiceId};%m%n</pattern></encoder><rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"><fileNamePattern>${LOG_HOME}/${APP}_access.log.%d{yyyyMMdd}</fileNamePattern></rollingPolicy></appender><logger name="ACCESS"><appender-ref ref="ACCESS" /></logger><logger name="druid.sql.Statement" level="DEBUG" /><logger name="com.jmx.microcloud.dao" level="TRACE" /><root level="INFO"><appender-ref ref="DETAIL" /><appender-ref ref="CONSOLE" /></root></configuration>

 

IDeptServiceTest.java,微服务测试类,在这里就不测试了,等会再浏览器里面测试.

package com.jmx.test;import org.junit.Test;import org.junit.runner.RunWith;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.boot.test.context.SpringBootTest;import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;import org.springframework.test.context.web.WebAppConfiguration;import com.jmx.microcloud.Dept_8001_StartSpringCloudApplication;import com.jmx.microcloud.service.IDeptService;import com.jmx.vo.Dept;@SpringBootTest(classes = Dept_8001_StartSpringCloudApplication.class)@RunWith(SpringJUnit4ClassRunner.class)@WebAppConfigurationpublic class IDeptServiceTest {@Autowiredprivate IDeptService ideptService;@Testpublic void testGet() {System.out.println(ideptService.get(1));}@Testpublic void testAdd() {Dept dept = new Dept() ;dept.setDname("测试部-" + System.currentTimeMillis());System.out.println(ideptService.add(dept));}@Testpublic void testList() {System.out.println(ideptService.list());}}

 

以上就是微服务的创建项目Demo,我们运行SpringBoot的Dept_8001_StartSpringCloudApplication.java

OK,我们的微服务创建者测试完毕

 

4.*microcloud-consumer-80这是我们的消费者

pom.xml

<?xml version="1.0" encoding="UTF-8"?><project xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd" xmlns="http://maven.apache.org/POM/4.0.0"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"><modelVersion>4.0.0</modelVersion><parent><groupId>com.jmx</groupId><artifactId>microcloud</artifactId><version>0.0.1</version></parent><groupId>com.jmx</groupId><artifactId>microcloud-consumer-80</artifactId><version>0.0.1</version><name>microcloud-consumer-80</name><url>http://maven.apache.org</url><properties><project.build.sourceEncoding>UTF-8</project.build.sourceEncoding></properties><dependencies><dependency><groupId>com.jmx</groupId><artifactId>microcloud-api</artifactId></dependency><dependency><groupId>junit</groupId><artifactId>junit</artifactId><scope>test</scope></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-jetty</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><scope>test</scope></dependency><dependency><groupId>org.springframework</groupId><artifactId>springloaded</artifactId></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-devtools</artifactId></dependency></dependencies></project>

 

 

Consumer_80_StartSpringCloudApplication.java

package com.jmx.microcloud;import org.springframework.boot.SpringApplication;import org.springframework.boot.autoconfigure.SpringBootApplication;@SpringBootApplicationpublic class Consumer_80_StartSpringCloudApplication {public static void main(String[] args) {SpringApplication.run(Consumer_80_StartSpringCloudApplication.class,args);}}

 

RestConfig.java

package com.jmx.microcloud.config;import org.springframework.context.annotation.Bean;import org.springframework.context.annotation.Configuration;import org.springframework.web.client.RestTemplate;@Configurationpublic class RestConfig {@Beanpublic RestTemplate getRestTemplate() {return new RestTemplate() ;}}

 

ConsumerDeptController.java

package com.jmx.microcloud.controller;import java.util.List;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.web.bind.annotation.RequestMapping;import org.springframework.web.bind.annotation.RestController;import org.springframework.web.client.RestTemplate;import com.jmx.vo.Dept;@RestControllerpublic class ConsumerDeptController {public static final String DEPT_GET_URL = "http://dept-8001.com:8001/dept/get/";public static final String DEPT_LIST_URL = "http://dept-8001.com:8001/dept/list/";public static final String DEPT_ADD_URL = "http://dept-8001.com:8001/dept/add";@Autowiredprivate RestTemplate restTemplate;@RequestMapping(value = "/consumer/dept/get")public Object getDept(long id) {Dept dept = restTemplate.getForObject(DEPT_GET_URL + id,Dept.class);return dept;}@SuppressWarnings("unchecked")@RequestMapping(value = "/consumer/dept/list")public Object listDept() {List<Dept> allDepts = this.restTemplate.getForObject(DEPT_LIST_URL,List.class);return allDepts;}@RequestMapping(value = "/consumer/dept/add")public Object addDept(Dept dept) {Boolean flag = this.restTemplate.postForObject(DEPT_ADD_URL, dept,Boolean.class);return flag;}}

 

application.yml

server:port: 80

 

这样我们的消费者搭建好了

5.开始测试消费者是否调用微服务

分别运行

都运行成功后

 

我们看看数据库里是否新增了数据

OK,最基础的Demo已经搭建完成

以上内容转载自https://blog.csdn.net/hsrlzg/article/details/79318312

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

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

相关文章

Oracle数据库数据泵导入导出

由于开发过程中有时候无法直接连数据库&#xff0c;这时候需要将数据库导入开发环境中&#xff0c;故此总结一个完整的数据库导入导出过程。 注意expdp和impdp命令末尾都不能加分号 1 导出某个用户的所有数据库对象 1.1 Linux导出 su - oracle 授权用户grant exp_full_data…

eclipse工作区打不开的解决方案

今天上班的时候发现eclipse打开总是闪退&#xff0c;刚开始以为是eclipse的问题&#xff0c;后来才发现是工作区的问题。 分享出来&#xff0c;希望能够帮助遇到同样问题的人。 1 设置询问打开的工作区 eclipse安装目录\configuration\.settings\org.eclipse.ui.ide.prefs&a…

日期时间总结

今天总结一下日期时间如何处理&#xff0c;方便以后查看。 1 Oracle 1.1 日期格式参数及其含义说明 Oracle不区分大小写&#xff0c;所以下面参数大小写都可以 D 一周中的星期几 DAY 天的名字&#xff0c;使用空格填充到9个字符 DD …

Oracle对象被锁如何处理

1 查看被锁住的对象 select object_name,machine,s.sid,s.SERIAL# from v$locked_object l,dba_objects o ,v$session s where l.object_id  o.object_id and l.session_ids.sid; 2 解锁 将1中查询出的sid和serial#&#xff0c;作为参数 alter system kill session 2400,…

BeycondCompare3破解绿色版下载

链接: https://pan.baidu.com/s/1GBtkLdqU7wTAzjvn2QfHrw 提取码: rzcw 复制这段内容后打开百度网盘手机App&#xff0c;操作更方便哦

Oracle rowid和rownum的区别

rowid和rownum在本质上有区别&#xff1a; rowid rowid是物理结构上的&#xff0c;每插入一行数据&#xff0c;都会生成一条唯一的编号。可以说默认排序是根据rownum升序的&#xff0c;但是本质上还是根据rowid升序排列的。 rownum rownum可以说是伪列&#xff0c;并不存在&a…

Oracle/mysql联合查询union、union all

若无特殊说明&#xff0c;oracle与mysql均适用 使用场景 union、union all关键字用户将两个select查询结果集合并成一个结果集&#xff0c;例如&#xff1a;一个旧系统使用a表&#xff0c;同样的信息但是新系统使用了b表&#xff0c;这时候可以使用union或者union all关键字将…

【JAVA基础篇】反射

一、反射的概念 是指在运行过程中&#xff0c;对于任意一个类&#xff0c;都能够知道这个类的所有属性和方法&#xff1b;对于任意一个对象&#xff0c;都能够调用这个对象的所有方法和属性。这种动态获取信息和动态调用方法的功能称为JAVA的反射机制。 二、反射的优缺点 2.…

在线工具

分享一下很实用的在线工具 在线HTTP接口测试 草料二维码 站长之家

【JAVA基础篇】面对对象的特征

面对对象的3大特征是&#xff1a;封装、继承和多态 封装 封装就是将客观的事物封装成抽象的类&#xff0c;这个类包含这类事物共同的特性和行为&#xff0c;特性对应类的成员变量&#xff0c;行为对应类的成员方法。 封装就是将一批具有相同特性和行为的客观事物封装成抽象类…

【JAVA基础篇】final、finally和finalize

final final表示最终的、不可被更改的&#xff0c;用来修饰类、成员方法和变量&#xff0c;通常处于两方面的考虑来使用它&#xff1a;特殊的设计和效率。 final类 一个类如果确信没有子类或者这个类的方法不允许修改&#xff0c;那么就把这个类定义成final类。 final类的成…

【JAVA基础篇】抽象类和接口的区别

抽象类和接口是定义抽象概念的两种方式&#xff0c;正是由于抽象类和接口&#xff0c;才赋予了Java强大的面向对象的能力。在讨论他们的不同点之前&#xff0c;我们先来了解抽象类和接口。 抽象类 在面向对象的领域一切事物都是对象。对象都是通过类来描述的&#xff0c;但是反…

Oracle常用函数总结

Oracle函数&#xff0c;当任意一个参数为空字符串或者null时&#xff0c;结果返回null 聚合函数 count 使用方式有5种 select count(*) from student;--统计总行数 select count(0) from student;--统计总行数,括号里面的0表示什么意思&#xff1f; select count(id) from …

【JAVA基础篇】==、equals和hashCode的区别和联系

作用&#xff1a;比较两个操作数的关系&#xff0c;返回一个boolean类型的结果 具体含义&#xff1a;如果两个操作数是基本数据类型&#xff0c;比较值是否相等。如果两个操作数是引用类型&#xff0c;那么比较的是内存地址是否相同。 equals Object类的实例方法&#xff0c…

【JAVA基础篇】内部类

定义在一个类内部的类称为内部类。内部类访问权限可以是public、protected、default或private&#xff0c;可以声明为abstract供其他内部类或外部类继承&#xff0c;可以声明为static、final&#xff0c;也可以实现特定的接口。外部类可以访问内部类的所有方法与属性&#xff0…

【JAVA基础篇】访问权限

所谓访问权限&#xff0c;指的是本类的成员变量、成员方法和内部类对其他类的可见性。 四种访问权限 Java一共有四种访问权限&#xff0c;按照权限由大到小分别为public、protected、default和private&#xff0c;如果省略了访问修饰符&#xff0c;那访问权限就是defualt。四…

Oracle存储过程

什么是存储过程 存储过程是一组为了完成特定功能的SQL语句&#xff0c;经编译后存在数据库&#xff0c;存储过程是数据库中的一个重要对象。 ps:有人说&#xff1a;任何一个设计良好的数据库应用程序都应该用到存储过程&#xff0c;我觉得这个不一定&#xff0c;其实很多互联…

解决debug JDK source无法查看局部变量的问题

首先进入传送门&#xff1a;https://blog.csdn.net/majian_1987/article/details/51273609 进行上面的操作之后&#xff0c;这个时候我们来debug一下jdk源码&#xff0c;发现可以查看局部变量。但是这时候又发现一个问题&#xff0c;在我自己的代码里按住ctrl鼠标左键单击无法…

【JAVA基础篇】多线程

学习Java的多线程知识之前&#xff0c;我们先来了解一下进程和线程的概念&#xff0c;以及他们之间的关系。 进程 基本概念 进程是具有独立功能的程序在某个数据集合上的一次执行过程。 特点 进程是操作系统进行资源分配的基本单位。每个进程都有自己的地址空间&#xff0…

配置JAVA开发环境

1、首先去Oracle官方网站下载所需版本的JDKhttp://java.sun.com/products/archive/&#xff0c;然后安装&#xff0c;其实只需要安装jdk就可以了&#xff0c;不需要安装jre 2、按照后配置环境变量JAVA_HOME 然后在path最前面添加%JAVA_HOME%\bin; 3、cmd中输入java -version,提…