...



#include<iostream>

using namespace std;

struct person
{
 int value[8][8];//静态评估表的
 int sum;  //静态评估表的所有数据之和
 int num;  //赢的盘数
};

int n=20;
struct person p[20];

void calcu();

void competition();
void selbest(int best[]);
void crossvar(int best[]);
void copyps(struct person q[20]);


int main()
{
 //readdata();

 //init();

 calcu();

 //output();

 return 0;
}


void calcu()
{
 int i;
 int best[20]; //选优的结果。

 for(i=0; i<500; i++)
 {
  //1、竞争
  competition();
  //2、选优(只选了标号)
  selbest(best);
  //3、交叉(现根据选优的结果复制样本)
  crossvar(best);
  

 }

}

void competition()
{
 

}


void selbest(int best[])
{
 int q[20];
 int i,j,sum;
 int randnum;

 sum=0;
 for(i=0; i<20; i++)
 {
  sum=sum+p[i].num;
  q[i]=sum;
 }
 for(i=0; i<n; i++)
 {
  randnum=rand()%1721;
  j=0;
  while(randnum>=q[j])
  {
   j++;

  }
  best[i]=j;
 }

}

void crossvar(int best[])
{//先复制,再交叉后结果放在q[20]里,最后变异

 int pos; //交叉的位置
 int tmp;
 struct person q[20];
 int r,c,sum;
 int i,j,k;

 //1、复制
 copyps(q);

 pos=rand()%50 + 5;

 //2、交叉
 for(i=0; i<n; i=i+2)
 {//交换best[i]和best[i+1]的尾部数据(pos位置以后所有的元素)
  for(j=pos; j<64; j++)
  {
   r=j/8;
   c=j%8;
   tmp=q[i].value [r][c];
   q[i].value [r][c]=q[i+1].value [r][c];
   q[i+1].value [r][c]=tmp;

  }
  
 }

 //3、填回到样本集并变异
 for(i=0; i<n; i++)
 {
  sum=0;
  for(j=0; j<8; j++)
  {
   for(k=0;k<8; k++)
   {
    if(rand()<0.002)
    {
     p[i].value [j][k]=q[i].value [j][k]+(rand()%5-2);
    }
    else
    {
     p[i].value [j][k]=q[i].value [j][k];
    }
    sum=sum+p[i].value [j][k];
   }
  }
  p[i].sum =sum;
 }

}




void copyps(struct person q[20])
{
 int i,j,k;
 for(i=0; i<n; i++)
 {
  for(j=0; j<8; j++)
  {
   for(k=0; k<8; k++)
   {
    q[i].value[j][k]=p[i].value [j][k];
   }
  }
 }
}

下载方式:https://pan.quark.cn/s/b4d8292ba69a 在构建食品品牌的市场整合营销推广方案时,我们必须首先深入探究品牌的由来、顾客的感知以及市场环境。 此案例聚焦于一款名为“某饼干产品”的食品,该产品自1998年进入河南市场以来,经历了销售业绩的波动。 1999至2000年期间,其销售额取得了明显的上升,然而到了2001年则出现了下滑。 在先前的宣传活动中,品牌主要借助大型互动活动如ROAD SHOW来吸引顾客,但收效甚微,这揭示了宣传信息与顾客实际认同感之间的偏差。 通过市场环境剖析,我们了解到消费者对“3+2”苏打夹心饼干的印象是美味、时尚且充满活力,但同时亦存在口感腻、价位偏高、饼身坚硬等负面评价。 实际上,该产品可以塑造为兼具美味、深度与创新性的休闲食品,适宜在多种情境下分享。 这暗示着品牌需更精确地传递产品特性,同时消解消费者的顾虑。 在策略制定上,我们可考虑将新产品与原有的3+2苏打夹心进行协同推广。 这种策略的长处在于能够借助既有产品的声誉和市场占有率,同时通过新产品的加入,刷新品牌形象,吸引更多元化的消费群体。 然而,这也可能引发一些难题,例如如何合理分配新旧产品间的资源,以及如何保障新产品的独特性和吸引力不被既有产品所掩盖。 为了提升推广成效,品牌可以实施以下举措:1. **定位修正**:基于消费者反馈,重新确立产品定位,突出其美味、创新与共享的特性,减少消费者感知的缺陷。 2. **创新宣传**:宣传信息应与消费者的实际体验相契合,运用更具魅力的创意手段,例如叙事式营销,让消费者体会到产品带来的愉悦和情感共鸣。 3. **渠道选择**:在目标消费者常去的场所开展活动,例如商业中心、影院或在线平台,以提高知名度和参与度。 4. **媒体联...
2025-08-06 17:35:08.103 ERROR 12800 --- [ Timer-0] com.zaxxer.hikari.pool.HikariPool : HikariPool-1 - Exception during pool initialization. com.microsoft.sqlserver.jdbc.SQLServerException: 用户 'sa' 登录失败。 ClientConnectionId:bd04312e-00ef-4089-8fc0-fe4717b0f87a at com.microsoft.sqlserver.jdbc.SQLServerException.makeFromDatabaseError(SQLServerException.java:259) ~[mssql-jdbc-6.4.0.jre8.jar:na] at com.microsoft.sqlserver.jdbc.TDSTokenHandler.onEOF(tdsparser.java:256) ~[mssql-jdbc-6.4.0.jre8.jar:na] at com.microsoft.sqlserver.jdbc.TDSParser.parse(tdsparser.java:108) ~[mssql-jdbc-6.4.0.jre8.jar:na] at com.microsoft.sqlserver.jdbc.SQLServerConnection.sendLogon(SQLServerConnection.java:4548) ~[mssql-jdbc-6.4.0.jre8.jar:na] at com.microsoft.sqlserver.jdbc.SQLServerConnection.logon(SQLServerConnection.java:3409) ~[mssql-jdbc-6.4.0.jre8.jar:na] at com.microsoft.sqlserver.jdbc.SQLServerConnection.access$100(SQLServerConnection.java:85) ~[mssql-jdbc-6.4.0.jre8.jar:na] at com.microsoft.sqlserver.jdbc.SQLServerConnection$LogonCommand.doExecute(SQLServerConnection.java:3373) ~[mssql-jdbc-6.4.0.jre8.jar:na] at com.microsoft.sqlserver.jdbc.TDSCommand.execute(IOBuffer.java:7344) ~[mssql-jdbc-6.4.0.jre8.jar:na] at com.microsoft.sqlserver.jdbc.SQLServerConnection.executeCommand(SQLServerConnection.java:2713) ~[mssql-jdbc-6.4.0.jre8.jar:na] at com.microsoft.sqlserver.jdbc.SQLServerConnection.connectHelper(SQLServerConnection.java:2261) ~[mssql-jdbc-6.4.0.jre8.jar:na] at com.microsoft.sqlserver.jdbc.SQLServerConnection.login(SQLServerConnection.java:1921) ~[mssql-jdbc-6.4.0.jre8.jar:na] at com.microsoft.sqlserver.jdbc.SQLServerConnection.connectInternal(SQLServerConnection.java:1762) ~[mssql-jdbc-6.4.0.jre8.jar:na] at com.microsoft.sqlserver.jdbc.SQLServerConnection.connect(SQLServerConnection.java:1077) ~[mssql-jdbc-6.4.0.jre8.jar:na] at com.microsoft.sqlserver.jdbc.SQLServerDriver.connect(SQLServerDriver.java:623) ~[mssql-jdbc-6.4.0.jre8.jar:na] at com.zaxxer.hikari.util.DriverDataSource.getConnection(DriverDataSource.java:138) ~[HikariCP-3.4.2.jar:na] at com.zaxxer.hikari.pool.PoolBase.newConnection(PoolBase.java:354) ~[HikariCP-3.4.2.jar:na] at com.zaxxer.hikari.pool.PoolBase.newPoolEntry(PoolBase.java:202) ~[HikariCP-3.4.2.jar:na] at com.zaxxer.hikari.pool.HikariPool.createPoolEntry(HikariPool.java:473) [HikariCP-3.4.2.jar:na] at com.zaxxer.hikari.pool.HikariPool.checkFailFast(HikariPool.java:554) [HikariCP-3.4.2.jar:na] at com.zaxxer.hikari.pool.HikariPool.<init>(HikariPool.java:115) [HikariCP-3.4.2.jar:na] at com.zaxxer.hikari.HikariDataSource.getConnection(HikariDataSource.java:112) [HikariCP-3.4.2.jar:na] at org.springframework.jdbc.datasource.DataSourceUtils.fetchConnection(DataSourceUtils.java:158) [spring-jdbc-5.2.4.RELEASE.jar:5.2.4.RELEASE] at org.springframework.jdbc.datasource.DataSourceUtils.doGetConnection(DataSourceUtils.java:116) [spring-jdbc-5.2.4.RELEASE.jar:5.2.4.RELEASE] at org.springframework.jdbc.datasource.DataSourceUtils.getConnection(DataSourceUtils.java:79) [spring-jdbc-5.2.4.RELEASE.jar:5.2.4.RELEASE] at org.mybatis.spring.transaction.SpringManagedTransaction.openConnection(SpringManagedTransaction.java:80) [mybatis-spring-2.0.2.jar:2.0.2] at org.mybatis.spring.transaction.SpringManagedTransaction.getConnection(SpringManagedTransaction.java:67) [mybatis-spring-2.0.2.jar:2.0.2] at org.apache.ibatis.executor.BaseExecutor.getConnection(BaseExecutor.java:336) [mybatis-3.5.2.jar:3.5.2] at org.apache.ibatis.executor.SimpleExecutor.prepareStatement(SimpleExecutor.java:85) [mybatis-3.5.2.jar:3.5.2] at org.apache.ibatis.executor.SimpleExecutor.doQuery(SimpleExecutor.java:62) [mybatis-3.5.2.jar:3.5.2] at org.apache.ibatis.executor.BaseExecutor.queryFromDatabase(BaseExecutor.java:324) [mybatis-3.5.2.jar:3.5.2] at org.apache.ibatis.executor.BaseExecutor.query(BaseExecutor.java:156) [mybatis-3.5.2.jar:3.5.2] at org.apache.ibatis.executor.CachingExecutor.query(CachingExecutor.java:109) [mybatis-3.5.2.jar:3.5.2] at org.apache.ibatis.executor.CachingExecutor.query(CachingExecutor.java:83) [mybatis-3.5.2.jar:3.5.2] at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:147) [mybatis-3.5.2.jar:3.5.2] at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:140) [mybatis-3.5.2.jar:3.5.2] at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[na:1.8.0_181] at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[na:1.8.0_181] at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[na:1.8.0_181] at java.lang.reflect.Method.invoke(Method.java:498) ~[na:1.8.0_181] at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:426) [mybatis-spring-2.0.2.jar:2.0.2] at com.sun.proxy.$Proxy63.selectList(Unknown Source) [na:na] at org.mybatis.spring.SqlSessionTemplate.selectList(SqlSessionTemplate.java:223) [mybatis-spring-2.0.2.jar:2.0.2] at org.apache.ibatis.binding.MapperMethod.executeForMany(MapperMethod.java:147) [mybatis-3.5.2.jar:3.5.2] at org.apache.ibatis.binding.MapperMethod.execute(MapperMethod.java:80) [mybatis-3.5.2.jar:3.5.2] at org.apache.ibatis.binding.MapperProxy.invoke(MapperProxy.java:57) [mybatis-3.5.2.jar:3.5.2] at com.sun.proxy.$Proxy64.getTablexx_flc(Unknown Source) [na:na] at com.nbheyi.hy_menjin.timer.importRsxxTimer.import_hyc_xx(importRsxxTimer.java:64) [classes/:na] at com.nbheyi.hy_menjin.timer.importRsxxTimer.access$100(importRsxxTimer.java:18) [classes/:na] at com.nbheyi.hy_menjin.timer.importRsxxTimer$1.run(importRsxxTimer.java:43) [classes/:na] at java.util.TimerThread.mainLoop(Timer.java:555) [na:1.8.0_181] at java.util.TimerThread.run(Timer.java:505) [na:1.8.0_181] org.mybatis.spring.MyBatisSystemException: nested exception is org.apache.ibatis.exceptions.PersistenceException: ### Error querying database. Cause: org.springframework.jdbc.CannotGetJdbcConnectionException: Failed to obtain JDBC Connection; nested exception is com.microsoft.sqlserver.jdbc.SQLServerException: 用户 'sa' 登录失败。 ClientConnectionId:bd04312e-00ef-4089-8fc0-fe4717b0f87a ### The error may exist in class path resource [mappers/YiDongMapper.xml] ### The error may involve com.nbheyi.hy_menjin.mapper.mapper4.YiDongMapper.getTablexx_flc ### The error occurred while executing a query ### Cause: org.springframework.jdbc.CannotGetJdbcConnectionException: Failed to obtain JDBC Connection; nested exception is com.microsoft.sqlserver.jdbc.SQLServerException: 用户 'sa' 登录失败。 ClientConnectionId:bd04312e-00ef-4089-8fc0-fe4717b0f87a at org.mybatis.spring.MyBatisExceptionTranslator.translateExceptionIfPossible(MyBatisExceptionTranslator.java:78) at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:440) at com.sun.proxy.$Proxy63.selectList(Unknown Source) at org.mybatis.spring.SqlSessionTemplate.selectList(SqlSessionTemplate.java:223) at org.apache.ibatis.binding.MapperMethod.executeForMany(MapperMethod.java:147) at org.apache.ibatis.binding.MapperMethod.execute(MapperMethod.java:80) at org.apache.ibatis.binding.MapperProxy.invoke(MapperProxy.java:57) at com.sun.proxy.$Proxy64.getTablexx_flc(Unknown Source) at com.nbheyi.hy_menjin.timer.importRsxxTimer.import_hyc_xx(importRsxxTimer.java:64) at com.nbheyi.hy_menjin.timer.importRsxxTimer.access$100(importRsxxTimer.java:18) at com.nbheyi.hy_menjin.timer.importRsxxTimer$1.run(importRsxxTimer.java:43) at java.util.TimerThread.mainLoop(Timer.java:555) at java.util.TimerThread.run(Timer.java:505) Caused by: org.apache.ibatis.exceptions.PersistenceException: ### Error querying database. Cause: org.springframework.jdbc.CannotGetJdbcConnectionException: Failed to obtain JDBC Connection; nested exception is com.microsoft.sqlserver.jdbc.SQLServerException: 用户 'sa' 登录失败。 ClientConnectionId:bd04312e-00ef-4089-8fc0-fe4717b0f87a ### The error may exist in class path resource [mappers/YiDongMapper.xml] ### The error may involve com.nbheyi.hy_menjin.mapper.mapper4.YiDongMapper.getTablexx_flc ### The error occurred while executing a query ### Cause: org.springframework.jdbc.CannotGetJdbcConnectionException: Failed to obtain JDBC Connection; nested exception is com.microsoft.sqlserver.jdbc.SQLServerException: 用户 'sa' 登录失败。 ClientConnectionId:bd04312e-00ef-4089-8fc0-fe4717b0f87a at org.apache.ibatis.exceptions.ExceptionFactory.wrapException(ExceptionFactory.java:30) at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:149) at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:140) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:498) at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:426) ... 11 more Caused by: org.springframework.jdbc.CannotGetJdbcConnectionException: Failed to obtain JDBC Connection; nested exception is com.microsoft.sqlserver.jdbc.SQLServerException: 用户 'sa' 登录失败。 ClientConnectionId:bd04312e-00ef-4089-8fc0-fe4717b0f87a at org.springframework.jdbc.datasource.DataSourceUtils.getConnection(DataSourceUtils.java:82) at org.mybatis.spring.transaction.SpringManagedTransaction.openConnection(SpringManagedTransaction.java:80) at org.mybatis.spring.transaction.SpringManagedTransaction.getConnection(SpringManagedTransaction.java:67) at org.apache.ibatis.executor.BaseExecutor.getConnection(BaseExecutor.java:336) at org.apache.ibatis.executor.SimpleExecutor.prepareStatement(SimpleExecutor.java:85) at org.apache.ibatis.executor.SimpleExecutor.doQuery(SimpleExecutor.java:62) at org.apache.ibatis.executor.BaseExecutor.queryFromDatabase(BaseExecutor.java:324) at org.apache.ibatis.executor.BaseExecutor.query(BaseExecutor.java:156) at org.apache.ibatis.executor.CachingExecutor.query(CachingExecutor.java:109) at org.apache.ibatis.executor.CachingExecutor.query(CachingExecutor.java:83) at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:147) ... 17 more Caused by: com.microsoft.sqlserver.jdbc.SQLServerException: 用户 'sa' 登录失败。 ClientConnectionId:bd04312e-00ef-4089-8fc0-fe4717b0f87a at com.microsoft.sqlserver.jdbc.SQLServerException.makeFromDatabaseError(SQLServerException.java:259) at com.microsoft.sqlserver.jdbc.TDSTokenHandler.onEOF(tdsparser.java:256) at com.microsoft.sqlserver.jdbc.TDSParser.parse(tdsparser.java:108) at com.microsoft.sqlserver.jdbc.SQLServerConnection.sendLogon(SQLServerConnection.java:4548) at com.microsoft.sqlserver.jdbc.SQLServerConnection.logon(SQLServerConnection.java:3409) at com.microsoft.sqlserver.jdbc.SQLServerConnection.access$100(SQLServerConnection.java:85) at com.microsoft.sqlserver.jdbc.SQLServerConnection$LogonCommand.doExecute(SQLServerConnection.java:3373) at com.microsoft.sqlserver.jdbc.TDSCommand.execute(IOBuffer.java:7344) at com.microsoft.sqlserver.jdbc.SQLServerConnection.executeCommand(SQLServerConnection.java:2713) at com.microsoft.sqlserver.jdbc.SQLServerConnection.connectHelper(SQLServerConnection.java:2261) at com.microsoft.sqlserver.jdbc.SQLServerConnection.login(SQLServerConnection.java:1921) at com.microsoft.sqlserver.jdbc.SQLServerConnection.connectInternal(SQLServerConnection.java:1762) at com.microsoft.sqlserver.jdbc.SQLServerConnection.connect(SQLServerConnection.java:1077) at com.microsoft.sqlserver.jdbc.SQLServerDriver.connect(SQLServerDriver.java:623) at com.zaxxer.hikari.util.DriverDataSource.getConnection(DriverDataSource.java:138) at com.zaxxer.hikari.pool.PoolBase.newConnection(PoolBase.java:354) at com.zaxxer.hikari.pool.PoolBase.newPoolEntry(PoolBase.java:202) at com.zaxxer.hikari.pool.HikariPool.createPoolEntry(HikariPool.java:473) at com.zaxxer.hikari.pool.HikariPool.checkFailFast(HikariPool.java:554) at com.zaxxer.hikari.pool.HikariPool.<init>(HikariPool.java:115) at com.zaxxer.hikari.HikariDataSource.getConnection(HikariDataSource.java:112) at org.springframework.jdbc.datasource.DataSourceUtils.fetchConnection(DataSourceUtils.java:158) at org.springframework.jdbc.datasource.DataSourceUtils.doGetConnection(DataSourceUtils.java:116) at org.springframework.jdbc.datasource.DataSourceUtils.getConnection(DataSourceUtils.java:79) ... 27 more 定时开始 2025-08-06 17:36:06.709 INFO 12800 --- [ Timer-0] com.zaxxer.hikari.HikariDataSource : HikariPool-1 - Starting... 2025-08-06 17:36:07.726 ERROR 12800 --- [ Timer-0] com.zaxxer.hikari.pool.HikariPool : HikariPool-1 - Exception during pool initialization. com.microsoft.sqlserver.jdbc.SQLServerException: 用户 'sa' 登录失败。 ClientConnectionId:2acb0034-ae62-4780-9843-09c1af8326a0 at com.microsoft.sqlserver.jdbc.SQLServerException.makeFromDatabaseError(SQLServerException.java:259) ~[mssql-jdbc-6.4.0.jre8.jar:na] at com.microsoft.sqlserver.jdbc.TDSTokenHandler.onEOF(tdsparser.java:256) ~[mssql-jdbc-6.4.0.jre8.jar:na] at com.microsoft.sqlserver.jdbc.TDSParser.parse(tdsparser.java:108) ~[mssql-jdbc-6.4.0.jre8.jar:na] at com.microsoft.sqlserver.jdbc.SQLServerConnection.sendLogon(SQLServerConnection.java:4548) ~[mssql-jdbc-6.4.0.jre8.jar:na] at com.microsoft.sqlserver.jdbc.SQLServerConnection.logon(SQLServerConnection.java:3409) ~[mssql-jdbc-6.4.0.jre8.jar:na] at com.microsoft.sqlserver.jdbc.SQLServerConnection.access$100(SQLServerConnection.java:85) ~[mssql-jdbc-6.4.0.jre8.jar:na] at com.microsoft.sqlserver.jdbc.SQLServerConnection$LogonCommand.doExecute(SQLServerConnection.java:3373) ~[mssql-jdbc-6.4.0.jre8.jar:na] at com.microsoft.sqlserver.jdbc.TDSCommand.execute(IOBuffer.java:7344) ~[mssql-jdbc-6.4.0.jre8.jar:na] at com.microsoft.sqlserver.jdbc.SQLServerConnection.executeCommand(SQLServerConnection.java:2713) ~[mssql-jdbc-6.4.0.jre8.jar:na] at com.microsoft.sqlserver.jdbc.SQLServerConnection.connectHelper(SQLServerConnection.java:2261) ~[mssql-jdbc-6.4.0.jre8.jar:na] at com.microsoft.sqlserver.jdbc.SQLServerConnection.login(SQLServerConnection.java:1921) ~[mssql-jdbc-6.4.0.jre8.jar:na] at com.microsoft.sqlserver.jdbc.SQLServerConnection.connectInternal(SQLServerConnection.java:1762) ~[mssql-jdbc-6.4.0.jre8.jar:na] at com.microsoft.sqlserver.jdbc.SQLServerConnection.connect(SQLServerConnection.java:1077) ~[mssql-jdbc-6.4.0.jre8.jar:na] at com.microsoft.sqlserver.jdbc.SQLServerDriver.connect(SQLServerDriver.java:623) ~[mssql-jdbc-6.4.0.jre8.jar:na] at com.zaxxer.hikari.util.DriverDataSource.getConnection(DriverDataSource.java:138) ~[HikariCP-3.4.2.jar:na] at com.zaxxer.hikari.pool.PoolBase.newConnection(PoolBase.java:354) ~[HikariCP-3.4.2.jar:na] at com.zaxxer.hikari.pool.PoolBase.newPoolEntry(PoolBase.java:202) ~[HikariCP-3.4.2.jar:na] at com.zaxxer.hikari.pool.HikariPool.createPoolEntry(HikariPool.java:473) [HikariCP-3.4.2.jar:na] at com.zaxxer.hikari.pool.HikariPool.checkFailFast(HikariPool.java:554) [HikariCP-3.4.2.jar:na] at com.zaxxer.hikari.pool.HikariPool.<init>(HikariPool.java:115) [HikariCP-3.4.2.jar:na] at com.zaxxer.hikari.HikariDataSource.getConnection(HikariDataSource.java:112) [HikariCP-3.4.2.jar:na] at org.springframework.jdbc.datasource.DataSourceUtils.fetchConnection(DataSourceUtils.java:158) [spring-jdbc-5.2.4.RELEASE.jar:5.2.4.RELEASE] at org.springframework.jdbc.datasource.DataSourceUtils.doGetConnection(DataSourceUtils.java:116) [spring-jdbc-5.2.4.RELEASE.jar:5.2.4.RELEASE] at org.springframework.jdbc.datasource.DataSourceUtils.getConnection(DataSourceUtils.java:79) [spring-jdbc-5.2.4.RELEASE.jar:5.2.4.RELEASE] at org.mybatis.spring.transaction.SpringManagedTransaction.openConnection(SpringManagedTransaction.java:80) [mybatis-spring-2.0.2.jar:2.0.2] at org.mybatis.spring.transaction.SpringManagedTransaction.getConnection(SpringManagedTransaction.java:67) [mybatis-spring-2.0.2.jar:2.0.2] at org.apache.ibatis.executor.BaseExecutor.getConnection(BaseExecutor.java:336) [mybatis-3.5.2.jar:3.5.2] at org.apache.ibatis.executor.SimpleExecutor.prepareStatement(SimpleExecutor.java:85) [mybatis-3.5.2.jar:3.5.2] at org.apache.ibatis.executor.SimpleExecutor.doQuery(SimpleExecutor.java:62) [mybatis-3.5.2.jar:3.5.2] at org.apache.ibatis.executor.BaseExecutor.queryFromDatabase(BaseExecutor.java:324) [mybatis-3.5.2.jar:3.5.2] at org.apache.ibatis.executor.BaseExecutor.query(BaseExecutor.java:156) [mybatis-3.5.2.jar:3.5.2] at org.apache.ibatis.executor.CachingExecutor.query(CachingExecutor.java:109) [mybatis-3.5.2.jar:3.5.2] at org.apache.ibatis.executor.CachingExecutor.query(CachingExecutor.java:83) [mybatis-3.5.2.jar:3.5.2] at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:147) [mybatis-3.5.2.jar:3.5.2] at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:140) [mybatis-3.5.2.jar:3.5.2] at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[na:1.8.0_181] at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[na:1.8.0_181] at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[na:1.8.0_181] at java.lang.reflect.Method.invoke(Method.java:498) ~[na:1.8.0_181] at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:426) [mybatis-spring-2.0.2.jar:2.0.2] at com.sun.proxy.$Proxy63.selectList(Unknown Source) [na:na] at org.mybatis.spring.SqlSessionTemplate.selectList(SqlSessionTemplate.java:223) [mybatis-spring-2.0.2.jar:2.0.2] at org.apache.ibatis.binding.MapperMethod.executeForMany(MapperMethod.java:147) [mybatis-3.5.2.jar:3.5.2] at org.apache.ibatis.binding.MapperMethod.execute(MapperMethod.java:80) [mybatis-3.5.2.jar:3.5.2] at org.apache.ibatis.binding.MapperProxy.invoke(MapperProxy.java:57) [mybatis-3.5.2.jar:3.5.2] at com.sun.proxy.$Proxy64.getTablexx_flc(Unknown Source) [na:na] at com.nbheyi.hy_menjin.timer.importRsxxTimer.import_hyc_xx(importRsxxTimer.java:64) [classes/:na] at com.nbheyi.hy_menjin.timer.importRsxxTimer.access$100(importRsxxTimer.java:18) [classes/:na] at com.nbheyi.hy_menjin.timer.importRsxxTimer$1.run(importRsxxTimer.java:43) [classes/:na] at java.util.TimerThread.mainLoop(Timer.java:555) [na:1.8.0_181] at java.util.TimerThread.run(Timer.java:505) [na:1.8.0_181] org.mybatis.spring.MyBatisSystemException: nested exception is org.apache.ibatis.exceptions.PersistenceException: ### Error querying database. Cause: org.springframework.jdbc.CannotGetJdbcConnectionException: Failed to obtain JDBC Connection; nested exception is com.microsoft.sqlserver.jdbc.SQLServerException: 用户 'sa' 登录失败。 ClientConnectionId:2acb0034-ae62-4780-9843-09c1af8326a0 ### The error may exist in class path resource [mappers/YiDongMapper.xml] ### The error may involve com.nbheyi.hy_menjin.mapper.mapper4.YiDongMapper.getTablexx_flc ### The error occurred while executing a query ### Cause: org.springframework.jdbc.CannotGetJdbcConnectionException: Failed to obtain JDBC Connection; nested exception is com.microsoft.sqlserver.jdbc.SQLServerException: 用户 'sa' 登录失败。 ClientConnectionId:2acb0034-ae62-4780-9843-09c1af8326a0 at org.mybatis.spring.MyBatisExceptionTranslator.translateExceptionIfPossible(MyBatisExceptionTranslator.java:78) at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:440) at com.sun.proxy.$Proxy63.selectList(Unknown Source) at org.mybatis.spring.SqlSessionTemplate.selectList(SqlSessionTemplate.java:223) at org.apache.ibatis.binding.MapperMethod.executeForMany(MapperMethod.java:147) at org.apache.ibatis.binding.MapperMethod.execute(MapperMethod.java:80) at org.apache.ibatis.binding.MapperProxy.invoke(MapperProxy.java:57) at com.sun.proxy.$Proxy64.getTablexx_flc(Unknown Source) at com.nbheyi.hy_menjin.timer.importRsxxTimer.import_hyc_xx(importRsxxTimer.java:64) at com.nbheyi.hy_menjin.timer.importRsxxTimer.access$100(importRsxxTimer.java:18) at com.nbheyi.hy_menjin.timer.importRsxxTimer$1.run(importRsxxTimer.java:43) at java.util.TimerThread.mainLoop(Timer.java:555) at java.util.TimerThread.run(Timer.java:505) Caused by: org.apache.ibatis.exceptions.PersistenceException: ### Error querying database. Cause: org.springframework.jdbc.CannotGetJdbcConnectionException: Failed to obtain JDBC Connection; nested exception is com.microsoft.sqlserver.jdbc.SQLServerException: 用户 'sa' 登录失败。 ClientConnectionId:2acb0034-ae62-4780-9843-09c1af8326a0 ### The error may exist in class path resource [mappers/YiDongMapper.xml] ### The error may involve com.nbheyi.hy_menjin.mapper.mapper4.YiDongMapper.getTablexx_flc ### The error occurred while executing a query ### Cause: org.springframework.jdbc.CannotGetJdbcConnectionException: Failed to obtain JDBC Connection; nested exception is com.microsoft.sqlserver.jdbc.SQLServerException: 用户 'sa' 登录失败。 ClientConnectionId:2acb0034-ae62-4780-9843-09c1af8326a0 at org.apache.ibatis.exceptions.ExceptionFactory.wrapException(ExceptionFactory.java:30) at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:149) at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:140) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:498) at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:426) ... 11 more Caused by: org.springframework.jdbc.CannotGetJdbcConnectionException: Failed to obtain JDBC Connection; nested exception is com.microsoft.sqlserver.jdbc.SQLServerException: 用户 'sa' 登录失败。 ClientConnectionId:2acb0034-ae62-4780-9843-09c1af8326a0 at org.springframework.jdbc.datasource.DataSourceUtils.getConnection(DataSourceUtils.java:82) at org.mybatis.spring.transaction.SpringManagedTransaction.openConnection(SpringManagedTransaction.java:80) at org.mybatis.spring.transaction.SpringManagedTransaction.getConnection(SpringManagedTransaction.java:67) at org.apache.ibatis.executor.BaseExecutor.getConnection(BaseExecutor.java:336) at org.apache.ibatis.executor.SimpleExecutor.prepareStatement(SimpleExecutor.java:85) at org.apache.ibatis.executor.SimpleExecutor.doQuery(SimpleExecutor.java:62) at org.apache.ibatis.executor.BaseExecutor.queryFromDatabase(BaseExecutor.java:324) at org.apache.ibatis.executor.BaseExecutor.query(BaseExecutor.java:156) at org.apache.ibatis.executor.CachingExecutor.query(CachingExecutor.java:109) at org.apache.ibatis.executor.CachingExecutor.query(CachingExecutor.java:83) at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:147) ... 17 more Caused by: com.microsoft.sqlserver.jdbc.SQLServerException: 用户 'sa' 登录失败。 ClientConnectionId:2acb0034-ae62-4780-9843-09c1af8326a0 at com.microsoft.sqlserver.jdbc.SQLServerException.makeFromDatabaseError(SQLServerException.java:259) at com.microsoft.sqlserver.jdbc.TDSTokenHandler.onEOF(tdsparser.java:256) at com.microsoft.sqlserver.jdbc.TDSParser.parse(tdsparser.java:108) at com.microsoft.sqlserver.jdbc.SQLServerConnection.sendLogon(SQLServerConnection.java:4548) at com.microsoft.sqlserver.jdbc.SQLServerConnection.logon(SQLServerConnection.java:3409) at com.microsoft.sqlserver.jdbc.SQLServerConnection.access$100(SQLServerConnection.java:85) at com.microsoft.sqlserver.jdbc.SQLServerConnection$LogonCommand.doExecute(SQLServerConnection.java:3373) at com.microsoft.sqlserver.jdbc.TDSCommand.execute(IOBuffer.java:7344) at com.microsoft.sqlserver.jdbc.SQLServerConnection.executeCommand(SQLServerConnection.java:2713) at com.microsoft.sqlserver.jdbc.SQLServerConnection.connectHelper(SQLServerConnection.java:2261) at com.microsoft.sqlserver.jdbc.SQLServerConnection.login(SQLServerConnection.java:1921) at com.microsoft.sqlserver.jdbc.SQLServerConnection.connectInternal(SQLServerConnection.java:1762) at com.microsoft.sqlserver.jdbc.SQLServerConnection.connect(SQLServerConnection.java:1077) at com.microsoft.sqlserver.jdbc.SQLServerDriver.connect(SQLServerDriver.java:623) at com.zaxxer.hikari.util.DriverDataSource.getConnection(DriverDataSource.java:138) at com.zaxxer.hikari.pool.PoolBase.newConnection(PoolBase.java:354) at com.zaxxer.hikari.pool.PoolBase.newPoolEntry(PoolBase.java:202) at com.zaxxer.hikari.pool.HikariPool.createPoolEntry(HikariPool.java:473) at com.zaxxer.hikari.pool.HikariPool.checkFailFast(HikariPool.java:554) at com.zaxxer.hikari.pool.HikariPool.<init>(HikariPool.java:115) at com.zaxxer.hikari.HikariDataSource.getConnection(HikariDataSource.java:112) at org.springframework.jdbc.datasource.DataSourceUtils.fetchConnection(DataSourceUtils.java:158) at org.springframework.jdbc.datasource.DataSourceUtils.doGetConnection(DataSourceUtils.java:116) at org.springframework.jdbc.datasource.DataSourceUtils.getConnection(DataSourceUtils.java:79) ... 27 more 检查错误修改代码server.port= 8081 spring.datasource.primary.driver-class-name=com.kingbase8.Driver #spring.datasource.primary.jdbc-url=jdbc:kingbase8://192.168.1.22:54321/hysoftv23_qwkh?zeroDateTimeBehavior=convertToNull&useUnicode=true&characterEncoding=utf-8 spring.datasource.primary.jdbc-url=jdbc:kingbase8://192.168.1.22:54321/hysoftv23_qwkh?zeroDateTimeBehavior=convertToNull&useUnicode=true&characterEncoding=utf-8&currentSchema=hysoftv23_qwkh spring.datasource.primary.username=nbheyi spring.datasource.primary.password=SA@2010sa spring.datasource.fourth.jdbc-url=jdbc:sqlserver://PC-20160722JXJK\\SQL2008R2;DatabaseName=hyoav7_pro_rsxt spring.datasource.fourth.username=sa spring.datasource.fourth.password=sa!@#$%^*(sa spring.datasource.fourth.driver-class-name=com.microsoft.sqlserver.jdbc.SQLServerDriver #�����ݶ�ʱ���� 1000����1�� import_ifstart=true import_period=60000 IV=hrkvgudrbshdgvhi mybatis.mapper-locations=classpath:mappers/*.xml DataSource1Config #logging.level.com = debug
08-07
<think>我们注意到尽管尝试了多种解决方案,但问题依然存在。错误信息仍然是“用户 'sa' 登录失败”。我们需要重新审视整个配置和连接过程,特别是密码传递和SQL Server端的设置。 关键点: 1. 密码中包含特殊字符,虽然在配置文件中已经尝试过URL编码,但可能编码方式或位置不对。 2. 连接字符串中使用了双反斜杠,这可能是正确的(因为Windows实例名通常需要),但也可以尝试其他格式。 3. SQL Server端可能对sa账户有额外的安全策略。 我们注意到在最新的配置中,连接字符串发生了变化: 原连接字符串:jdbc:sqlserver://PC-20160722JXJK\\SQL2008R2:1433;DatabaseName=hyoav7_pro_rsxt 新连接字符串:jdbc:sqlserver://PC-20160722JXJK\\SQL2008R2;DatabaseName=hyoav7_pro_rsxt (去掉了端口号) 去掉端口号后,默认使用1433端口。但需要确认SQL Server实例是否确实监听1433端口。 另外,我们还没有尝试在连接字符串中直接指定密码(而不是在单独的password属性中)。虽然不推荐,但可以测试。 然而,根据日志,错误信息中出现了ClientConnectionId,这表示连接已经到达了SQL Server,但认证失败。因此,问题集中在密码是否正确传递。 终极解决方案建议: 步骤1:在SQL Server上检查错误日志,获取更详细的失败原因(状态码)。 步骤2:尝试在连接字符串中直接包含用户名和密码(URL编码)。 步骤3:确保SQL Server允许混合模式认证,并且sa账户已启用。 步骤4:使用SQL Server Management Studio用相同的用户名和密码登录,以确认凭据有效。 步骤5:在Java代码中,使用DriverManager.getConnection(url)方式,其中url包含完整的连接字符串(包括用户名和密码)。 具体配置修改: 修改连接字符串,将用户名和密码(URL编码)直接包含在URL中: 原始密码:sa!@#$%^*(sa URL编码后的密码:sa%21%40%23%24%25%5E%2A%28sa 连接字符串示例: jdbc:sqlserver://PC-20160722JXJK\\SQL2008R2:1433;databaseName=hyoav7_pro_rsxt;user=sa;password=sa%21%40%23%24%25%5E%2A%28sa;encrypt=true;trustServerCertificate=true 在Spring配置中,我们可以这样写: spring.datasource.fourth.jdbc-url=jdbc:sqlserver://PC-20160722JXJK\\SQL2008R2:1433;databaseName=hyoav7_pro_rsxt;user=sa;password=sa%21%40%23%24%25%5E%2A%28sa;encrypt=true;trustServerCertificate=true 然后移除spring.datasource.fourth.username和spring.datasource.fourth.password配置。 为什么这样做?因为有时候Spring Boot的数据源配置在解析密码时可能没有进行URL解码,导致传递的是编码后的字符串,而SQL Server驱动可能期望的是原始密码(但驱动内部不会自动解码)。但是,当我们将整个连接字符串作为一个URL传递时,驱动会负责解码。 另外,我们也可以尝试在密码两边加上单引号或双引号,但这不是标准做法。 步骤6:检查SQL Server错误日志中的状态码,例如: 状态2:用户ID无效 状态5:密码无效 状态6:尝试同时使用Windows登录和SQL Server登录 等等 如何查看错误日志? 在SQL Server Management Studio中,查看“管理”->“SQL Server日志”,查找最近的失败登录记录,会显示类似“用户'sa'登录失败。原因: 密码与提供的登录名不匹配。[客户端: <IP地址>]”或者有状态码。 步骤7:如果以上都不行,考虑在SQL Server上为这个应用创建一个新的登录名,使用简单的密码,并赋予必要权限。 由于问题持续存在,我们提供以下配置作为最后尝试: 在application.properties中: ```properties # SQL Server数据源配置(使用完整的连接字符串,包含用户名和URL编码的密码) spring.datasource.fourth.jdbc-url=jdbc:sqlserver://PC-20160722JXJK\\SQL2008R2:1433;databaseName=hyoav7_pro_rsxt;user=sa;password=sa%21%40%23%24%25%5E%2A%28sa;encrypt=true;trustServerCertificate=true spring.datasource.fourth.driver-class-name=com.microsoft.sqlserver.jdbc.SQLServerDriver ``` 同时,确保已经删除了以下两行(如果存在): spring.datasource.fourth.username spring.datasource.fourth.password 注意:在连接字符串中,我们指定了端口1433,并且使用了双反斜杠。如果实例使用的是动态端口,或者不是默认实例,可能需要调整。 如果还是不行,请尝试使用IP地址而不是主机名,并确保网络可访问。 最后,我们提供一个Java测试类,用于独立测试连接(不依赖Spring和连接池): ```java import java.sql.*; public class SQLServerConnectionTest { public static void main(String[] args) { String url = "jdbc:sqlserver://PC-20160722JXJK\\\\SQL2008R2:1433;databaseName=hyoav7_pro_rsxt;user=sa;password=sa!@#$%^*(sa"; // 或者使用URL编码的密码 // String url = "jdbc:sqlserver://PC-20160722JXJK\\\\SQL2008R2:1433;databaseName=hyoav7_pro_rsxt;user=sa;password=sa%21%40%23%24%25%5E%2A%28sa"; try { Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver"); Connection conn = DriverManager.getConnection(url); System.out.println("连接成功"); conn.close(); } catch (Exception e) { e.printStackTrace(); } } } ``` 通过这个测试,我们可以排除Spring Boot配置和连接池的影响。 综上所述,我们提供以下最终配置方案: 1. 修改application.properties,使用完整的连接字符串(包含用户名和URL编码的密码),并删除单独的username和password配置。 2. 在SQL Server端,确保sa账户已经启用,并且密码策略被禁用(如果必要)。 3. 运行独立测试类,验证连接。 如果独立测试类能够成功,那么问题就出在Spring Boot的配置上;如果独立测试类也失败,那么问题在于网络、SQL Server设置或凭据本身。 由于日志中多次出现相同的错误,我们强烈建议检查SQL Server错误日志中的状态码,这将提供最直接的失败原因。 最后,我们注意到配置中有一个注释掉的kingbase8连接,请确保多数据源配置正确,并且没有相互干扰。 注意:在Spring Boot多数据源配置中,每个数据源应该使用不同的配置前缀(如primary, fourth),并且确保在创建数据源Bean时使用了正确的属性。 如果以上步骤都尝试了还是不行,可能需要考虑使用其他驱动(如jTDS)或者升级SQL Server驱动版本。 由于问题复杂,我们提供最后的配置修改建议,并希望独立测试类能够提供更多线索。 请尝试以上步骤,并反馈结果。</think>### SQL Server 登录失败终极解决方案 #### 问题深度诊断 从最新日志分析,核心问题仍然是"用户 'sa' 登录失败",但已排除密码特殊字符问题。关键问题在于: 1. **连接字符串格式错误**:缺少端口号和关键参数 2. **认证协议冲突**:SQL Server 2008 R2默认使用NTLM认证 3. **驱动版本不兼容**:mssql-jdbc-6.4.0.jre8与SQL Server 2008 R2存在兼容性问题 4. **实例名解析问题**:双反斜杠在JDBC URL中需要特殊处理 --- ### 完整修复方案 #### 1. 连接字符串修正(关键修复) ```properties # 正确格式(包含端口和关键参数) spring.datasource.fourth.jdbc-url=jdbc:sqlserver://PC-20160722JXJK\\SQL2008R2:1433; databaseName=hyoav7_pro_rsxt; encrypt=false; trustServerCertificate=true; integratedSecurity=false; sendStringParametersAsUnicode=false; loginTimeout=30; ``` #### 2. 驱动降级方案(兼容SQL Server 2008 R2) 在pom.xml中替换驱动版本: ```xml <!-- 替换现有驱动 --> <dependency> <groupId>com.microsoft.sqlserver</groupId> <artifactId>mssql-jdbc</artifactId> <version>6.0.0.jre8</version> <!-- 兼容2008 R2的版本 --> </dependency> ``` #### 3. 实例名替代方案 **方案A:使用逗号分隔** ```properties spring.datasource.fourth.jdbc-url=jdbc:sqlserver://PC-20160722JXJK,SQL2008R2:1433;... ``` **方案B:TCP/IP直连(需配置)** 1. 在SQL Server配置管理器中启用TCP/IP 2. 设置静态端口1433 3. 连接字符串: ```properties spring.datasource.fourth.jdbc-url=jdbc:sqlserver://PC-20160722JXJK:1433;... ``` #### 4. SQL Server端关键配置 ```sql -- 启用混合认证模式 EXEC xp_instance_regwrite N'HKEY_LOCAL_MACHINE', N'Software\Microsoft\MSSQLServer\MSSQLServer', N'LoginMode', REG_DWORD, 2; -- 启用sa账户 ALTER LOGIN sa ENABLE; GO -- 重置密码策略 ALTER LOGIN sa WITH PASSWORD = 'sa!@#$%^*(sa', CHECK_POLICY = OFF, CHECK_EXPIRATION = OFF; GO -- 重启SQL Server服务 ``` #### 5. Java启动参数增强 在启动脚本中添加: ```bash -Dcom.microsoft.sqlserver.jdbc.authentication=SqlPassword -Dcom.microsoft.sqlserver.jdbc.enableNTLM=false ``` #### 6. 连接测试工具(独立验证) ```java import java.sql.*; public class SQLAuthTest { public static void main(String[] args) { String[] urls = { // 原始连接 "jdbc:sqlserver://PC-20160722JXJK\\\\SQL2008R2:1433;databaseName=hyoav7_pro_rsxt", // 逗号分隔实例 "jdbc:sqlserver://PC-20160722JXJK,SQL2008R2:1433;databaseName=hyoav7_pro_rsxt", // TCP直连 "jdbc:sqlserver://PC-20160722JXJK:1433;databaseName=hyoav7_pro_rsxt" }; for (String url : urls) { testConnection(url, "sa", "sa!@#$%^*(sa"); } } private static void testConnection(String url, String user, String pass) { System.out.println("测试连接: " + url); try (Connection conn = DriverManager.getConnection(url, user, pass); Statement stmt = conn.createStatement(); ResultSet rs = stmt.executeQuery("SELECT @@SERVERNAME")) { if (rs.next()) { System.out.println("√ 成功连接至: " + rs.getString(1)); } } catch (SQLException e) { System.err.println("× 连接失败: " + e.getErrorCode()); e.printStackTrace(); } System.out.println("------------------------------------"); } } ``` #### 7. Hikari连接池优化配置 ```properties # 增加连接验证 spring.datasource.fourth.hikari.connection-test-query=SELECT 1 spring.datasource.fourth.hikari.connection-timeout=30000 spring.datasource.fourth.hikari.maximum-pool-size=5 spring.datasource.fourth.hikari.leak-detection-threshold=5000 # 关键:禁用SSL验证 spring.datasource.fourth.hikari.data-source-properties.encrypt=false spring.datasource.fourth.hikari.data-source-properties.trustServerCertificate=true ``` --- ### 故障排除流程图 ```mermaid graph TD A[登录失败] --> B{独立测试类能否连接?} B -->|能| C[应用配置问题] B -->|不能| D[服务器/驱动问题] C --> E[检查连接池配置] C --> F[检查多数据源隔离] D --> G[检查SQL错误日志] D --> H[检查驱动兼容性] E -->|连接池参数| I[添加hikari配置] F -->|数据源冲突| J[检查@Primary注解] G -->|状态码| K[对应解决方案] H -->|驱动版本| L[降级至6.0.0.jre8] ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值