pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mybatis/AutoGenerateIdInterceptor.java
@@ -27,29 +27,24 @@ static int MAPPED_STATEMENT_INDEX = 0; static int PARAMETER_INDEX = 1; static int ROWBOUNDS_INDEX = 2; static int RESULT_HANDLER_INDEX = 3; static String BASE_FIELD_SET_PRIMARY_KEY_FUNTION_NAME = "setId"; static String BASE_FIELD_SET_CREATE_TIME_FUNTION_NAME = "setCreateDt"; static String BASE_FIELD_SET_UPDATE_TIME_FUNTION_NAME = "setUpdateDt"; static String BASE_FIELD_SET_DELETE_FUNTION_NAME = "setDelete"; public AutoGenerateIdInterceptor() { //System.out.println("auto generate primaryKey mybatis plugin start!!!"); } @SuppressWarnings("static-access") /** * 拦截逻辑实现 * @param invocation 代理 * @return Object * @throws Throwable 异常 */ public Object intercept(Invocation invocation) throws Throwable { MappedStatement mappedStatement = (MappedStatement) invocation.getArgs()[MAPPED_STATEMENT_INDEX]; SqlCommandType commandType = mappedStatement.getSqlCommandType(); if (commandType.INSERT.equals(SqlCommandType.INSERT)) { if (commandType.equals(SqlCommandType.INSERT)) { Object entity = invocation.getArgs()[PARAMETER_INDEX]; if (entity instanceof BaseEntity) { Class<? extends Object> entityClass = entity.getClass(); //Class<? extends Object> entityClass = entity.getClass(); Class<?> entityClass = entity.getClass(); Method setMt = entityClass.getMethod(BASE_FIELD_SET_PRIMARY_KEY_FUNTION_NAME, Long.class) ; if(setMt != null){ setMt.invoke(entity, new IDLongGenerator().generate()); } setMt.invoke(entity, new IDLongGenerator().generate()); invocation.getArgs()[PARAMETER_INDEX] = entity; } } pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoBa/BaUserMapper.java
@@ -3,9 +3,10 @@ import com.dy.pipIrrGlobal.pojoBa.BaUser; import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Param; import com.baomidou.mybatisplus.core.mapper.BaseMapper; @Mapper public interface BaUserMapper extends com.baomidou.mybatisplus.core.mapper.Mapper<BaUser> { public interface BaUserMapper extends BaseMapper<BaUser> { /** * 用户登录 pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoDemo/DemoMpMapper.java
New file @@ -0,0 +1,9 @@ package com.dy.pipIrrGlobal.daoDemo; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.dy.pipIrrGlobal.pojoDemo.DemoMp; import org.apache.ibatis.annotations.Mapper; @Mapper public interface DemoMpMapper extends BaseMapper<DemoMp> { } pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/pojoBa/BaRolePrivilege.java
@@ -1,6 +1,7 @@ package com.dy.pipIrrGlobal.pojoBa; import com.baomidou.mybatisplus.annotation.TableName; import com.dy.common.po.BaseEntity; import lombok.*; @TableName(autoResultMap = true) @@ -9,7 +10,7 @@ @ToString @NoArgsConstructor @AllArgsConstructor public class BaRolePrivilege { public class BaRolePrivilege implements BaseEntity { public static final long serialVersionUID = 202311062027001L; pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/pojoBa/BaUser.java
@@ -17,11 +17,13 @@ * 只适合设置了TypeHandler、jdbcTyped的情况。autoResultMap 自动映射, * 通常配合 @TableField() 一起使用,确定映射规范性。 * 2023-10-24经实验: * 简单的@TableField("name")不用加上,即使存类属性是驼峰,数据库字段是下 * 简单的@TableField("name")不用加上,即使类属性名是驼峰,数据库字段是下 * 划线情况,也不用加@TableField("name")。 */ //2023-10-24下面TableName不用配置表名称(value="BaUser"或“ba_user”) @TableName(autoResultMap = true) //只要通过驼峰命名法则类名与表名对应起来就可以了,如果不能对应起来,需要指定表名称 //例如@TableName(value="TestUser" autoResultMap = true) @TableName(value="ba_user", autoResultMap = true) @Data @Builder @ToString @@ -31,7 +33,7 @@ public static final long serialVersionUID = 202310100926001L; /* /* 如果不明确 type类型,MP将自动为其赋值(雪花ID) IdType: AUTO(0), //自增 NONE(1), //未设置主键 @@ -61,11 +63,13 @@ /** * 供水机构标签 */ @TableField(value = "orgTag") public String orgTag; /** * 是否超级管理员 1:是,0:否 */ @TableField(value = "supperAdmin") public Byte supperAdmin; /** @@ -81,6 +85,7 @@ /** * 用户所拥有的权限 */ @TableField(exist=false) @TableField(exist = false) public List<Integer> privileges; //public transient List<Integer> privileges;//此种方式变量不存库, 也不参与序列化了 } pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/pojoBa/BaUserRole.java
@@ -1,6 +1,7 @@ package com.dy.pipIrrGlobal.pojoBa; import com.baomidou.mybatisplus.annotation.TableName; import com.dy.common.po.BaseEntity; import lombok.*; @TableName(autoResultMap = true) @@ -9,7 +10,7 @@ @ToString @NoArgsConstructor @AllArgsConstructor public class BaUserRole { public class BaUserRole implements BaseEntity { public static final long serialVersionUID = 202311061942001L; pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/pojoDemo/DemoMp.java
New file @@ -0,0 +1,32 @@ package com.dy.pipIrrGlobal.pojoDemo; import com.alibaba.fastjson2.annotation.JSONField; import com.alibaba.fastjson2.writer.ObjectWriterImplToString; import com.baomidou.mybatisplus.annotation.IdType; import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; import com.dy.common.po.BaseEntity; import lombok.*; import java.time.LocalDateTime; @TableName(value="demo_mp", autoResultMap = true) @Data @Builder @ToString @NoArgsConstructor @AllArgsConstructor public class DemoMp implements BaseEntity { public static final long serialVersionUID = 202311071534001L; @JSONField(serializeUsing= ObjectWriterImplToString.class) @TableId(type = IdType.INPUT) public Long id ; public String name ; public Integer age ; public LocalDateTime dt ; } pipIrr-platform/pipIrr-web/pipIrr-web-demo/logs/pipIrrDemo.log
pipIrr-platform/pipIrr-web/pipIrr-web-demo/src/main/java/com/dy/pipIrrDemo/mp/DemoMpSv.java
New file @@ -0,0 +1,33 @@ package com.dy.pipIrrDemo.mp; import com.dy.pipIrrGlobal.daoDemo.DemoMpMapper; import com.dy.pipIrrGlobal.pojoDemo.DemoMp; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import java.util.List; @Service public class DemoMpSv { @Autowired private DemoMpMapper demoMpMapper ; public DemoMp selectById(Long id){ return this.demoMpMapper.selectById(id); } public List<DemoMp> selectBatchIds(List<Long> ids){ return this.demoMpMapper.selectBatchIds(ids); } public int insert(DemoMp po){ return this.demoMpMapper.insert(po) ; } public int updateById(DemoMp po){ return this.demoMpMapper.updateById(po) ; } } pipIrr-platform/pipIrr-web/pipIrr-web-demo/src/test/java/com/dy/pipIrrDemo/mp/MpTest1.java
New file @@ -0,0 +1,52 @@ package com.dy.pipIrrDemo.mp; import com.dy.common.multiDataSource.DataSourceContext; import com.dy.pipIrrGlobal.pojoDemo.DemoMp; import org.junit.Before; 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.SpringRunner; import java.time.LocalDateTime; @RunWith(SpringRunner.class) @SpringBootTest public class MpTest1 { @Autowired private DemoMpSv demoMpSv ; @Before public void setup(){ DataSourceContext.set("ym"); } @Test public void insert(){ DemoMp po = new DemoMp() ; po.name = "张三" ; po.age = 20 ; po.dt = LocalDateTime.now() ; int count = this.demoMpSv.insert(po) ; System.out.println("插入了" + count + "记录"); } @Test public void updateById(){ //把上面插入的记录进行更新 DemoMp po = new DemoMp() ; po.id = 2023110716001900000L ; po.name = "李四" ; po.age = 22 ; //po.dt = LocalDateTime.now() ; int count = this.demoMpSv.updateById(po); System.out.println("更新了" + count + "记录"); } @Test public void selectById(){ DemoMp po = this.demoMpSv.selectById(1L) ; } } pipIrr-platform/pipIrr-web/pipIrr-web-demo/src/test/java/com/dy/pipIrrDemo/mp/MpTest2.java
New file @@ -0,0 +1,182 @@ package com.dy.pipIrrDemo.mp; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.dy.common.multiDataSource.DataSourceContext; import com.dy.pipIrrGlobal.daoDemo.DemoMpMapper; import com.dy.pipIrrGlobal.pojoDemo.DemoMp; import org.junit.Before; 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.SpringRunner; import java.util.Arrays; import java.util.HashMap; import java.util.List; import java.util.Map; @RunWith(SpringRunner.class) @SpringBootTest public class MpTest2 { @Autowired private DemoMpMapper demoMpMapper ; @Before public void setup(){ DataSourceContext.set("ym"); } @Test public void selectById(){ DemoMp po = this.demoMpMapper.selectById(2023110716001900000L) ; System.out.println(po); } @Test public void selectBatchIds(){ List<Long> listIds = Arrays.asList(1L, 2L, 2023110716001900000L) ; List<DemoMp> poList = this.demoMpMapper.selectBatchIds(listIds) ; System.out.println(poList); } @Test public void selectByMap(){ Map<String, Object > paramMap = new HashMap<>() ; paramMap.put("name", "李四"); paramMap.put("age", "22") ; List<DemoMp> poList = this.demoMpMapper.selectByMap(paramMap) ; System.out.println(poList); } @Test public void selectByWrapperLt(){ QueryWrapper<DemoMp> queryWrapper = new QueryWrapper<>(); //QueryWrapper<DemoMp> queryWrapper = Wrappers.<DemoMp>query() ; queryWrapper.like("name", "四").lt("age", 40) ; List<DemoMp> poList = this.demoMpMapper.selectList(queryWrapper) ; poList.forEach(System.out::println); } @Test public void selectByWrapperBt(){ QueryWrapper<DemoMp> queryWrapper = new QueryWrapper<>(); //QueryWrapper<DemoMp> queryWrapper = Wrappers.<DemoMp>query() ; queryWrapper.like("name", "四") .between("age", 20, 40) .isNotNull("dt"); List<DemoMp> poList = this.demoMpMapper.selectList(queryWrapper) ; poList.forEach(System.out::println); } @Test public void selectByWrapperOr(){ QueryWrapper<DemoMp> queryWrapper = new QueryWrapper<>(); //QueryWrapper<DemoMp> queryWrapper = Wrappers.<DemoMp>query() ; queryWrapper.like("name", "四") .or() .between("age", 20, 40) .isNotNull("dt") .orderByAsc("id") .orderByAsc("age"); List<DemoMp> poList = this.demoMpMapper.selectList(queryWrapper) ; poList.forEach(System.out::println); } @Test public void selectByWrapperOr1(){ QueryWrapper<DemoMp> queryWrapper = new QueryWrapper<>(); //QueryWrapper<DemoMp> queryWrapper = Wrappers.<DemoMp>query() ; queryWrapper.likeLeft("name", "四") .and(wq->wq.between("age", 20, 40).or().isNotNull("dt")) .orderByAsc("id") .orderByAsc("age"); List<DemoMp> poList = this.demoMpMapper.selectList(queryWrapper) ; poList.forEach(System.out::println); } @Test public void selectByWrapperOr2(){ QueryWrapper<DemoMp> queryWrapper = new QueryWrapper<>(); //QueryWrapper<DemoMp> queryWrapper = Wrappers.<DemoMp>query() ; queryWrapper.likeLeft("name", "四") .and(wq->wq.between("age", 20, 40).isNotNull("dt")) .orderByAsc("id") .orderByAsc("age"); List<DemoMp> poList = this.demoMpMapper.selectList(queryWrapper) ; poList.forEach(System.out::println); } @Test public void selectByWrapperOr3(){ QueryWrapper<DemoMp> queryWrapper = new QueryWrapper<>(); //QueryWrapper<DemoMp> queryWrapper = Wrappers.<DemoMp>query() ; queryWrapper.likeLeft("name", "四") .or(wq->wq.lt("age", 100).gt("age", 10).isNotNull("dt")) .orderByAsc("id") .orderByAsc("age"); List<DemoMp> poList = this.demoMpMapper.selectList(queryWrapper) ; poList.forEach(System.out::println); } @Test public void selectByWrapperOr4(){ QueryWrapper<DemoMp> queryWrapper = new QueryWrapper<>(); //QueryWrapper<DemoMp> queryWrapper = Wrappers.<DemoMp>query() ; queryWrapper.nested(wq->wq.lt("age", 50).or().isNotNull("dt")) .likeLeft("name", "四") .orderByAsc("id") .orderByAsc("age"); List<DemoMp> poList = this.demoMpMapper.selectList(queryWrapper) ; poList.forEach(System.out::println); } @Test public void selectByWrapperAnd(){ QueryWrapper<DemoMp> queryWrapper = new QueryWrapper<>(); //QueryWrapper<DemoMp> queryWrapper = Wrappers.<DemoMp>query() ; queryWrapper.likeLeft("name", "四") .and(wq->wq.between("age", 20, 40)) .isNotNull("dt") .orderByAsc("id") .orderByAsc("age"); List<DemoMp> poList = this.demoMpMapper.selectList(queryWrapper) ; poList.forEach(System.out::println); } @Test public void selectByWrapperIn(){ QueryWrapper<DemoMp> queryWrapper = new QueryWrapper<>(); //QueryWrapper<DemoMp> queryWrapper = Wrappers.<DemoMp>query() ; queryWrapper.in("age", Arrays.asList(38, 45)) .orderByAsc("id") .orderByAsc("age"); List<DemoMp> poList = this.demoMpMapper.selectList(queryWrapper) ; poList.forEach(System.out::println); } @Test public void selectByWrapperLimit(){ QueryWrapper<DemoMp> queryWrapper = new QueryWrapper<>(); //QueryWrapper<DemoMp> queryWrapper = Wrappers.<DemoMp>query() ; queryWrapper.in("age", Arrays.asList(38, 45)).last("limit 1") .orderByAsc("id") .orderByAsc("age"); List<DemoMp> poList = this.demoMpMapper.selectList(queryWrapper) ; poList.forEach(System.out::println); } @Test public void selectByWrapperLimitSupper(){ QueryWrapper<DemoMp> queryWrapper = new QueryWrapper<>(); //QueryWrapper<DemoMp> queryWrapper = Wrappers.<DemoMp>query() ; queryWrapper.select("id", "name").in("age", Arrays.asList(38, 45)).last("limit 1") .orderByAsc("id") .orderByAsc("age"); List<DemoMp> poList = this.demoMpMapper.selectList(queryWrapper) ; poList.forEach(System.out::println); } } pipIrr-platform/pipIrr-web/pipIrr-web-sso/logs/pipIrrSso.log
New file @@ -0,0 +1,148 @@ 2023-11-07 14:37:28,586:ERROR main (com.dy.common.mybatis.PrintExceptionSqlInterceptor.intercept:69) - SQL ErrorException: java.lang.reflect.InvocationTargetException: null at jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:119) ~[?:?] at java.lang.reflect.Method.invoke(Method.java:578) ~[?:?] at org.apache.ibatis.plugin.Invocation.proceed(Invocation.java:49) ~[mybatis-3.5.13.jar:3.5.13] at com.dy.common.mybatis.PrintExceptionSqlInterceptor.intercept(PrintExceptionSqlInterceptor.java:66) [classes/:?] at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59) [mybatis-3.5.13.jar:3.5.13] at jdk.proxy2.$Proxy207.query(Unknown Source) [?:?] at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:154) [mybatis-3.5.13.jar:3.5.13] at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:147) [mybatis-3.5.13.jar:3.5.13] at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:142) [mybatis-3.5.13.jar:3.5.13] at org.apache.ibatis.session.defaults.DefaultSqlSession.selectOne(DefaultSqlSession.java:75) [mybatis-3.5.13.jar:3.5.13] at jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:104) ~[?:?] at java.lang.reflect.Method.invoke(Method.java:578) ~[?:?] at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:425) [mybatis-spring-2.1.1.jar:2.1.1] at jdk.proxy2.$Proxy133.selectOne(Unknown Source) [?:?] at org.mybatis.spring.SqlSessionTemplate.selectOne(SqlSessionTemplate.java:160) [mybatis-spring-2.1.1.jar:2.1.1] at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.execute(MybatisMapperMethod.java:89) [mybatis-plus-core-3.5.3.2.jar:3.5.3.2] at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$PlainMethodInvoker.invoke(MybatisMapperProxy.java:148) [mybatis-plus-core-3.5.3.2.jar:3.5.3.2] at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89) [mybatis-plus-core-3.5.3.2.jar:3.5.3.2] at jdk.proxy2.$Proxy135.selectById(Unknown Source) [?:?] at com.dy.sso.MapperTest.selectById(MapperTest.java:21) [test-classes/:?] at jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:104) ~[?:?] at java.lang.reflect.Method.invoke(Method.java:578) ~[?:?] at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:59) [junit-4.13.2.jar:4.13.2] at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12) [junit-4.13.2.jar:4.13.2] at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:56) [junit-4.13.2.jar:4.13.2] at org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:17) [junit-4.13.2.jar:4.13.2] at org.springframework.test.context.junit4.statements.RunBeforeTestExecutionCallbacks.evaluate(RunBeforeTestExecutionCallbacks.java:76) [spring-test-6.0.11.jar:6.0.11] at org.springframework.test.context.junit4.statements.RunAfterTestExecutionCallbacks.evaluate(RunAfterTestExecutionCallbacks.java:84) [spring-test-6.0.11.jar:6.0.11] at org.springframework.test.context.junit4.statements.RunBeforeTestMethodCallbacks.evaluate(RunBeforeTestMethodCallbacks.java:75) [spring-test-6.0.11.jar:6.0.11] at org.springframework.test.context.junit4.statements.RunAfterTestMethodCallbacks.evaluate(RunAfterTestMethodCallbacks.java:86) [spring-test-6.0.11.jar:6.0.11] at org.springframework.test.context.junit4.statements.SpringRepeat.evaluate(SpringRepeat.java:84) [spring-test-6.0.11.jar:6.0.11] at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:366) [junit-4.13.2.jar:4.13.2] at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.runChild(SpringJUnit4ClassRunner.java:252) [spring-test-6.0.11.jar:6.0.11] at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.runChild(SpringJUnit4ClassRunner.java:97) [spring-test-6.0.11.jar:6.0.11] at org.junit.runners.ParentRunner$4.run(ParentRunner.java:331) [junit-4.13.2.jar:4.13.2] at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:79) [junit-4.13.2.jar:4.13.2] at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:329) [junit-4.13.2.jar:4.13.2] at org.junit.runners.ParentRunner.access$100(ParentRunner.java:66) [junit-4.13.2.jar:4.13.2] at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:293) [junit-4.13.2.jar:4.13.2] at org.springframework.test.context.junit4.statements.RunBeforeTestClassCallbacks.evaluate(RunBeforeTestClassCallbacks.java:61) [spring-test-6.0.11.jar:6.0.11] at org.springframework.test.context.junit4.statements.RunAfterTestClassCallbacks.evaluate(RunAfterTestClassCallbacks.java:70) [spring-test-6.0.11.jar:6.0.11] at org.junit.runners.ParentRunner$3.evaluate(ParentRunner.java:306) [junit-4.13.2.jar:4.13.2] at org.junit.runners.ParentRunner.run(ParentRunner.java:413) [junit-4.13.2.jar:4.13.2] at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.run(SpringJUnit4ClassRunner.java:191) [spring-test-6.0.11.jar:6.0.11] at org.junit.runner.JUnitCore.run(JUnitCore.java:137) [junit-4.13.2.jar:4.13.2] at com.intellij.junit4.JUnit4IdeaTestRunner.startRunnerWithArgs(JUnit4IdeaTestRunner.java:69) [junit-rt.jar:?] at com.intellij.rt.junit.IdeaTestRunner$Repeater.startRunnerWithArgs(IdeaTestRunner.java:33) [junit-rt.jar:?] at com.intellij.rt.junit.JUnitStarter.prepareStreamsAndStart(JUnitStarter.java:221) [junit-rt.jar:?] at com.intellij.rt.junit.JUnitStarter.main(JUnitStarter.java:54) [junit-rt.jar:?] Caused by: org.springframework.jdbc.CannotGetJdbcConnectionException: 未得到数据源名称 at com.dy.common.multiDataSource.MultiDataSourceTransaction.getConnection(MultiDataSourceTransaction.java:34) ~[classes/:?] at org.apache.ibatis.executor.BaseExecutor.getConnection(BaseExecutor.java:345) ~[mybatis-3.5.13.jar:3.5.13] at org.apache.ibatis.executor.SimpleExecutor.prepareStatement(SimpleExecutor.java:89) ~[mybatis-3.5.13.jar:3.5.13] at org.apache.ibatis.executor.SimpleExecutor.doQuery(SimpleExecutor.java:64) ~[mybatis-3.5.13.jar:3.5.13] at org.apache.ibatis.executor.BaseExecutor.queryFromDatabase(BaseExecutor.java:333) ~[mybatis-3.5.13.jar:3.5.13] at org.apache.ibatis.executor.BaseExecutor.query(BaseExecutor.java:158) ~[mybatis-3.5.13.jar:3.5.13] at org.apache.ibatis.executor.CachingExecutor.query(CachingExecutor.java:110) ~[mybatis-3.5.13.jar:3.5.13] at org.apache.ibatis.executor.CachingExecutor.query(CachingExecutor.java:90) ~[mybatis-3.5.13.jar:3.5.13] at jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:104) ~[?:?] at java.lang.reflect.Method.invoke(Method.java:578) ~[?:?] at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:61) ~[mybatis-3.5.13.jar:3.5.13] at jdk.proxy2.$Proxy207.query(Unknown Source) ~[?:?] at jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:104) ~[?:?] ... 48 more 2023-11-07 14:39:05,179:ERROR main (com.dy.common.mybatis.PrintExceptionSqlInterceptor.intercept:69) - SQL ErrorException: java.lang.reflect.InvocationTargetException: null at jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:119) ~[?:?] at java.lang.reflect.Method.invoke(Method.java:578) ~[?:?] at org.apache.ibatis.plugin.Invocation.proceed(Invocation.java:49) ~[mybatis-3.5.13.jar:3.5.13] at com.dy.common.mybatis.PrintExceptionSqlInterceptor.intercept(PrintExceptionSqlInterceptor.java:66) [classes/:?] at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59) [mybatis-3.5.13.jar:3.5.13] at jdk.proxy2.$Proxy207.query(Unknown Source) [?:?] at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:154) [mybatis-3.5.13.jar:3.5.13] at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:147) [mybatis-3.5.13.jar:3.5.13] at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:142) [mybatis-3.5.13.jar:3.5.13] at org.apache.ibatis.session.defaults.DefaultSqlSession.selectOne(DefaultSqlSession.java:75) [mybatis-3.5.13.jar:3.5.13] at jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:104) ~[?:?] at java.lang.reflect.Method.invoke(Method.java:578) ~[?:?] at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:425) [mybatis-spring-2.1.1.jar:2.1.1] at jdk.proxy2.$Proxy133.selectOne(Unknown Source) [?:?] at org.mybatis.spring.SqlSessionTemplate.selectOne(SqlSessionTemplate.java:160) [mybatis-spring-2.1.1.jar:2.1.1] at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.execute(MybatisMapperMethod.java:89) [mybatis-plus-core-3.5.3.2.jar:3.5.3.2] at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$PlainMethodInvoker.invoke(MybatisMapperProxy.java:148) [mybatis-plus-core-3.5.3.2.jar:3.5.3.2] at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89) [mybatis-plus-core-3.5.3.2.jar:3.5.3.2] at jdk.proxy2.$Proxy134.selectById(Unknown Source) [?:?] at com.dy.sso.MapperTest.selectById(MapperTest.java:24) [test-classes/:?] at jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:104) ~[?:?] at java.lang.reflect.Method.invoke(Method.java:578) ~[?:?] at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:59) [junit-4.13.2.jar:4.13.2] at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12) [junit-4.13.2.jar:4.13.2] at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:56) [junit-4.13.2.jar:4.13.2] at org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:17) [junit-4.13.2.jar:4.13.2] at org.springframework.test.context.junit4.statements.RunBeforeTestExecutionCallbacks.evaluate(RunBeforeTestExecutionCallbacks.java:76) [spring-test-6.0.11.jar:6.0.11] at org.springframework.test.context.junit4.statements.RunAfterTestExecutionCallbacks.evaluate(RunAfterTestExecutionCallbacks.java:84) [spring-test-6.0.11.jar:6.0.11] at org.springframework.test.context.junit4.statements.RunBeforeTestMethodCallbacks.evaluate(RunBeforeTestMethodCallbacks.java:75) [spring-test-6.0.11.jar:6.0.11] at org.springframework.test.context.junit4.statements.RunAfterTestMethodCallbacks.evaluate(RunAfterTestMethodCallbacks.java:86) [spring-test-6.0.11.jar:6.0.11] at org.springframework.test.context.junit4.statements.SpringRepeat.evaluate(SpringRepeat.java:84) [spring-test-6.0.11.jar:6.0.11] at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:366) [junit-4.13.2.jar:4.13.2] at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.runChild(SpringJUnit4ClassRunner.java:252) [spring-test-6.0.11.jar:6.0.11] at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.runChild(SpringJUnit4ClassRunner.java:97) [spring-test-6.0.11.jar:6.0.11] at org.junit.runners.ParentRunner$4.run(ParentRunner.java:331) [junit-4.13.2.jar:4.13.2] at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:79) [junit-4.13.2.jar:4.13.2] at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:329) [junit-4.13.2.jar:4.13.2] at org.junit.runners.ParentRunner.access$100(ParentRunner.java:66) [junit-4.13.2.jar:4.13.2] at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:293) [junit-4.13.2.jar:4.13.2] at org.springframework.test.context.junit4.statements.RunBeforeTestClassCallbacks.evaluate(RunBeforeTestClassCallbacks.java:61) [spring-test-6.0.11.jar:6.0.11] at org.springframework.test.context.junit4.statements.RunAfterTestClassCallbacks.evaluate(RunAfterTestClassCallbacks.java:70) [spring-test-6.0.11.jar:6.0.11] at org.junit.runners.ParentRunner$3.evaluate(ParentRunner.java:306) [junit-4.13.2.jar:4.13.2] at org.junit.runners.ParentRunner.run(ParentRunner.java:413) [junit-4.13.2.jar:4.13.2] at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.run(SpringJUnit4ClassRunner.java:191) [spring-test-6.0.11.jar:6.0.11] at org.junit.runner.JUnitCore.run(JUnitCore.java:137) [junit-4.13.2.jar:4.13.2] at com.intellij.junit4.JUnit4IdeaTestRunner.startRunnerWithArgs(JUnit4IdeaTestRunner.java:69) [junit-rt.jar:?] at com.intellij.rt.junit.IdeaTestRunner$Repeater.startRunnerWithArgs(IdeaTestRunner.java:33) [junit-rt.jar:?] at com.intellij.rt.junit.JUnitStarter.prepareStreamsAndStart(JUnitStarter.java:221) [junit-rt.jar:?] at com.intellij.rt.junit.JUnitStarter.main(JUnitStarter.java:54) [junit-rt.jar:?] Caused by: java.sql.SQLSyntaxErrorException: Unknown column 'org_tag' in 'field list' at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:121) ~[mysql-connector-j-8.0.33.jar:8.0.33] at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122) ~[mysql-connector-j-8.0.33.jar:8.0.33] at com.mysql.cj.jdbc.ClientPreparedStatement.executeInternal(ClientPreparedStatement.java:916) ~[mysql-connector-j-8.0.33.jar:8.0.33] at com.mysql.cj.jdbc.ClientPreparedStatement.execute(ClientPreparedStatement.java:354) ~[mysql-connector-j-8.0.33.jar:8.0.33] at com.alibaba.druid.filter.FilterChainImpl.preparedStatement_execute(FilterChainImpl.java:3446) ~[druid-1.2.20.jar:?] at com.alibaba.druid.filter.FilterAdapter.preparedStatement_execute(FilterAdapter.java:1063) ~[druid-1.2.20.jar:?] at com.alibaba.druid.filter.FilterChainImpl.preparedStatement_execute(FilterChainImpl.java:3444) ~[druid-1.2.20.jar:?] at com.alibaba.druid.wall.WallFilter.preparedStatement_execute(WallFilter.java:639) ~[druid-1.2.20.jar:?] at com.alibaba.druid.filter.FilterChainImpl.preparedStatement_execute(FilterChainImpl.java:3444) ~[druid-1.2.20.jar:?] at com.alibaba.druid.filter.FilterEventAdapter.preparedStatement_execute(FilterEventAdapter.java:434) ~[druid-1.2.20.jar:?] at com.alibaba.druid.filter.FilterChainImpl.preparedStatement_execute(FilterChainImpl.java:3444) ~[druid-1.2.20.jar:?] at com.alibaba.druid.proxy.jdbc.PreparedStatementProxyImpl.execute(PreparedStatementProxyImpl.java:158) ~[druid-1.2.20.jar:?] at com.alibaba.druid.pool.DruidPooledPreparedStatement.execute(DruidPooledPreparedStatement.java:483) ~[druid-1.2.20.jar:?] at jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:104) ~[?:?] at java.lang.reflect.Method.invoke(Method.java:578) ~[?:?] at org.apache.ibatis.logging.jdbc.PreparedStatementLogger.invoke(PreparedStatementLogger.java:58) ~[mybatis-3.5.13.jar:3.5.13] at jdk.proxy3.$Proxy209.execute(Unknown Source) ~[?:?] at org.apache.ibatis.executor.statement.PreparedStatementHandler.query(PreparedStatementHandler.java:65) ~[mybatis-3.5.13.jar:3.5.13] at org.apache.ibatis.executor.statement.RoutingStatementHandler.query(RoutingStatementHandler.java:80) ~[mybatis-3.5.13.jar:3.5.13] at org.apache.ibatis.executor.SimpleExecutor.doQuery(SimpleExecutor.java:65) ~[mybatis-3.5.13.jar:3.5.13] at org.apache.ibatis.executor.BaseExecutor.queryFromDatabase(BaseExecutor.java:333) ~[mybatis-3.5.13.jar:3.5.13] at org.apache.ibatis.executor.BaseExecutor.query(BaseExecutor.java:158) ~[mybatis-3.5.13.jar:3.5.13] at org.apache.ibatis.executor.CachingExecutor.query(CachingExecutor.java:110) ~[mybatis-3.5.13.jar:3.5.13] at org.apache.ibatis.executor.CachingExecutor.query(CachingExecutor.java:90) ~[mybatis-3.5.13.jar:3.5.13] at jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:104) ~[?:?] at java.lang.reflect.Method.invoke(Method.java:578) ~[?:?] at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:61) ~[mybatis-3.5.13.jar:3.5.13] at jdk.proxy2.$Proxy207.query(Unknown Source) ~[?:?] at jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:104) ~[?:?] ... 48 more pipIrr-platform/pipIrr-web/pipIrr-web-sso/src/main/java/com/dy/sso/busi/SsoCtrl.java
@@ -86,7 +86,7 @@ try { //Boolean flag = cacheManager.getCacheNames().isEmpty() ; uuid = UUID.randomUUID().toString(); userPo = this.sv.login(uuid, vo.phone, vo.password); userPo = this.sv.loginWithMapperXml(uuid, vo.phone, vo.password); } catch (Exception e) { log.error("用户登录异常", e); return BaseResponseUtils.buildException(e.getMessage()) ; @@ -131,7 +131,7 @@ try { //Boolean flag = cacheManager.getCacheNames().isEmpty() ; uuid = UUID.randomUUID().toString(); userPo = this.sv.login(uuid, vo.phone, vo.password); userPo = this.sv.loginWithMapperXml(uuid, vo.phone, vo.password); } catch (Exception e) { log.error("用户登录异常", e); return BaseResponseUtils.buildException(e.getMessage()) ; @@ -222,6 +222,11 @@ return vo ; } ///////////////////////////////////////////////////////////////// // // 以下私有方法 // ///////////////////////////////////////////////////////////////// /** * 判断登录用户是否拥有指定的一个权限 * @param privilege 指定的一个权限 pipIrr-platform/pipIrr-web/pipIrr-web-sso/src/main/java/com/dy/sso/busi/SsoSv.java
@@ -1,5 +1,6 @@ package com.dy.sso.busi; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.dy.pipIrrGlobal.daoBa.BaPrivilegeMapper; import com.dy.pipIrrGlobal.daoBa.BaUserMapper; import com.dy.pipIrrGlobal.pojoBa.BaUser; @@ -27,10 +28,17 @@ this.baPrivilegeMapper = baPrivilegeMapper ; } /** * 需要BaUserMapper.xml * @param uuid 给登录成功的用户赋值其token * @param phone 用户手机号 * @param password 用户密码 * @return 登录成功用户 */ //当未注解@Transactional时,会输出日志:SqlSession [org.apache.ibatis.session.defaults.DefaultSqlSession@46727a0c] was not registered for synchronization because synchronization is not active @Transactional @Cacheable(cacheNames=CacheConstants.cacheNames, key="'" + CacheConstants.loginUserKeyPrefix + "' + #uuid", sync=true) public BaUser login(String uuid, String phone, String password){ public BaUser loginWithMapperXml(String uuid, String phone, String password){ BaUser baUser = this.baUserMapper.login(phone, password) ; if(baUser != null && baUser.id != null){ baUser.privileges = this.baPrivilegeMapper.selectPrivilegeByUserId(baUser.id) ; @@ -38,6 +46,31 @@ return baUser; } /** * 不需要 BaUserMapper.xml * @param uuid 给登录成功的用户赋值其token * @param phone 用户手机号 * @param password 用户密码 * @return 登录成功用户 */ //当未注解@Transactional时,会输出日志:SqlSession [org.apache.ibatis.session.defaults.DefaultSqlSession@46727a0c] was not registered for synchronization because synchronization is not active @Transactional @Cacheable(cacheNames=CacheConstants.cacheNames, key="'" + CacheConstants.loginUserKeyPrefix + "' + #uuid", sync=true) public BaUser loginWithOutMapperXml(String uuid, String phone, String password){ QueryWrapper<BaUser> qw = new QueryWrapper<>(); //QueryWrapper<DemoMp> queryWrapper = Wrappers.<DemoMp>query() ; qw.select("id", "name", "phone", "orgTag", "supperAdmin") .eq("disabled", 0) .eq("deleted", 0) .eq("phone", phone) .eq("password", password); BaUser baUser = this.baUserMapper.selectOne(qw) ; if(baUser != null && baUser.id != null){ baUser.privileges = this.baPrivilegeMapper.selectPrivilegeByUserId(baUser.id) ; } return baUser; } @CacheEvict(cacheNames=CacheConstants.cacheNames, key="'" + CacheConstants.loginUserKeyPrefix + "' + #uuid") public void logout(String uuid){ }