摘要:
在Web开发中,最基本的都是从Controller到Service再到DAO。在开发的过程中,会需要处理各种异常。Service异常往上抛,如果上层没有try-catch,就会出异常。而通过ControllerAdvice 注解,我们可以使得所有异常在controller进行处理,而开发过程中更加专
阅读全文
posted @ 2018-03-20 16:33
車輪の唄
阅读(12)
推荐(0)
摘要:
json数据格式在接口调用中、html页面中比较常用,json格式比较简单,解析也比较方便,所以使用很普遍。在SpringMVC中,也支持对json数据的解析和转换,这篇文章主要总结一下在SpringMVC中如何和前台交互json数据。 两种交互形式 SpringMVC和前台交互主要有两种形式,如下
阅读全文
posted @ 2018-03-20 15:25
車輪の唄
阅读(20)
推荐(0)
摘要:
一:错误写法 String hql = " delete from T_ST_CircuitMeterInfo e where e.circuitID = ?"; Query query = em.createQuery(hql, T_ST_CircuitMeterInfo.class); quer
阅读全文
posted @ 2018-03-19 19:30
車輪の唄
阅读(19)
推荐(0)
摘要:
报错xception in thread "main" com.mysql.jdbc.MysqlDataTruncation: Data truncation: Incorrect date value: '\xAC\xED\x00\x05sr\x00\x0Djava.time.Ser\x95]\x
阅读全文
posted @ 2018-03-19 19:24
車輪の唄
阅读(157)
推荐(0)
摘要:
/** * 只对一的一方执行save, 多的一方级联保存, 要满足两个条件 * 1. Many的一方负责建立关联关系 * 2. ONE的一方负责级联保存,需要将Many的一方的list设置到ONE的一方 */ @Transactional public void save() { OrderItem
阅读全文
posted @ 2018-03-19 18:45
車輪の唄
阅读(16)
推荐(0)
摘要:
1.JoinColumn注解不管在one方还是many方, 都是指定many方的外键, (或者说是主控方的外键)该外键名是db中的原始字段名 对比1和8 该注解一般是放在外键这个字段上 2. 只有OneToOne,OneToMany,ManyToMany上才有mappedBy属性,ManyToOne
阅读全文
posted @ 2018-03-19 12:24
車輪の唄
阅读(50)
推荐(0)
摘要:
@RunWith(SpringRunner.class) @SpringBootTest(webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT) public class JunitTest { @Autowired private P
阅读全文
posted @ 2018-03-16 12:10
車輪の唄
阅读(32)
推荐(0)
摘要:
WildCardQuery: 只要知道“*”表示0到多个字符,而使用“?”表示一个字符就行了:\ IndexSearcher searcher=new IndexSearcher(path); Term t1=new Term("content","?o*"); WildcardQuery quer
阅读全文
posted @ 2018-03-13 19:18
車輪の唄
阅读(55)
推荐(0)
摘要:
1. 多service嵌套, 事务以最外层为主, 只要任一层有异常抛出, 事务就会回滚, 也就是任一层sql都会回滚 2.如果设置某一层service屏蔽掉指定异常,不做回滚 (1) 最外层service 使用注解@Transactional(noRollbackFor=ShopCartLoseEx
阅读全文
posted @ 2018-03-09 19:40
車輪の唄
阅读(20)
推荐(0)
摘要:
List<Long> loseItems = itemRepository.getSale_OutItemIdIn(items); @Query(value= "SELECT id FROM item WHERE id IN ?1 AND sold_out =TRUE", nativeQuery=t
阅读全文
posted @ 2018-03-08 13:39
車輪の唄
阅读(12)
推荐(0)
摘要:
注意:hql,sql语句不会使用一级缓存 一、Hibernate中的对象状态 1.1、瞬时态(临时态) 没有与Hibernate产生关联 与数据库中的记录没有产生关联(有关联就是与数据库中表的id相对应) 获得:一般都只直接创建(new) 瞬时态 转换 持久态 一般操作:save方法、saveOrU
阅读全文
posted @ 2018-03-07 20:09
車輪の唄
阅读(16)
推荐(0)
摘要:
(其中,boolean,yes_no和 true_false对应Java中的java.lang.Boolean)。 映射类型 Java类型 标准SQL字段类型 integer int or java.lang.Integer INTEGER long long or java.lang.Long B
阅读全文
posted @ 2018-03-06 21:46
車輪の唄
阅读(23)
推荐(0)
摘要:
分2种情况情况1:当实体正在被容器管理时,你可以调用实体的set方法对数据进行修改,在容器决定flush时(这个由Container自行判断),更新的数据 才会同步到数据库,而不是在调用了set方法对数据进行修改后马上同步到数据库。如果你希望修改后的数据马上同步到数据库,你可以调用 EntityMa
阅读全文
posted @ 2018-03-05 23:22
車輪の唄
阅读(161)
推荐(0)
摘要:
理解eneityManager的这三个方法的作用和区别,首先需要分清楚PersistenceContext 和 EntityManager. PersistenceContext:是entity的一个实例。 EntityManager:是和PersistenceContext联系在一起的,被用来创建
阅读全文
posted @ 2018-03-05 22:58
車輪の唄
阅读(65)
推荐(0)
摘要:
执行查询时返回代理对象,这是懒加载。spring-data-jpa中对应getOne(); 如果数据库中没有对应的记录,抛异常。 注:这里spring-data-jpa又任性了,getOne()不是对应get(),注意。还有更任性的,如果对象在缓存中的话,那么getOne就会返回实体对象,否则返回代
阅读全文
posted @ 2018-03-05 15:06
車輪の唄
阅读(21)
推荐(0)
摘要:
@Test public void testPersistence(){ EntityManagerFactory factory; EntityManager manager; EntityTransaction transaction; factory = Persistence.createE
阅读全文
posted @ 2018-03-04 22:16
車輪の唄
阅读(91)
推荐(0)
摘要:
方法一:(可能会导致配置文件不能导入) 問題描述:spring boot引入到本地jar到项目(阿里云短信),使用maven package打包,出现以下异常 2017-07-29 00:07:43,822 ERROR SpringApplication:827 - Application star
阅读全文
posted @ 2018-03-04 14:09
車輪の唄
阅读(26)
推荐(0)
摘要:
1、autocommit是mysql中的InnoDb数据表特有的语句。(只有在表引擎=InnoDb时,autocommit才会生效) 原理:在InnoDb表中,所有的语句都是需要commit后,才会在真实数据库中生效。 eg: InnoDb数据库引擎 : update tablenam set id
阅读全文
posted @ 2018-03-04 10:01
車輪の唄
阅读(66)
推荐(0)
摘要:
MVCC的实现,是通过保存数据在某个时间点的快照来实现的. InnoDB的MVCC是通过在每行记录后面保存2个隐藏的列来实现的,一列保存了行的创建时间,一列保存了行的过期时间(或删除时间).但它们都存储的是系统版本号 MVCC最大的作用是: 实现了非阻塞的读操作,写操作也只锁定了必要的行. MYSQ
阅读全文
posted @ 2018-03-04 10:00
車輪の唄
阅读(20)
推荐(0)
摘要:
现象描述 测试中发现,服务A在得到了服务B的注册用户成功response以后,开始调用查询用户信息接口,却发现无法查询出任何结果。检查binlog发现,在查询请求之前,数据库确实已经完成了commit操作,并且可以在sqlyog等客户端工具中查询出正确的结果。 下面是这个流程的时序图: 问题出现在S
阅读全文
posted @ 2018-03-02 18:57
車輪の唄
阅读(36)
推荐(0)
摘要:
1.概述 将通用的逻辑用AOP技术实现可以极大的简化程序的编写,例如验签、鉴权等。Spring的声明式事务也是通过AOP技术实现的。 Spring的AOP技术主要有4个核心概念: Pointcut: 切点,用于定义哪个方法会被拦截,例如 execution(* cn.springcamp.sprin
阅读全文
posted @ 2018-02-26 17:56
車輪の唄
阅读(18)
推荐(0)
摘要:
一对多标注和hql中外关联的区别 1. 一对多标注, 生成一个list结构, 至少执行两条sql语句,可以使用lazy模式加载list 2. hql关联查询,生成多个信息重复的实体类, 只生成一条sql语句执行,甭能lazy模式加载 另见https://blog.csdn.net/asdfsadfa
阅读全文
posted @ 2018-02-26 11:15
車輪の唄
阅读(42)
推荐(0)
摘要:
这个注解表示在父类上面的,用来标识父类。 基于代码复用和模型分离的思想,在项目开发中使用JPA的@MappedSuperclass注解将实体类的多个属性分别封装到不同的非实体类中。例如,数据库表中都需要id来表示编号,id是这些映射实体类的通用的属性,交给jpa统一生成主键id编号,那么使用一个父类
阅读全文
posted @ 2018-02-25 17:08
車輪の唄
阅读(20)
推荐(0)
摘要:
1. @Transactional 只能被应用到public方法上, 对于其它非public的方法,如果标记了@Transactional也不会报错,但方法没有事务功能. 2. 默认遇到运行期例外(throw new RuntimeException("注释");)会回滚,即遇到不受检查(unche
阅读全文
posted @ 2018-02-24 17:28
車輪の唄
阅读(26)
推荐(0)
摘要:
Spring Boot 使用事务非常简单,首先使用注解 @EnableTransactionManagement 开启事务支持后,然后在访问数据库的Service方法上添加注解 @Transactional 便可。 关于事务管理器,不管是JPA还是JDBC等都实现自接口 PlatformTransa
阅读全文
posted @ 2018-02-24 16:16
車輪の唄
阅读(31)
推荐(0)
摘要:
实际上,这不仅是Java特有的问题。 几乎所有的编程语言都可以看到这个问题。 在计算机内存中,使用IEEE 754标准格式存储float和double数据。 实际的存储和转换如何工作,超出了本文讨论的范围。 现在,只要理解在计算和转换过程中可以在这些数字中引入较小的舍入误差。 这就是为什么仅仅依靠等
阅读全文
posted @ 2018-02-17 12:13
車輪の唄
阅读(56)
推荐(0)
摘要:
1. 在搜索结果中,除了对socre排序外,还有按指定字段排序时, 该排序字段应设置为docvalue为true, 尽量减少对score外的字段排序 2. 一次性获取100条数据处理后再分页的策略, 对solr压力很大 3. 是否慎用 *:* ????
阅读全文
posted @ 2018-02-09 14:02
車輪の唄
阅读(17)
推荐(0)
摘要:
命令: cat ./solr.log | grep hits | awk -F 'hits=' '{print $NF}' | awk '{ sum += $1; } END { print "sum = " sum; print "average = " sum/NR }' 运行结果 sum =
阅读全文
posted @ 2018-02-08 10:32
車輪の唄
阅读(15)
推荐(0)
摘要:
默认情况下注册到eureka server的服务是通过心跳来告知自己是UP还是DOWN,并不是通过spring-boot-actuator模块的/health端点来实现的,这样其实不是很合理。 默认的心跳实现方式可以有效的检查eureka客户端进程是否正常运作,但是无法保证客户端应用能够正常提供服务
阅读全文
posted @ 2018-02-08 09:48
車輪の唄
阅读(96)
推荐(0)
摘要:
默认情况下,Spring Boot的日志是输出到控制台的,不写入任何日志文件。 要让Spring Boot输出日志文件,最简单的方式是在application.properties配置文件中配置logging.path键值,如下:(日志文件为spring.log) ? 1 2 <code>loggi
阅读全文
posted @ 2018-02-05 09:15
車輪の唄
阅读(74)
推荐(0)
摘要:
-p参数指定内网ip, 则在外网测试时不能访问 如果指定外网ip, 是否会造成网络延迟??? 在solr集群中, zookeeper是对外的, 前端搜索服务在从zk获取到solr节点后是前端直接访问solr指定的节点获取信息, 所以solr在-p中指定内网ip, 外网测试时访问不到的
阅读全文
posted @ 2018-02-05 08:39
車輪の唄
阅读(13)
推荐(0)
摘要:
solrQuery.set("fl", "*,score"); solrj实际就是个http请求, solrQuery.set即使用key-value拼装的get请求形式
阅读全文
posted @ 2018-02-01 09:19
車輪の唄
阅读(14)
推荐(0)
摘要:
JDK提供了Collections.UnmodifiableList(),Collections.UnmodifiableSet()和Collections.unmodifiableMap()这些包装方法。事实上它们的实现都是包装了原来的集合对象,然后在add,put,remove这样的方法上面抛出
阅读全文
posted @ 2018-01-27 17:05
車輪の唄
阅读(12)
推荐(0)
摘要:
ZooKeeper作为发现服务的问题 ZooKeeper(注:ZooKeeper是著名Hadoop的一个子项目,旨在解决大规模分布式应用场景下,服务协调同步(Coordinate Service)的问题;它可以为同在一个分布式系统中的其他服务提供:统一命名服务、配置管理、分布式锁服务、集群管理等功能
阅读全文
posted @ 2018-01-27 10:53
車輪の唄
阅读(24)
推荐(0)
摘要:
一、相关概念 1.什么是JDBC JDBC(Java Data Base Connectivity,java数据库连接)是一种用于执行SQL语句的Java API,可以为多种关系数据库提供统一访问,它由一组用Java语言编写的类和接口组成。JDBC提供了一种基准,据此可以构建更高级的工具和接口,使数
阅读全文
posted @ 2018-01-25 20:41
車輪の唄
阅读(13)
推荐(0)
摘要:
在web.xml中,我们知道,执行顺序是谁在前边执行谁。 在spring boot中的FilterRegistrationBean注册过滤器的类中有个order属性, private int order = Ordered.LOWEST_PRECEDENCE; 细看源码可以知道,这个order的默认
阅读全文
posted @ 2018-01-25 13:59
車輪の唄
阅读(159)
推荐(0)
摘要:
Filter 过滤器是web开发中很重要的一个组件,下面以一个session登陆的例子介绍下spring boot中如何使用Filter filter功能,它使用户可以改变一个 request和修改一个response. Filter 不是一个servlet,它不能产生一个response,它能够在
阅读全文
posted @ 2018-01-25 13:56
車輪の唄
阅读(19)
推荐(0)
摘要:
在spring mvc中,为了随时都能取到当前请求的request对象,可以通过RequestContextHolder的静态方法getRequestAttributes()获取Request相关的变量,如request, response等 1.RequestContextHolder的使用 Re
阅读全文
posted @ 2018-01-25 10:20
車輪の唄
阅读(26)
推荐(0)
摘要:
1.使用solrj只做add操做, 不需要commit, commit操作由solr配置文件中的softcommit和hardcommit控制即可 2.solrj在对doc执行commit时可以设置延期commit时间
阅读全文
posted @ 2018-01-23 19:45
車輪の唄
阅读(9)
推荐(0)
摘要:
步子迈的有点大, 结果基础不牢 之前ik分词器打包直接使用run as -> maven install 方式,到maven仓的对应位置生成的jar直接应用, 一直没有问题 今天ik分词器新增了pinyin过滤器, 结果打包没有异常, solr的控制台在分词时会报异常class not define
阅读全文
posted @ 2018-01-23 17:39
車輪の唄
阅读(49)
推荐(0)