构建一个Web工程所需的环境搭建(详细图文)_写一个springweb项目需要搭建哪些-程序员宅基地

技术标签: spring  java  tomcat  JavaEE  mybatis  mysql  WEB工程  


前言

相信大多数人在搭建自己的第一个WEB项目时,都会有一下子接触到很多应用软件而手足无措的经历。这里是我搭建WEB项目时,用到的很多软件从下载到配置一条龙服务的总结(项目源码网址)。希望这篇文章不仅能为我下次重新搭建项目时省下很多查资料的时间,也能为大家带来帮助,觉得有需要的朋友记得收藏!

一、安装Java

1.下载JDK

  • JDK是Java Development Kit的缩写,,即中文Java开发工具。
  • 它提供了编译、运行Java程序所需的各种工具和资源,包括Java编译器、Java运行时环境(JRE),以及常用的Java类库等。

JDK的介绍

JDK下载网页
当你下载的是zip版本,解压后就好了;如果你下载的是exe版本,就需要进行安装操作,根据安装引导就可以完成。

2.配置Java环境变量

1).在系统变量中新建一个JAVA_HOME变量,将安装在电脑中的JDK的bin目录路径赋值给该变量
系统变量
2).在用户变量的Path中,新建一个环境变量,赋值%JAVA_HOME%\bin

环境变量

3.检验配置的结果

  • 按win+R打开运行框,输入cmd进入到命令行窗口。在窗口中输入java -version,当出现了正确的版本号就表示JDK环境配置成功了

检验结果

二、安装MySQL和SQLyog

1.下载MySQL

2.下载SQLyog

  • SQLyog是一款免费的可视化操作MySQL数据库的软件,它内置视觉架构设计器、可视查询生成器、查询格式化程序,能够智能代码补全、具有语法高亮显示和各种自动格式设置选项的编辑器。
  • 安装包从该网址下载点击这里

官网地址

三、安装TomCat服务器

  • TomCat服务器主要用于将JavaWeb工程部署上去,以便与可以在浏览器中访问。该服务器免费,使用率比较高。

1.下载TomCat

tomcat同样是直接解压文件就行(和JDK一样解压即用)

2.配置环境变量(可以跳过这个步骤)

  • 因为是解压即用,所以只需要配置环境变量。如果不配置环境变量,就只能在tomcat安装的bin目录中启动和停止。
  • 当然也可以配置环境变量,这样就可以在任何目录下启动,具体配置的步骤和JDK、Maven一样。

3.验证tomcat是否配置成功

  • 如果跳过了步骤2,此时必须在tomcat安装的bin目录下打开命令行窗口,输入命令startup.bat或者双击bin目录下的startup.bat。此时会出现一个启动窗口如下,然后访问网页http://localhost:8080/,如果能显示如下页面,即安装配置成功。关闭TomCat窗口,服务就会停止。
    启动窗口成功页面

4.TomCat启动过程遇到的问题

  • 双击startup.bat启动时,窗口会一闪而过
    可以在startup.bat文件最后加上pause
    加上pause
  • 与JDK版本不适配,导致启动失败
    版本不匹配会导致启动后,没有TomCat窗口弹出来,此时需要降低TomCat的版本
    在这里插入图片描述
  • cmd窗口乱码的原因
    因为windows系统的默认编码是GBK(936),而TomCat的默认编码是UTF-8(65001)
    命令行默认编码
    使用chcp 65001可以临时将编码方式修改为UTF-8,下次打开命令行又会变成GBK
    修改后的编码
    想要永久将命令行编码格式改成UTF-8,可以在以下图片中的位置修改,但此时会导致电脑别的地方出现乱码(不建议永久)
    备注:将TomCat的编码方式改成GBK也可以,但是会导致IDEA中的日志出现乱码,所以同样不建议
    在这里插入图片描述

5.在tomcat中部署web项目

主要把握好路径对应位置关系。详细请见文章点击这里

四、安装IDE(IDEA)

  • JetBrains IDEA是一款被广泛使用的IDE(集成开发环境),被称为"最好的Java IDE"。它为Java开发提供了许多有用的功能,包括代码自动完成、智能重构、代码调试、版本控制、代码审查等。IDEA还支持其他编程语言,如Kotlin、Python、JavaScript等。

1.下载IDEA

  • 进入JetBrains公司的官网点击这里,选择下载Intellij IDEA
    IDEA下载官网
    可以根据自己电脑的配置选择对应的版本
    选择其他版本的入口

2.安装IDEA

  • 下载exe版本后,双击进入安装引导程序,安装完成即可
    IDEA安装界面

五、安装Maven

  • Maven是著名Apache公司下基于Java开发的开源项目,用于依赖版本的控制。只需要在pom.xml文件中配置依赖,maven就可以自动帮你加入jar包。

1.下载Maven

Maven下载网址

  • 选择版本,根据IDEA的版本来选,低版本的IDEA无法运行高版本的Maven,合适才最重要!
    版本对应情况

Maven下载官网

  • maven的安装很简单,就是直接解压文件就行(和JDK一样解压即用,当然了,前提是你下载的是zip压缩包格式

2.配置Maven的环境变量

  • 同配置Java环境变量一样

1).在系统变量中新建一个MAVEN_HOME变量,将安装在电脑中的Maven的bin目录路径赋值给该变量
在这里插入图片描述

2).在用户变量的Path中,新建一个环境变量,赋值%MAVEN_HOME%\bin
配置Path
3).检验环境配置的结果
win+R打开运行窗口,输入cmd运行命令行窗口
配置结果

3.配置Maven的settings.xml文件

根据下图的路径配置settings.xml文件
在这里插入图片描述1).新建一个repositor文件夹,作为存放jar包的本地库,配置代码如下

  <!--配置本地库-->
  <localRepository>F:\Maven\maven3.8.6-repository</localRepository>

2).修改中央仓库为阿里源,因为镜像仓库的访问速度很快,阿里云的镜像网站有很多,详情信息看点击这里

<!--配置镜像网站,这里为阿里源-->
    <mirror>
      <id>nexus-aliyun</id>
      <mirrorOf>central</mirrorOf>
      <name>Nexus aliyun</name>
      <url>http://maven.aliyun.com/nexus/content/repositories/central</url>
    </mirror>

3).配置默认JDK的版本

<!--配置默认JDK的版本-->
    <profile>
      <id>jdk-1.8</id>
      <activation>
        <activeByDefault>true</activeByDefault>
        <jdk>1.8</jdk>
      </activation>
      <properties>
        <maven.compiler.source>1.8</maven.compiler.source>
        <maven.compiler.target>1.8</maven.compiler.target>
        <maven.compiler.compilerVersion>1.8</maven.compiler.compilerVersion>
      </properties>
    </profile>

4.集成到IDEA中

详细请见文章点击这里

5.补充-在maven中导入第三方jar包或者自己封装的jar包

  • 抓住maven管理jar包的思路——就是根据pom.xml文件从本地库中找到依赖添加到相应的工程中,如果本地库中没有找到就从中央仓库中找,然后下载到本地库中。一般情况下,第三方jar包没有pom.xml文件,而自己封装的jar包pom.xml文件可能有些问题,所以得通过Maven命令对jar进行安装,也就是install到本地库中。
  • 在命令行中输入相关命令:
mvn install:install-file -Dfile=F:\Maven\maven3.6.3-repository\com\atming\maven\myssm.jar -DgroupId=com.atming.maven -DartifactId=myssm -Dversion=1.0 -Dpackaging=jar
  • 其中file路径可以随便填,只要是jar的路径即可;groupId、artifactId、version均可随便填,规范就行;packaging填jar或者war

六、配置框架

在项目初始化时,首先加载 web.xml 文件,启动 Spring MVC 的 DispatcherServlet,并指定其他配置文件的位置和启动参数。然后加载 applicationContext.xml,通过读取并解析此文件,配置整个 Spring 应用程序。接下来加载 mybatis-config.xml,用于配置 MyBatis 框架的全局属性和映射器等。最后加载 springmvc-servlet.xml,用于配置 Spring MVC 框架的 Web 层相关组件。详细流程见文章点击这里

1.配置pom.xml

  • 根据这个网站点击这里,找到自己需要的jar包的三大坐标,加入到pom.xml中即可自动导入对应版本的jar包。
<?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">
<!--    父项目坐标信息-->
    <parent>
        <artifactId>Java-Web</artifactId>
        <groupId>com.atming.maven</groupId>
        <version>1.0-SNAPSHOT</version>
    </parent>
    <modelVersion>4.0.0</modelVersion>
<!--    自身坐标信息-->
    <artifactId>bookcity-springMVC</artifactId>
    <version>1.0-SNAPSHOT</version>
    <packaging>war</packaging>

<!--    常量-->
    <properties>
        <maven.compiler.source>16</maven.compiler.source>
        <maven.compiler.target>16</maven.compiler.target>
        <spring.version>5.3.1</spring.version>
    </properties>

    <dependencies>

<!--        spring中上下文依赖-->
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-context</artifactId>
            <version>${spring.version}</version>
        </dependency>
<!--        spring中管理bean的依赖-->
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-beans</artifactId>
            <version>${spring.version}</version>
        </dependency>
<!--        springmvc的依赖-->
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-web</artifactId>
            <version>${spring.version}</version>
        </dependency>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-webmvc</artifactId>
            <version>${spring.version}</version>
        </dependency>
<!--        spring整合jdbc的依赖,提供了DataSourceTransactionManager-->
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-jdbc</artifactId>
            <version>${spring.version}</version>
        </dependency>
<!--        spring中构建切面的依赖,用于事务管理-->
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-aspects</artifactId>
            <version>${spring.version}</version>
        </dependency>
<!--        spring整合junit的依赖,方便在测试类中以依赖注入的方式使用ioc容器-->
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-test</artifactId>
            <version>${spring.version}</version>
        </dependency>
        <!--Mybatis核心-->
        <dependency>
            <groupId>org.mybatis</groupId>
            <artifactId>mybatis</artifactId>
            <version>3.5.7</version>
        </dependency>
        <!--mybatis和spring.的整合包,其中提供了SqlSessionFactoryBean-->
        <dependency>
            <groupId>org.mybatis</groupId>
            <artifactId>mybatis-spring</artifactId>
            <version>2.0.6</version>
        </dependency>
<!--        Druid数据库连接池依赖-->
        <!-- https://mvnrepository.com/artifact/com.alibaba/druid -->
        <dependency>
            <groupId>com.alibaba</groupId>
            <artifactId>druid</artifactId>
            <version>1.1.10</version>
        </dependency>
<!--        junit依赖-->
        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <version>4.13.1</version>
            <scope>test</scope>
        </dependency>
<!--        数据库连接依赖-->
        <!-- https://mvnrepository.com/artifact/mysql/mysql-connector-java -->
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <version>8.0.30</version>
        </dependency>
        <!--L0g4j日志,用于mybatis执行时展示细节-->
        <dependency>
            <groupId>log4j</groupId>
            <artifactId>log4j</artifactId>
            <version>1.2.17</version>
        </dependency>
<!--        分页插件的依赖-->
        <!-- https://mvnrepository.com/artifact/com.github.pagehelper/pagehelper -->
        <dependency>
            <groupId>com.github.pagehelper</groupId>
            <artifactId>pagehelper</artifactId>
            <version>5.3.1</version>
        </dependency>
        <!--日志,slf4j日志门面的具体实现-->
        <dependency>
            <groupId>ch.qos.logback</groupId>
            <artifactId>logback-classic</artifactId>
            <version>1.2.3</version>
        </dependency>
<!--        servlet的依赖,spring中的dispatcherServlet需要该依赖-->
        <!-- https://mvnrepository.com/artifact/javax.servlet/javax.servlet-api -->
        <dependency>
            <groupId>javax.servlet</groupId>
            <artifactId>javax.servlet-api</artifactId>
            <version>4.0.1</version>
            <scope>provided</scope>
        </dependency>
<!--        用于springMVC处理json对象的依赖-->
        <dependency>
            <groupId>com.fasterxml.jackson.core</groupId>
            <artifactId>jackson-databind</artifactId>
            <version>2.12.1</version>
        </dependency>
<!--        用于实现文件上传和下载的依赖-->
        <dependency>
            <groupId>commons-fileupload</groupId>
            <artifactId>commons-fileupload</artifactId>
            <version>1.3.1</version>
        </dependency>
        <!--Spring5和ThymeLeaf整合包-->
        <dependency>
        <groupId>org.thymeleaf</groupId>
        <artifactId>thymeleaf-spring5</artifactId>
        <version>3.0.12.RELEASE</version>
        </dependency>

    </dependencies>

    <build>
        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-compiler-plugin</artifactId>
                <version>3.8.1</version>
                <configuration>
                    <parameters>true</parameters>
                </configuration>
            </plugin>
        </plugins>
    </build>

</project>

2.配置web.xml

  • 这里给出一个用过的案例作为模板,其中编码过滤器必须在第一位,因为一旦先获取参数,编码过滤器就会失效
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd"
         version="4.0">

<!--    配置编码过滤器,解决post请求乱码问题-->
    <filter>
        <filter-name>CharacterEncoding</filter-name>
        <filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
<!--        为请求设置编码为utf-8-->
        <init-param>
            <param-name>encoding</param-name>
            <param-value>UTF-8</param-value>
        </init-param>
<!--        为响应设置编码为utf-8-->
        <init-param>
            <param-name>forceEncoding</param-name>
            <param-value>true</param-value>
        </init-param>
    </filter>
    <filter-mapping>
        <filter-name>CharacterEncoding</filter-name>
        <url-pattern>/*</url-pattern>
    </filter-mapping>

<!--    配置请求方法的过滤器-->
    <filter>
        <filter-name>HiddenHttpMethodFilter</filter-name>
        <filter-class>org.springframework.web.filter.HiddenHttpMethodFilter</filter-class>
    </filter>
    <filter-mapping>
        <filter-name>HiddenHttpMethodFilter</filter-name>
        <url-pattern>/</url-pattern>
    </filter-mapping>

<!--    配置中央控制器-->
    <servlet>
        <servlet-name>SpringMVC</servlet-name>
        <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
        <init-param>
            <param-name>contextConfigLocation</param-name>
            <param-value>classpath:SpringMVC-servlet.xml</param-value>
        </init-param>
        <load-on-startup>1</load-on-startup>
    </servlet>
    <servlet-mapping>
        <servlet-name>SpringMVC</servlet-name>
<!--        /*会拦截所有的请求路径,/只会拦截除.jsp的路径-->
        <url-pattern>/</url-pattern>
    </servlet-mapping>

<!--    配置ContextLoaderListener监听器,用于在Tomcat服务器应用启动时加载spring配置文件-->
    <listener>
        <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
    </listener>

<!--    配置spring配置文件的文件路径名-->
    <context-param>
        <param-name>contextConfigLocation</param-name>
        <param-value>classpath:applicationContext.xml</param-value>
    </context-param>

</web-app>

3.spring

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xmlns:context="http://www.springframework.org/schema/context"
       xmlns:aop="http://www.springframework.org/schema/aop" xmlns:tx="http://www.springframework.org/schema/tx"
       xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/context https://www.springframework.org/schema/context/spring-context.xsd http://www.springframework.org/schema/aop https://www.springframework.org/schema/aop/spring-aop.xsd http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx.xsd">

<!--    开启注解扫描,spring负责扫描除Controller以外的bean对象-->
    <context:component-scan base-package="com.atming.maven.bookcity">
        <context:exclude-filter type="annotation" expression="org.springframework.stereotype.Controller"/>
<!--        <context:exclude-filter type="assignable" expression="com.atming.maven.bookcity.controller.BookController"/>-->
    </context:component-scan>

<!--    引入properties文件-->
    <context:property-placeholder location="classpath:JDBC.properties"></context:property-placeholder>

<!--    管理dataSource-->
    <bean id="dateSource" class="com.alibaba.druid.pool.DruidDataSource">
        <property name="driverClassName" value="${jdbc.driver}"></property>
        <property name="url" value="${jdbc.url}"></property>
        <property name="username" value="${jdbc.username}"></property>
        <property name="password" value="${jdbc.password}"></property>
    </bean>

<!--    整合mybatis-->
    <bean class="org.mybatis.spring.SqlSessionFactoryBean">
<!--        加载mybatis配置文件-->
        <property name="configLocation" value="classpath:mybatis-config.xml"></property>
<!--        设置dataSource数据源-->
        <property name="dataSource" ref="dateSource"></property>
<!--        设置别名,以包为单位-->
        <property name="typeAliasesPackage" value="com.atming.maven.bookcity.pojo"></property>
<!--        <property name="mapperLocations" value="classpath:com.atming.maven.bookcity.mapper/*.xml"></property>-->
    </bean>

    <bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
<!--        引入mapper配置文件-->
        <property name="basePackage" value="com.atming.maven.bookcity.mapper"></property>
    </bean>

<!--    配置数据源事务管理器-->
    <bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
        <property name="dataSource" ref="dateSource"></property>
    </bean>

<!--    开启事务管理器注解驱动-->
    <tx:annotation-driven transaction-manager="transactionManager"></tx:annotation-driven>


</beans>

4.springMVC

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xmlns:context="http://www.springframework.org/schema/context"
       xmlns:mvc="http://www.springframework.org/schema/mvc"
       xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/context https://www.springframework.org/schema/context/spring-context.xsd http://www.springframework.org/schema/mvc https://www.springframework.org/schema/mvc/spring-mvc.xsd">

<!--    开启注解扫描,springMVC只负责扫描Controller注解-->
    <context:component-scan base-package="com.atming.maven.bookcity.controller"></context:component-scan>

    <!-- 配置 Thymeleaf 视图解析器
         配置完毕后可以使用MVC的方式完成视图渲染和跳转了
    -->
    <bean id="viewResolver" class="org.thymeleaf.spring5.view.ThymeleafViewResolver">
        <property name="order" value="1"/>
        <property name="characterEncoding" value="UTF-8"/>
        <property name="templateEngine">
            <bean class="org.thymeleaf.spring5.SpringTemplateEngine">
                <property name="templateResolver">
                    <bean class="org.thymeleaf.spring5.templateresolver.SpringResourceTemplateResolver">
                        <!-- 视图前缀 -->
                        <property name="prefix" value="/WEB-INF/pages/"/>
                        <!-- 视图后缀 -->
                        <property name="suffix" value=".html"/>
                        <property name="templateMode" value="HTML5"/>
                        <property name="characterEncoding" value="UTF-8"/>
                    </bean>
                </property>
            </bean>
        </property>
    </bean>

<!--    配置默认的servlet,这样当dispatcherServlet处理不了的资源,会交给默认的servlet处理-->
    <mvc:default-servlet-handler></mvc:default-servlet-handler>

<!--    开启注解驱动-->
    <mvc:annotation-driven></mvc:annotation-driven>

<!--    配置视图控制器,给一些不需要处理的路径一个view-name,以方便直接跳转-->
    <mvc:view-controller path="/" view-name="index"></mvc:view-controller>
    <mvc:view-controller path="/user/login" view-name="user/login"></mvc:view-controller>
    <mvc:view-controller path="/user/login/success" view-name="user/login_success"></mvc:view-controller>
    <mvc:view-controller path="/user/regist" view-name="user/regist"></mvc:view-controller>
    <mvc:view-controller path="/user/regist/success" view-name="user/regist_success"></mvc:view-controller>
    <mvc:view-controller path="/manager" view-name="manager/manager"></mvc:view-controller>
    <mvc:view-controller path="/manager/book" view-name="manager/book_manager"></mvc:view-controller>
    <mvc:view-controller path="/manager/order" view-name="manager/order_manager"></mvc:view-controller>
    <mvc:view-controller path="/edit/book" view-name="manager/book_edit"></mvc:view-controller>
    <mvc:view-controller path="/order" view-name="order/order"></mvc:view-controller>

</beans>

5.MyBatis

  • 一款半自动的ORM(Object Relationship Mapping)框架
  • 轻量级,性能出色
  • SQL和Java编码分开,功能边界清晰。Java代码专注业务、SQL语句专注数据
  • 开发效率稍逊于Hibernate,但是完全能够接受

  • 进入jar包下载网页点击这里这里主要是用到MyBatis的官方文档mybatis.pdf,里面有核心配置文件和映射文件的说明
  • 在maven中配置核心文件(主要用于配置连接数据库的环境以及MyBatis的全局配置信息)
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE configuration
        PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
        "https://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration>

    <!--MyBatis核心配置文件中的标签必须要按照指定的顺序配置:
        properties?,settings?,typeAliases?,typeHandlers?,
        objectFactory?,objectWrapperFactory?,refLectorFactory?,
        plugins?,environments?,databaseIdProvider?,mappers?
    -->

<!--    加载properties文件-->
    <properties resource=""></properties>
    
    <settings>
<!--        将下划线映射成小驼峰-->
        <setting name="mapUnderscoreToCamelCase" value="true"/>
    </settings>

<!--    为类取别名,就不用写全类名。默认的别名为类名,不区分大小写-->
    <typeAliases>
        <package name=""/>
    </typeAliases>

<!--    配置连接数据库的环境,其中根据default属性选择相应的环境-->
    <environments default="development">
        <environment id="development">
<!--            transactionManager是用来说明事物管理的类型,type类型有JDBC和MANAGED,其中JDBC:使用JDBC中默认的事务管理机制,MANAGED:被管理的,例如交给Spring管理。-->
            <transactionManager type="JDBC"/>
<!--            dataSource用来设置数据源的类型,POOLED:使用数据库连接池,UNPOOLED:不使用数据库连接池,连接直接重新创建,JNDI:表示使用上下文当中的数据源(了解下)-->
            <dataSource type="POOLED">
                <property name="driver" value="${jdbc.driver}"/>
                <property name="url" value="${jdbc.url}"/>
                <property name="username" value="${jdbc.username}"/>
                <property name="password" value="${jdbc.password}"/>
            </dataSource>
        </environment>
    </environments>

<!--    引入mybatis的映射文件-->
    <mappers>
        <package name=""/>
    </mappers>
</configuration>
  • 在maven中配置映射文件(主要用来说明如何操作数据库)
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
        PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
        "https://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="">

</mapper>

最后一步、安装Git

  • Git主要用于开发过程中资源的版本控制,便于多人协同开发。

1.下载Git

下载Git的官方页面

2.安装Git

安装步骤

安装步骤

安装步骤
安装步骤
安装步骤
安装步骤
安装步骤
安装步骤
在这里插入图片描述
安装步骤
安装步骤
安装步骤

  • 后面直接全部默认,即可安装完成。

3.配置环境

1.设置user的name和email
在这里插入图片描述

2.新建一个git.ignore文件,文件内的代码如下,建议放在家目录下。
然后在.gitconfig文件中加上[core]标签(.gitconfig也是在家目录下)

[core]
	excludesfile = C:/Users/LNV/git.ignore

在这里插入图片描述
下面是一个.gitconfig的模板,也可以根据需求自己修改

# Compiled class file
*.class

# Log file
*.log

# BlueJ files
*.ctxt

# Mobile Tools for Java (J2ME)
.mtj.tmp/# Package Files #
*.jar
*.war
*.nar
*.ear
*.zip
*.tar.gz
*.rar

hs_err_pid*

.classpath
.project
.settings
target
.idea
*.iml

4.常用命令

  • git安装后-指定名称和邮箱
$ git config --global user.name "Your Name"
 
$ git config --global user.email "[email protected]"
  • 删除根目录下的.git文件夹
$ find . -name ".git" | xargs rm -Rf

$ rm -rf .git
  • 创建版本库
$ mkdir learngit	//创建
$ cd learngit	//使用
$ pwd	//查看当前目录
$ git init	//初始化,生成.git文件(若该文件隐藏,则使用ls -ah)
  • 把文件添加add和提交commit到版本库
$ git add test.txt	//添加
$ git commit -m "wrote a test file"	//提交
$ git commit -m "add 3 files."		//一次性提交多个文件
  • 版本控制
$ git log	//查看提交历史记录,从最近到最远,可以看到3次
$ git log --pretty=oneline	//加参,简洁查看
$ git reflog	//查看每一次修改历史
$ cat test.txt	//查看文件内容
$ git status	//查看工作区中文件当前状态
$ git reset --hard HEAD^HEAD~100)(commit id)	//回退版本
$ git checkout -- test.txt	//丢弃工作区的修改,即撤销修改
$ git reset HEAD test.txt	//丢弃暂存区的修改(若已提交,则回退)
  • 删除文件
$ rm test.txt
//直接删除
$ git rm test.txt
$ git commit -m "remove test.txt"
//删错了,恢复
$ git checkout -- test.txt
  • 远程仓库
$ ssh-keygen -t rsa -C "[email protected]"	//创建SSH Key
$ git remote add origin git@github.com:Daisy/AKgit.git	//关联
$ git push -u origin master	//将本地内容推送到远程仓库(第一次)
$ git push origin master	//将本地内容推送到远程仓库(之后)
$ git remote -v        //查看远程仓库信息
$ git remote rm origin	//删除远程仓库(解绑)
$ git clone git@github.com: Daisy/AKgit.git	//克隆远程仓库
//克隆之后使用和查看
$ cd gitskills
$ ls
$ git remote	//查看远程库的信息
$ git remote -v	//查看远程库的详细信息
  • 多人协作
$ git checkout -b dev	//创建并切换到分支dev
//创建并切换到分支dev,同上
$ git branch dev	//创建
$ git checkout dev	//切换
//新版本
$ git switch -c dev	//创建并切换到分支dev
$ git switch master	//直接切换分支
$ git branch		//查看当前分支
$ git merge dev	(--no-ff)(-m)//合并,把dev分支的工作成果合并到master分支上
$ git branch -d dev	//删除dev分支 
$ git stash	//将现场储藏起来
$ git stash list	//查看储存的工作现场
//恢复和删除
$ git stash apply
$ git stash drop
//恢复并删除
$ git stash pop
$ git cherry-pick 4c805e2	//复制修改
$ git push origin master(dev)	//推送分支
$ git checkout -b dev origin/dev	//创建远程origin的dev分支到本地
$ git pull	//抓取分支(解决冲突)
$ git branch --set-upstream-to=origin/dev dev//指定本地与远程dev的链接
$ git rebase	//把本地未push的分叉提交历史整理成直线
  • 标签管理
$ git tag v1.0	//打标签
$ git tag -a v0.1 -m "version 0.1 released" 1094adb //指定标签名和说明文字
$ git tag	//查看所有标签
//若是忘记打,则查找历史提交commit id ,再打上
$ git log --pretty=oneline --abbrev-commit
$ git tag v0.9 f52c633
$ git show v0.9		//查看标签详细信息
$ git tag -d v0.1	//删除标签
$ git push origin v1.0	//推送标签到远程
$ git push origin –tags	//一次性推送全部本地标签
//删除标签,(若已推送到远程,先从本地删除,从远程删除)
$ git tag -d v0.9
$ git push origin :refs/tags/v0.9 

5.集成到IDEA

详细请见文章点击这里

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/AINIDEMILUDAN/article/details/127345743

智能推荐

Spring Boot 获取 bean 的 3 种方式!还有谁不会?,Java面试官_springboot2.7获取bean-程序员宅基地

文章浏览阅读1.2k次,点赞35次,收藏18次。AutowiredPostConstruct 注释用于在依赖关系注入完成之后需要执行的方法上,以执行任何初始化。此方法必须在将类放入服务之前调用。支持依赖关系注入的所有类都必须支持此注释。即使类没有请求注入任何资源,用 PostConstruct 注释的方法也必须被调用。只有一个方法可以用此注释进行注释。_springboot2.7获取bean

Logistic Regression Java程序_logisticregression java-程序员宅基地

文章浏览阅读2.1k次。理论介绍 节点定义package logistic;public class Instance { public int label; public double[] x; public Instance(){} public Instance(int label,double[] x){ this.label = label; th_logisticregression java

linux文件误删除该如何恢复?,2024年最新Linux运维开发知识点-程序员宅基地

文章浏览阅读981次,点赞21次,收藏18次。本书是获得了很多读者好评的Linux经典畅销书**《Linux从入门到精通》的第2版**。下面我们来进行文件的恢复,执行下文中的lsof命令,在其返回结果中我们可以看到test-recovery.txt (deleted)被删除了,但是其存在一个进程tail使用它,tail进程的进程编号是1535。我们看到文件名为3的文件,就是我们刚刚“误删除”的文件,所以我们使用下面的cp命令把它恢复回去。命令进入该进程的文件目录下,1535是tail进程的进程id,这个文件目录里包含了若干该进程正在打开使用的文件。

流媒体协议之RTMP详解-程序员宅基地

文章浏览阅读10w+次,点赞12次,收藏72次。RTMP(Real Time Messaging Protocol)实时消息传输协议是Adobe公司提出得一种媒体流传输协议,其提供了一个双向得通道消息服务,意图在通信端之间传递带有时间信息得视频、音频和数据消息流,其通过对不同类型得消息分配不同得优先级,进而在网传能力限制下确定各种消息得传输次序。_rtmp

微型计算机2017年12月下,2017年12月计算机一级MSOffice考试习题(二)-程序员宅基地

文章浏览阅读64次。2017年12月的计算机等级考试将要来临!出国留学网为考生们整理了2017年12月计算机一级MSOffice考试习题,希望能帮到大家,想了解更多计算机等级考试消息,请关注我们,我们会第一时间更新。2017年12月计算机一级MSOffice考试习题(二)一、单选题1). 计算机最主要的工作特点是( )。A.存储程序与自动控制B.高速度与高精度C.可靠性与可用性D.有记忆能力正确答案:A答案解析:计算...

20210415web渗透学习之Mysqludf提权(二)(胃肠炎住院期间转)_the provided input file '/usr/share/metasploit-fra-程序员宅基地

文章浏览阅读356次。在学MYSQL的时候刚刚好看到了这个提权,很久之前用过别人现成的,但是一直时间没去细想, 这次就自己复现学习下。 0x00 UDF 什么是UDF? UDF (user defined function),即用户自定义函数。是通过添加新函数,对MySQL的功能进行扩充,就像使..._the provided input file '/usr/share/metasploit-framework/data/exploits/mysql

随便推点

webService详细-程序员宅基地

文章浏览阅读3.1w次,点赞71次,收藏485次。webService一 WebService概述1.1 WebService是什么WebService是一种跨编程语言和跨操作系统平台的远程调用技术。Web service是一个平台独立的,低耦合的,自包含的、基于可编程的web的应用程序,可使用开放的XML(标准通用标记语言下的一个子集)标准...

Retrofit(2.0)入门小错误 -- Could not locate ResponseBody xxx Tried: * retrofit.BuiltInConverters_已添加addconverterfactory 但是 could not locate respons-程序员宅基地

文章浏览阅读1w次。前言照例给出官网:Retrofit官网其实大家学习的时候,完全可以按照官网Introduction,自己写一个例子来运行。但是百密一疏,官网可能忘记添加了一句非常重要的话,导致你可能出现如下错误:Could not locate ResponseBody converter错误信息:Caused by: java.lang.IllegalArgumentException: Could not l_已添加addconverterfactory 但是 could not locate responsebody converter

一套键鼠控制Windows+Linux——Synergy在Windows10和Ubuntu18.04共控的实践_linux 18.04 synergy-程序员宅基地

文章浏览阅读1k次。一套键鼠控制Windows+Linux——Synergy在Windows10和Ubuntu18.04共控的实践Synergy简介准备工作(重要)Windows服务端配置Ubuntu客户端配置配置开机启动Synergy简介Synergy能够通过IP地址实现一套键鼠对多系统、多终端进行控制,免去了对不同终端操作时频繁切换键鼠的麻烦,可跨平台使用,拥有Linux、MacOS、Windows多个版本。Synergy应用分服务端和客户端,服务端即主控端,Synergy会共享连接服务端的键鼠给客户端终端使用。本文_linux 18.04 synergy

nacos集成seata1.4.0注意事项_seata1.4.0 +nacos 集成-程序员宅基地

文章浏览阅读374次。写demo的时候遇到了很多问题,记录一下。安装nacos1.4.0配置mysql数据库,新建nacos_config数据库,并根据初始化脚本新建表,使配置从数据库读取,可单机模式启动也可以集群模式启动,启动时 ./start.sh -m standaloneapplication.properties 主要是db部分配置## Copyright 1999-2018 Alibaba Group Holding Ltd.## Licensed under the Apache License,_seata1.4.0 +nacos 集成

iperf3常用_iperf客户端指定ip地址-程序员宅基地

文章浏览阅读833次。iperf使用方法详解 iperf3是一款带宽测试工具,它支持调节各种参数,比如通信协议,数据包个数,发送持续时间,测试完会报告网络带宽,丢包率和其他参数。 安装 sudo apt-get install iperf3 iPerf3常用的参数: -c :指定客户端模式。例如:iperf3 -c 192.168.1.100。这将使用客户端模式连接到IP地址为192.16..._iperf客户端指定ip地址

浮点性(float)转化为字符串类型 自定义实现和深入探讨C++内部实现方法_c++浮点数 转 字符串 精度损失最小-程序员宅基地

文章浏览阅读7.4k次。 写这个函数目的不是为了和C/C++库中的函数在性能和安全性上一比高低,只是为了给那些喜欢探讨函数内部实现的网友,提供一种从浮点性到字符串转换的一种途径。 浮点数是有精度限制的,所以即使我们在使用C/C++中的sprintf或者cout 限制,当然这个精度限制是可以修改的。比方在C++中,我们可以cout.precision(10),不过这样设置的整个输出字符长度为10,而不是特定的小数点后1_c++浮点数 转 字符串 精度损失最小

推荐文章

热门文章

相关标签