Web高效管理多个项目的SVN仓库

转至:https://www.jianshu.com/p/a0af00642585
采用方案

Linux+Apache+Subversion+MySQL+JDK+Tomcat+Svnadmin

目录
0.安装准备

0.1 升级系统软件包
0.2 关闭SELinux
0.3 安装wget

1.部署Apache

1.1 安装apache
1.2 修改配置文件
1.3 启动apache服务
1.4 调整防火墙,允许80端口访问
1.5 浏览器访问测试

2.部署Subversion

2.1 安装SVN
2.2 重启apache服务
2.3 检查svn模块是否安装上了apache
2.4 查看svn版本
2.5 配置SVN仓库

2.5.1 创建SVN库主目录
2.5.2 编辑配置文件subversion.conf
2.5.3 创建/data/svn/passwd.http和/svn/authz文件
2.5.4 重启apache服务

3.部署MySQL

3.1 安装MySQL
3.2 mysql开机自动启动
3.3 启动mysql服务
3.4 调整防火墙,允许3306端口访问
3.5 设置mysql数据库的root用户密码

4.部署Tomcat

4.1 安装JDK
4.1.1 下载安装包
4.1.2 解压软件包
4.1.3 修改环境变量
4.1.4 使配置立即生效
4.1.5 检验是否生效
4.2 安装Tomcat
4.2.1 下载安装包
4.2.2 解压缩apache-tomcat软件包
4.2.3 修改tomcat的配置文件
4.2.4 调整防火墙,允许8080端口被访问
4.2.5 重启防火墙,使端口配置生效

5.部署jsvnadmin

5.1 删除tomcat/webapps目录中的默认文件
5.2 下载svnadmin软件包
5.3 解压缩svnadmin软件包
5.4 将svnadmin.war解压到tomcat/webapps的svnadmin目录中
5.5 修改svnadmin的jdbc属性文件中连接mysql的默认账户密码

6.初始化svnadmin的数据库

6.1 创建svnadmin数据库
6.2 导入sql文件(mysql5.sql 和en.sql )
6.3 启动tomcat服务

7.浏览器访问,初始化配置
8.补充部分

8.1 查看新增目录、文件,及authz配置参数
8.2 配置仓库的目录权限
8.3 配置rc.local让tomcat开机自动启动服务
8.4 权限公里中“认证失败”的问题

场景

互联网小型公司刚开始启动项目的时候,一般只有一个项目,这个时候,只需要在服务器上部署单库的SVN提供服务即可满足需求,运维人员刚开始只需要在命令行手动配置仓库,新人入职改改passwd和authz配置文件添加账号和权限就能搞定,但随着公司的日益发展壮大,研发队伍越来越壮大,人数越来越多,项目模块化,分布式,SOA服务化,多项目同时研发、测试、发布上线等等,运维人员忙的不可开交,旧法子已经完全不能满足需求了,怎么办呢?本着高效率工作,多玩耍的思想,运维人员要寻求更快更便捷的方法来解决问题,那么一定是服务化的方法了,通过WEB UI的方式管理,点点鼠标可以轻松搞定。

Jsvnadmin的出现,就改变了以往纯命令行或脚本的原始化方法,它是一个 Java 开发的管理 Svn 服务器的项目用户的 web 应用。安装好 Svn 服务器端好,把 Svn Admin 部署好,就可以通过 web 浏览器管理 Svn 的项目,管理项目的用户,管理项目的权限。使得管理配置 Svn 简便,再也不需要每次都到服务器手工修改配置文件。

svnadmin优点

多数据库: Svn 项目配置数据保存在数据库,支持所有数据库(默认MySQL/Oracle/SQL Server)

多操作系统:支持 Window,Linux 等操作系统。
权限控制:管理员可以随意分配权限、项目管理员可以管理项目成员、成员只能查看和修改自己的密码。
支持多项目、多用户、多用户组 Group(默认带有“项目管理组”、 “项目开发组”、 “项目测试组”)。
安全:密码加密保存。
多协议:支持 svn 协议和 http 协议(从 2.0 开始支持 Apache 服务器- - 单库方式,从 3.0开始支持 Apache 多库方式)
仓库浏览(从 3.0.2 开始)
多语言(从 3.0.2 开始)

解决方案

Svnadmin 在 Java 1.6、 Tomcat 6、 Subversion 1.6、 MySQL 5.1、 Apache 2.2、Windows 7 上开发测试通过,同时支持其他操作系统和数据库。

常采用的方案:
Linux+Apache+Subversion+MySQL+Tomcat+Svnadmin
Windows+Apache+Subversion+MySQL+Tomcat+Svnadmin
支持 svn 协议
Svn 的配置信息都在仓库目录的 conf 下的 authz,passwd,svnserve.conf 三个文件中,配置用户和权限都是通过修改 passwd 和 authz,立刻就生效。 Svn Admin 的本质是对这 3个文件进行管理,所有成员、权限的数据都保存在数据库中, 一旦在Svn Admin 的页面上修改,就会把配置信息输出到 conf 下的那 3 个配置文件中。
支持 http 协议
Apache+SVN 配置成功后可以有两种方式:

多库方式: SVNParentPath 指定一个父目录,所有仓库在这个父目录下,使用一个密码文件和一个权限配置文件。优点是增加删除仓库不需要改 apache的 httpd.conf,不需要重启 Apache。缺点是项目多会很混乱。
单库方式: SVNPath 每个仓库单独配置各自的密码和权限文件。优点是各自分开,互相不影响,维护方便。缺点是增加或删除仓库需要修改 apache 的httpd.conf 后重启。

0.安装准备
OS:CentOS6.8 x64
0.1 升级系统软件包
[root@example00 ~]# yum -y update

0.2 关闭SELinux
[root@example00 ~]# vim /etc/sysconfig/selinux
SELINUX=disabled

0.3 安装wget
[root@example00 ~]# yum -y install wget

准备工作做完以后,reboot命令重启服务器
1.部署Apache
1.1 安装apache
[root@example00 ~]# yum -y install httpd httpd-devel

1.2 修改配置文件
[root@example00 ~]# vim /etc/httpd/conf/httpd.conf
276 ServerName localhost:80

1.3 启动apache服务
开机自动启动
[root@example00 ~]# chkconfig httpd on

启动apache服务
[root@example00 ~]# service httpd start

1.4 调整防火墙,允许80端口访问
[root@example00 ~]# vim /etc/sysconfig/iptables
-A INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT
[root@example00 ~]# service iptables restart

1.5 浏览器访问:http://192.168.1.190
出现apache的欢迎页面

apache欢迎页面

2.部署Subversion
2.1 安装SVN
[root@example00 ~]# yum -y install subversion mod_dav_svn

2.2 重启apache服务
[root@example00 ~]# service httpd restart

2.3 检查svn模块是否安装上了apache
[root@example00 ~]# ls /etc/httpd/modules/ | grep svn
mod_authz_svn.so
mod_dav_svn.so

2.4 查看svn版本
[root@example00 ~]# svn --version
svn, version 1.6.11 (r934486)
compiled Aug 17 2015, 08:37:43

2.5 配置SVN仓库
2.5.1 创建SVN库主目录
多库模式,一份配置文件管理多个库
[root@example00 ~]# mkdir -p /data/svn #

2.5.2 编辑配置文件subversion.conf
[root@example00 ~]# cd /etc/httpd/conf.d/
[root@example00 conf.d]# ls
README subversion.conf welcome.conf
[root@example00 conf.d]# vim subversion.conf
#Include /data/svn/httpd.conf

DAV svn
SVNListParentPath on
SVNParentPath /data/svn
AuthType Basic
AuthName "Subversion repositories"
AuthUserFile /data/svn/passwd.http
AuthzSVNAccessFile /data/svn/authz
Require valid-user

RedirectMatch ^(/svn)$ $1/

2.5.3 创建/data/svn/passwd.http和/svn/authz文件
[root@example00 conf.d]# touch /data/svn/passwd.http
[root@example00 conf.d]# touch /data/svn/authz

2.5.4 重启apache服务
[root@example00 conf.d]# service httpd restart

3.部署MySQL
3.1 安装MySQL
[root@example00 ~]# yum -y install mysql-server mysql mysql-devel

3.2 mysql开机自动启动
[root@example00 ~]# chkconfig mysqld on

3.3 启动mysql服务
[root@example00 ~]# service mysqld start

3.4 调整防火墙,允许3306端口访问
[root@example00 ~]# vim /etc/sysconfig/iptables
-A INPUT -m state --state NEW -m tcp -p tcp --dport 3306 -j ACCEPT

[root@example00 ~]# service iptables restart

3.5 设置mysql数据库的root用户密码
[root@example00 ~]# mysqladmin -u root password 'mypassword'

3.5 授权root账户远程访问mysql
[root@example00 conf.d]# mysql -u root -p
mysql> GRANT ALL PRIVILEGES ON . TO 'root'@'%' IDENTIFIED BY 'mypassword' WITH GRANT OPTION;
Query OK, 0 rows affected (0.00 sec)

mysql> FLUSH PRIVILEGES;
Query OK, 0 rows affected (0.00 sec)

mysql> exit
Bye

4.部署Tomcat
4.1 安装JDK

下载地址:http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html

4.1.1 下载安装包
[root@example00 ~]# cd /usr/local/src/
[root@example00 src]# wget http://download.oracle.com/otn-pub/java/jdk/8u121-b13/e9e7ea248e2c4826b92b3f075a80e441/jdk-8u121-linux-x64.tar.gz

4.1.2 解压软件包
[root@example00 src]# tar -zxvf jdk-8u121-linux-x64.tar.gz -C /usr/local/
[root@example00 src]# cd /usr/local/jdk1.8.0_121/
[root@example00 jdk1.8.0_121]# pwd
/usr/local/jdk1.8.0_121

4.1.3 修改环境变量
[root@example00 ~]# vim /etc/profile
# Java_Home
JAVA_HOME=/usr/local/jdk1.8.0_121
JRE_HOME=/usr/local/jdk1.8.0_121/jre
PATH=\(PATH:\)JAVA_HOME/bin:\(JRE_HOME/bin CLASSPATH=:\)JAVA_HOME/lib/dt.jar:\(JAVA_HOME/lib/tools.jar:\)JRE_HOME/lib
export JAVA_HOME JRE_HOME PATH CLASSPATH

4.1.4 使配置立即生效
[root@example00 ~]# source /etc/profile

4.1.5 检验是否生效
方法1:
[root@example00 ~]# java -version
java version "1.7.0_131"
OpenJDK Runtime Environment (rhel-2.6.9.0.el6_8-x86_64 u131-b00)
OpenJDK 64-Bit Server VM (build 24.131-b00, mixed mode)

方法2:
[root@example00 ~]# echo $PATH
/usr/lib64/qt-3.3/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/usr/local/jdk1.8.0_121/bin:/usr/local/jdk1.8.0_121/jre/bin:/root/bin
[root@example00 ~]# echo $JRE_HOME
/usr/local/jdk1.8.0_121/jre
[root@example00 ~]# echo $JAVA_HOME
/usr/local/jdk1.8.0_121

4.2 安装Tomcat

下载地址:http://tomcat.apache.org/download-70.cgi
找到Core中tar.gz,右键复制链接

4.2.1 下载安装包
[root@example00 ~]# cd /usr/local/src/
[root@example00 src]# wget http://mirror.bit.edu.cn/apache/tomcat/tomcat-7/v7.0.76/bin/apache-tomcat-7.0.76.tar.gz

4.2.2 解压缩apache-tomcat软件包
[root@example00 src]# tar -zxvf apache-tomcat-7.0.76.tar.gz -C /usr/local/
[root@example00 src]# cd /usr/local/
[root@example00 local]# mv apache-tomcat-7.0.76/ tomcat

4.2.3 修改tomcat的配置文件
末尾增加URIEncoding参数为UTF-8
[root@example00 src]# vim /usr/local/src/svnadmin-tomcat/conf/server.xml
22
71 <Connector port="8080" protocol="HTTP/1.1"
72 connectionTimeout="20000"
73 redirectPort="8443" URIEncoding="UTF-8"/>

4.2.4 调整防火墙,允许8080端口被访问
[root@example00 src]# vim /etc/sysconfig/iptables
-A INPUT -m state --state NEW -m tcp -p tcp --dport 8080 -j ACCEPT

4.2.5 重启防火墙,使端口配置生效
[root@example00 src]# service iptables restart

5.安装jsvnadmin

下载链接
https://code.google.com/archive/p/jsvnadmin/
https://storage.googleapis.com/google-code-archive-downloads/v2/code.google.com/jsvnadmin/svnadmin-3.0.5.zip

5.1 删除tomcat/webapps目录中的默认文件
[root@example00 ~]# rm -rf /usr/local/tomcat/webapps/*

5.2 下载svnadmin软件包
[root@example00 ~]# cd /usr/local/src/
[root@example00 webapps]# wget https://storage.googleapis.com/google-code-archive-downloads/v2/code.google.com/jsvnadmin/svnadmin-3.0.5.zip

5.3 解压缩svnadmin软件包
[root@example00 src]# unzip svnadmin-3.0.5.zip -d svnadmin
[root@example00 src]# cd svnadmin

5.4 将svnadmin.war解压到tomcat/webapps的svnadmin目录中
[root@example00 svnadmin]# unzip svnadmin.war -d /usr/local/tomcat/webapps/svnadmin

5.5 修改svnadmin的jdbc属性文件中连接mysql的默认账户密码
[root@example00 svnadmin]# vim /usr/local/tomcat/webapps/svnadmin/WEB-INF/jdbc.properties
db=MySQL

#MySQL
MySQL.jdbc.driver=com.mysql.jdbc.Driver
MySQL.jdbc.url=jdbc:mysql://127.0.0.1:3306/svnadmin?characterEncoding=utf-8
MySQL.jdbc.username=root
MySQL.jdbc.password=mypassword

6.初始化svnadmin的数据库
6.1 创建svnadmin数据库
[root@example00 ~]# mysql -u root -p
mysql> CREATE DATABASE svnadmin CHARACTER SET utf8;
Query OK, 1 row affected (0.00 sec)

mysql> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| mysql |
| svnadmin |
| test |
+--------------------+
4 rows in set (0.00 sec)

mysql> exit
Bye

6.2 导入sql文件(mysql5.sql 和en.sql )
[root@example00 svnadmin]# mysql -u root -p svnadmin < /usr/local/src/svnadmin/db/mysql5.sql
[root@example00 svnadmin]# mysql -u root -p svnadmin < /usr/local/src/svnadmin/db/lang/en.sql

6.3 启动tomcat服务
[root@example00 ~]# /usr/local/tomcat/bin/startup.sh
Using CATALINA_BASE: /usr/local/tomcat
Using CATALINA_HOME: /usr/local/tomcat
Using CATALINA_TMPDIR: /usr/local/tomcat/temp
Using JRE_HOME: /usr/local/jdk1.8.0_121/jre
Using CLASSPATH: /usr/local/tomcat/bin/bootstrap.jar:/usr/local/tomcat/bin/tomcat-juli.jar

7.浏览器访问,初始化配置
浏览器访问:http://192.168.1.190:8080/svnadmin/
页面提示:欢迎使用SVN ADMIN,第一次使用请设置管理员帐号和密码.
输入账号/密码,即为svnadmin的默认WEB登录账号密码,需要保存起来,以免忘记。

SVN ADMIN初始化页面

在SVN ADMIN的WEB页面中,可以看到项目管理的相关配置,改变了以往Linux Server上通过命令行管理svn的繁琐历史,而使用WEB GUI的配置方式,可以大大提高SVN仓库的管理效率;
在SVN ADMIN的WEB页面上不仅可以新建项目的SVN仓库,还可以针对不同的项目,进行账户、账户组的配置、权限的管理,非常适合中等型,或小型互联网公司进行管理;

创建库.png

提交成功

8.补充部分
8.1 查看新增目录、文件,及authz配置参数
[root@example00 ~]# cd /data/svn/
[root@example00 svn]# ls
authz project1 httpd.conf passwd.http

/data/svn目录中,已经产生了一个目录ddstore,和一个文件httpd.conf,它与subversion.conf是一样的,在/etc/httpd/conf.d/subversion.conf中已配置。
[root@example00 svn]# cat authz
[aliases]
[groups]
ddstore_developer=
ddstore_manager=
ddstore_tester=

[ddstore:/]
@ddstore_manager=rw

查看authz文件,可以发现,已经被添加了配置内容;这些改变,都是因为调用了svn做了相应的操作。
8.2 配置仓库的目录权限
[root@example00 ~]# chown -R apache.apache /data/svn/project1/
[root@example00 ~]# chmod -R 777 /data/svn/project1/

8.3 配置rc.local让tomcat开机自动启动服务
[root@example00 ~]# vim /etc/rc.local
#tomcat auto start
/usr/local/tomcat/bin/startup.sh

8.4 权限公里中“认证失败”的问题
原因:没有把admin加入项目的manager组中,因此进入权限管理中后,会出现认证失败的问题;
解决方法:设置用户组--->设置用户--->将admin添加到管理组

所有的部署过程已经完成,那么我们需要在SVN ADMIN管理页面中,查看仓库的状态,点击仓库URL链接,查看仓库的状态;若无任何错误信息,即表示仓库配置成功,若有报错,例如405信息等等,那么说明仓库的配置是有问题的,若您尝试多次解决无果,可以联系我,我有空的时候可以协助你troubleshouting。

点击仓库URL链接

查看仓库状态

转载于:https://www.cnblogs.com/daixh/p/11330772.html

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

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

相关文章

粒子物理学有了新的基础数学理论

来源&#xff1a;科技日报科技日报柏林2月13日电 &#xff08;记者李山&#xff09;近日&#xff0c;来自奥地利和英国的科学家共同发表了一个粒子物理学的基础数学新理论。他们定义和研究了黎曼曲面上存在的非常稳定的希格斯丛&#xff0c;其蕴涵了全局幂零锥稳定分量的多重性…

01.MyBatis入门

MyBatis入门&#xff1a; 第一天接触Mybatis&#xff0c;总结一下入门案例的流程: 首先导入Mybatis的jar包和数据库的驱动包 1.创建数据表和实体类 2.创建一个表和实体类映射的xml配置文件&#xff0c;具体配置如下&#xff1a; 1 <?xml version"1.0" encoding&q…

2022年重大颠覆性科技创新趋势报告(完整版)

来源&#xff1a;点滴科技资讯未来智能实验室的主要工作包括&#xff1a;建立AI智能系统智商评测体系&#xff0c;开展世界人工智能智商评测&#xff1b;开展互联网&#xff08;城市&#xff09;大脑研究计划&#xff0c;构建互联网&#xff08;城市&#xff09;大脑技术和企业…

02.Mybatis的动态代理方式实现增删改查

动态代理的方式实现增删改查: 通过约定的方式定位sql语句 约定 > 配置文件 > 硬编码 约定的目标是省略掉通过硬编码的方式定位sql的代码&#xff0c;通过接口直接定位出sql语句,以下代码为通过硬编码的方法定位sql: 1      //读取conf.xml 配置文件2 Reader…

孙正义看未来30年:这个趋势,永远不会错(附完整PPT)

来源&#xff1a;大数据实验室 对于今后30年来讲&#xff0c;我认为现在是个很关键的时刻&#xff0c;尤其是在各位的人生当中。而且现在是一整个概念的转变&#xff0c;我们要包容这个概念的转变。我想先给大家看两张照片。这是美国纽约的第五大道&#xff0c;左边那张是1900年…

JavaScript每日学习日记(0)

8.10.2019 1.JavaScript能改变HTML内容、属性、样式&#xff0c;能隐藏或显示HTML元素。 2.JavaScript函数可以任意数量被放置在<body>、<head>部分中&#xff0c;但必须位于<script>与</script>标签之间。 3.脚本可放置于后缀为.js的外部文件中&#…

可视化解释11种基本神经网络架构

来源&#xff1a;海豚数据科学实验室标准&#xff0c;循环&#xff0c;卷积和自动编码器网络随着深度学习的飞速发展&#xff0c;已经创建了完整的神经网络体系结构主机&#xff0c;以解决各种各样的任务和问题。尽管有无数的神经网络架构&#xff0c;但对于任何深度学习工程师…

设计模式之二抽象工厂设计模式

继上篇简单工厂设计模式之后&#xff0c;今天继续讲解抽象工厂设计模式。在简单工厂中&#xff0c;我们的工厂类一次只可以处理一类产品。那么如果我们想处理多类产品&#xff0c;简单工厂是满足不了的。必须要用抽象工厂设计模式。 我们先从概念上来了解下什么是抽象工厂设计模…

Nature封面:只低一毫米,时间也会变慢!叶军团队首次在毫米尺度验证广义相对论...

来源&#xff1a;凹非寺作者&#xff1a;晓查 明敏你知道吗&#xff1f;在地球上&#xff0c;楼层越低&#xff0c;时间过得越慢。这可不是玄学&#xff0c;而是爱因斯坦广义相对论预言的时间膨胀效应&#xff1a;引力越大&#xff0c;时间越慢。△ 在不同高度差上验证时钟变快…

SQL 与 ORACLE 的比较

最近参加了一个ORACLE的培训&#xff0c;ORACLE与平日惯用的SQL SERVER果然有很大不同&#xff0c;在网上搜索了一下转了这篇比较SQL与ORACLE的帖子&#xff0c;总体上感觉SQL SERVER使用更加便捷&#xff0c;人性化&#xff0c;在网上的资料支持很丰富ORACLE更加专家一些&…

DARPA可解释AI研究(XAI计划)的4年回顾与经验总结

来源&#xff1a;智源社区作者&#xff1a;David Gunning, Eric Vorm, Jennifer Yunyan Wang, Matt Turek编译&#xff1a;牛梦琳摘要&#xff1a;从项目管理人员和评估人员的角度&#xff0c;对国防高级研究计划局&#xff08;DARPA&#xff09;的可解释人工智能&#xff08;X…

03.Mybatis优化

对动态代理方式的代码进行进一步优化: 1.将conf.xml文件中对数据库的配置信息以db.properties的形式抽离出来 drivercom.mysql.jdbc.Driver urljdbc:mysql://localhost:3306/person?serverTimezoneUTC usernameroot passwordroot <configuration><properties resourc…

​从ASML年报看半导体产业的未来

来源&#xff1a;半导体行业观察在前几天的文章《光刻机巨头ASML的十年变迁》中&#xff0c;笔者梳理了ASML近10年来的财报数据&#xff0c;介绍了其EUV/DUV光刻机出货量、年销售额、研发投入以及各地区的销售情况等。近日&#xff0c;ASML又公布了2021年年报&#xff0c;我们一…

04.MyBatis别名的设置和类型转换器

别名的设置:(别名不区分大小写): 设置单个别名: <configuration><properties resource"db.properties" /><typeAliases><!-- 设置单个别名 --><typeAlias type"com.offcn.entity.Person" alias"person"/><type…

史上首次,强化学习算法控制核聚变登上Nature:DeepMind让人造太阳向前一大步...

来源&#xff1a;机器之心过去三年&#xff0c;DeepMind 和瑞士洛桑联邦理工学院 EPFL 一直在进行一个神秘的项目&#xff1a;用强化学习控制核聚变反应堆内过热的等离子体&#xff0c;如今它已宣告成功。DeepMind研究科学家David Pfau在论文发表后感叹道&#xff1a;「为了分享…

Memcached 使用 及.NET客户端调用

memcached安装: 1 解压缩文件到c:\memcached 2 命令行输入 c:\memcached\memcached.exe -d install 3 命令行输入 c:\memcached\memcached.exe -d start &#xff0c;该命令启动 Memcached &#xff0c;默认监听端口为 11211 注&#xff1a; 如果出现如下错误 “ failed to in…

机器人流程自动化技术的新发展

来源&#xff1a;学习时报作者&#xff1a;李蕾蓬勃发展的数字经济&#xff0c;是全球新一轮科技进步的产物&#xff0c;直接受到新兴数字技术与智能技术的驱动。机器人流程自动化技术&#xff08;简称“RPA”&#xff09;&#xff0c;是近些年获得快速发展与广泛应用的重要智能…

运算符 优先级 结合性

&#xff23;语言的运算符可分为以下几类&#xff1a; 1. 算术运算符:用于各类数值运算。包括加()、减(-)、乘(*)、除(/)、求余(或称模运算&#xff0c;%)、自增()、自减(--)共七种。 2. 关系运算符:用于比较运算。包括大于(>)、小于(<)、等于()、 大于等于(&g…

05.MyBtais两种取值符号以及输入参数和输出参数

输入参数&#xff1a;parameterType 两种取值符号的异同 1.类型为简单类型(8个基本类型string) 不同点: a.#{任意值}&#xff0c;${value} 其中的标识符只能是value b. #{}自动给String类型加上单引号(‘’) (自动类型转换) ${} 原样输出&#xff0c;适合于动态排序 &#xff0…

论人工智能历史、现状与未来发展战略

来源&#xff1a;《学术前沿》作者&#xff1a;郭毅可人工智能问世60多年来&#xff0c;承载着人类对自己的智慧的无限自信。在这样的自信下&#xff0c;人工智能发展到了今天&#xff0c;人们在追求机器从事尽可能多的智力劳动的路上走得很快&#xff0c;也很远。今天人工智能…