chain_xx_wdm

chain_xx_wdm 查看完整档案

深圳编辑  |  填写毕业院校  |  填写所在公司/组织 www.chain-xx-wdm.top 编辑
编辑

1.领养代替买卖
2.对技术有向往
3.微博@-納是大大大大大太阳啊-

个人动态

chain_xx_wdm 发布了文章 · 10月17日

mysql-1045 - Access denied for user 'root'@'localhost'

https://www.jianshu.com/p/b7e...

在如题如示的1045解决后,可能还会报错2003, 所以需要重启mysql服务

image.png

查看原文

赞 0 收藏 0 评论 0

chain_xx_wdm 发布了文章 · 10月13日

使用git报错:RPC failed; HTTP 504 curl 22

使用git pull拉取远程仓库数据时, 完整报错如下

error: RPC failed; HTTP 504 curl 22 The requested URL returned error: 504
fatal: the remote end hung up unexpectedly

解决方法 : 添加参数--depth = 1
image.png

查看原文

赞 0 收藏 0 评论 0

chain_xx_wdm 发布了文章 · 10月10日

[转发]Mac VMware Fusion CentOS7配置静态IP

赞 0 收藏 0 评论 0

chain_xx_wdm 发布了文章 · 10月9日

springboot中properties配置文件读取中文乱码(mac)

mac与windows的差别只在于菜单位置有点不同, 处理方式是一致的

关于这里提到的中文乱码问题, 是在properties文件中添加中文, 然后使用单元测试将结果打印在控制台, 结果出现乱码

网上很多"解答"提到的要么是properties文件中添加参数, 要么是pom.xml文件中添加依赖, 要么是在FileEncoding中将编码设置成UTF-8

以上方法我都试过, 都没有效

其实这里的根本原因是: properties文件是使用ASCII编码, 而中文是UTF-8, 所以出现了乱码

处理方式是在FileEncoding菜单中勾选Transparent native-to-ascii conversion
image.png
image.png

查看原文

赞 0 收藏 0 评论 0

chain_xx_wdm 发布了文章 · 9月28日

Spring-体系结构

赞 0 收藏 0 评论 0

chain_xx_wdm 发布了文章 · 9月27日

java.sql.SQLException: Can''t call commit when autocommit=true

在使用java操作数据库,创建数据库连接对象,创建事务管理器(开启事务,提交事务,回滚事务),运行代码后,报错如下

java.sql.SQLException: Can't call commit when autocommit=true
at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:65)
at com.mysql.cj.jdbc.ConnectionImpl.commit(ConnectionImpl.java:814)
at com.alibaba.druid.pool.DruidPooledConnection.commit(DruidPooledConnection.java:749)
at com.bigdata.utils.TransactionManager.commit(TransactionManager.java:29)
at com.bigdata.service.impl.AccountServiceImpl.transfer(AccountServiceImpl.java:29)
at com.bigdata.test.SpringTansferTest.test(SpringTansferTest.java:21)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.base/java.lang.reflect.Method.invoke(Method.java:566)
at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:59)
at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12)
at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:56)
at org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:17)
at org.springframework.test.context.junit4.statements.RunBeforeTestExecutionCallbacks.evaluate(RunBeforeTestExecutionCallbacks.java:74)
at org.springframework.test.context.junit4.statements.RunAfterTestExecutionCallbacks.evaluate(RunAfterTestExecutionCallbacks.java:84)
at org.springframework.test.context.junit4.statements.RunBeforeTestMethodCallbacks.evaluate(RunBeforeTestMethodCallbacks.java:75)
at org.springframework.test.context.junit4.statements.RunAfterTestMethodCallbacks.evaluate(RunAfterTestMethodCallbacks.java:86)
at org.springframework.test.context.junit4.statements.SpringRepeat.evaluate(SpringRepeat.java:84)
at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:366)
at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.runChild(SpringJUnit4ClassRunner.java:251)
at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.runChild(SpringJUnit4ClassRunner.java:97)
at org.junit.runners.ParentRunner$4.run(ParentRunner.java:331)
at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:79)
at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:329)
at org.junit.runners.ParentRunner.access$100(ParentRunner.java:66)
at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:293)
at org.springframework.test.context.junit4.statements.RunBeforeTestClassCallbacks.evaluate(RunBeforeTestClassCallbacks.java:61)
at org.springframework.test.context.junit4.statements.RunAfterTestClassCallbacks.evaluate(RunAfterTestClassCallbacks.java:70)
at org.junit.runners.ParentRunner$3.evaluate(ParentRunner.java:306)
at org.junit.runners.ParentRunner.run(ParentRunner.java:413)
at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.run(SpringJUnit4ClassRunner.java:190)
at org.junit.runner.JUnitCore.run(JUnitCore.java:137)
at com.intellij.junit4.JUnit4IdeaTestRunner.startRunnerWithArgs(JUnit4IdeaTestRunner.java:68)
at com.intellij.rt.junit.IdeaTestRunner$Repeater.startRunnerWithArgs(IdeaTestRunner.java:33)
at com.intellij.rt.junit.JUnitStarter.prepareStreamsAndStart(JUnitStarter.java:230)
at com.intellij.rt.junit.JUnitStarter.main(JUnitStarter.java:58)

相关代码如下
image.png
image.png

错误提示重点在于第一句,意思是如果当前自动提交事务的功能是开启的,就不能调用commit方法.

但是就像我上面的代码,实际上在begin()方法中已经将自动提交事务的功能关闭了(setAutoCommit(false)),而在另外的代码中也可以保证在提交事务的方法commit()执行之前, 先执行begin()方法

最后发现原因是创建数据库连接对象那里,从连接池获取数据库连接对象是在成员方法getConnection()中实现的. 那么每次调用这个方法时, 不能保证两次获取的是同一连接. 所以在当前连接关闭了自动提交事务, 但是下一个连接不一定是这种情况.

所以处理方式就是将从连接池获取连接的操作移到成员方法外,确保使用的是同一连接
image.png

查看原文

赞 0 收藏 0 评论 0

chain_xx_wdm 发布了文章 · 9月25日

Junit4报错-No tests found matching Tests

Junit4-No tests found matching Tests from org.junit.runner.Request
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(classes = {SpringConfig.class})
public class SpringTest {
//    ClassPathXmlApplicationContext classPathXmlApplicationContext = new ClassPathXmlApplicationContext("applicationContext.xml");
//    AccountService accountService = (AccountService) classPathXmlApplicationContext.getBean("accountService");
//    AnnotationConfigApplicationContext annotationConfigApplicationContext = new AnnotationConfigApplicationContext(SpringConfig.class);
//    AccountService accountService = (AccountService) annotationConfigApplicationContext.getBean("accountService");
 @Autowired
 private AccountService accountService;
 @Test
 public void testSave(){
        Account account = new Account();
 account.setName("乌冬面");
 account.setMoney(7777);
 accountService.save(account);
 }
    @Test
 public void testUpdate(){
        Account account = new Account();
 account.setName("希宝");
 account.setId(7);
 accountService.update(account);
 }
    @Test
 public void testDelete(){
        Account account = new Account();
 account.setId(8);
 accountService.delete(account);
 }
    @Test
 public void testFindAll(){
        List<Account> all = accountService.findAll();
 for (Account account : all) {
            System.out.println(account);
 }
    }
    @Test
 public void testFindById(){
        Account account = accountService.findById(6);
 System.out.println(account);
 }
    public void test(){
    }
}

在上述代码编写完成后, 点击运行其中一个测试方法,就会报标题中的错误

解决方式是:
先运行整个测试类, 成功后, 再运行其中一个测试方法

另,
导包应该导的是import org.junit.Test,不能导import org.junit.jupiter.api.Test

查看原文

赞 0 收藏 0 评论 0

chain_xx_wdm 发布了文章 · 9月22日

mybatis-org.apache.ibatis.executor.ExecutorException

在使用mybatis进行一对多嵌套查询时, 报错如下

org.apache.ibatis.exceptions.PersistenceException:
Error querying database. Cause: org.apache.ibatis.executor.ExecutorException: Statement returned more than one row, where no more than one was expected.
The error may exist in com/bigdata/mapper/UserMapper.xml
The error may involve com.bigdata.mapper.UserMapper.findAllOrders
The error occurred while handling results
SQL: select * from orders where uid = ?
Cause: org.apache.ibatis.executor.ExecutorException: Statement returned more than one row, where no more than one was expected.

错误涉及代码如下
image.png

错误大体是说, 箭头指向的sql语句返回的数据行数大于1.
这个在业务上是OK的, 因为orders表是订单表, 一个用户可能有多个订单.
但是在这里结果多行这件事被作为错误对待, 说明应该是哪里没有告知mybatis应该使用集合(或数组)承接结果

最终查找到问题在<collection property="">, property属性值在com.bigdata.domain.User的定义中是Orders, 而不是可以进行遍历的List类型
image.png

所以处理方式也很明显了, 将该成员变量改为可迭代类型, 将相应地修改get/set方法以及toString()方法即可

查看原文

赞 0 收藏 0 评论 0

chain_xx_wdm 发布了文章 · 9月22日

mybatis-java.lang.IllegalArgumentException

嵌套查询 - 配置文件

在使用mybatis一对一的嵌套查询时, 报错如下:

org.apache.ibatis.exceptions.PersistenceException: Error querying database. Cause: java.lang.IllegalArgumentException: Mapped Statements collection does not contain value for com.bigdata.mapper.UserMapper.findById
The error may exist in com/bigdata/mapper/OrderMapper.xml
The error may involve com.bigdata.mapper.OrderMapper.findAllOrders2
The error occurred while handling results
SQL: select * from orders
Cause: java.lang.IllegalArgumentException: Mapped Statements collection does not contain value for com.bigdata.mapper.UserMapper.findById

网上找来找去, 解决方法基本都是查namespace之类的, 检查名称是否一致. 这些错误我都没犯, 不适用于我这个问题, 最终解决方法如下说明.

首先, 依赖的包的版本分别是

  • mysql : 8.0.11
  • mybatis : 3.5.5
  • junit : 4.13

接下来, 上述错误涉及到的代码如下
image.png

上面报错的大意是: 找不到findById
可是就像我框起来的代码, 在select属性中, 我非常明确地指出了findById所在的路径.

其实问题也就是在这里select后面的路径..写得太完全了..
只要将前面的都删除, 只保留findById就可以了...
image.png

我不确定是不是上面哪个依赖包的版本过高, 导致它变智能了, 所以把包的版本也列出来供参考

注解开发 - 一对一查询

在使用注解开发进行一对一查询时,出现以下错误

org.apache.ibatis.exceptions.PersistenceException:
Error querying database. Cause: java.lang.IllegalArgumentException: Mapped Statements collection does not contain value for com.bigdata.mapper.OrderMapper.findById
The error may exist in com/bigdata/mapper/OrderMapper.java (best guess)
The error may involve com.bigdata.mapper.OrderMapper.findAllOrders
The error occurred while handling results
SQL: select * from orders
Cause: java.lang.IllegalArgumentException: Mapped Statements collection does not contain value for com.bigdata.mapper.OrderMapper.findById

错误涉及的代码如下
image.png
image.png

错误的大概意思是又找不到我的findById方法
这里的原因是我在定义findById方法时,需要加一个@Results注解才可以
(具体原理不清楚)
image.png

查看原文

赞 0 收藏 0 评论 0

chain_xx_wdm 发布了文章 · 9月20日

idea创建maven报错:java error:release version 5 not supported(mac)

在idea创建maven工程,运行程序时报错

  1. Error:java:error:release version 5 not supported
    image.png
  2. Error:java:Source option 5 is no longer supported.Use 6 or later
    image.png

出现上述两个问题都是某个地方配置的时候版本选错了. 按照下述步骤一一 排查即可
image.png

查看原文

赞 0 收藏 0 评论 0

认证与成就

  • 获得 17 次点赞
  • 获得 1 枚徽章 获得 0 枚金徽章, 获得 0 枚银徽章, 获得 1 枚铜徽章

擅长技能
编辑

(゚∀゚ )
暂时没有

开源项目 & 著作
编辑

(゚∀゚ )
暂时没有

注册于 8月27日
个人主页被 254 人浏览