原创 activemq入門demo

創建maven工程,pom文件如下<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:

原创 關於數據庫併發問題總結

數據庫的併發問題,可以簡化成兩個事務操作數據庫,可以分爲三種情況: 1.兩個事務都在讀數據庫:這種情況並不會產生併發問題; 2.一個事務在讀數據庫,另一個事務在寫數據庫; 3.兩個事務都在寫數據庫 第二種情況 如果兩個事務對數據庫一讀一寫

原创 搭建eureka集羣

    使用spring boot1.5.16版本,spring cloud版本選擇Edgware.SR4,添加eureka server的依賴 <dependency> <groupId>org.springframework.cl

原创 quartz quick start

quartz官網:http://www.quartz-scheduler.org/ 下面是翻譯自官網的quick start,有略微改動 新建一個maven工程,pom文件:<project xmlns="http://maven.apa

原创 解決maven update project 後項目jdk變成1.5的問題

看到也是轉載,但是沒寫地址, 轉載自: http://blog.csdn.net/zhugewendu/article/details/73459466親測可用一、問題描述在Eclipse中新建了一個Maven工程, 然後更改JDK版本爲

原创 maven引入oralce的驅動

連接oracle數據庫需要相應的Driver類,從http://mvnrepository.com/上搜索ojdbc複製dependency,發現總是下不下來,原來這個jar包是收費的。 從官網下載jar包,地址是http://www.o

原创 利用redis實現消息隊列之queue模式

可以利用redis存儲數據類型的list類型實現消息發送與消費的一對一模式,使用lpush向list的左端推送數據(發送消息),使用rpop從右端接收數據(消費消息)。由於rpop需要週期性的從list中獲取數據,可以考慮使用brpop代

原创 四則運算的java實現

很簡單的一個四則運算,比如 4+3.9*(7-2*3.6),你很快就可以給出答案,但是對於計算機來說,他是怎麼運算的,你可能會說,先算括號裏的,再算乘除法,最後算加減法。不錯,你確實挺喜歡這種算法,但是計算機不喜歡,因爲按照你的算法,計算

原创 redis事物介紹和jedis事物操作

redis事物可以使得一組命令在執行期間不會被打斷,因此事物中的這組命令也是一個原子操作。因爲redis本身就是單線程的,所以redis的事物就簡單很多,不像關係型數據庫那樣還有隔離級別的概念,我們甚至可以這樣理解,redis的每條命令都

原创 oracle序列與自增主鍵

oracle並不像mysql那樣提供了自增主鍵,oracle的自增主鍵需要通過序列實現。創建序列的語法爲CREATR SEQUENCE 序列名稱 [INCREMENT BY n] --步長,默認是1[START WITH n] --從幾開

原创 ActiveMQ的持久化訂閱

默認情況下,ActiveMQ的發佈訂閱模式是不做持久化處理的,也就是說,採用發佈訂閱模式,發佈者發佈消息時,如果消費者不在線,該消息就丟失了,即便消費者再上線,也不會收到離線時的消息。我們可以做一些設置,使得消費者上線後,也能收到離線時的

原创 redis持久化教程

redis的數據在運行期間都是保存在內存中,當服務器重啓時,redis服務器會從磁盤中加載之前已經持久化到磁盤中的數據。而且,redis服務器突然宕機,保存在內存中的數據就會丟失,顯得redis的持久化機制更爲重要。redis提供了兩種持

原创 spring boot使用spring緩存demo

pom文件<?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3

原创 sql中的concat和||

mysql中的concat函數可以連接多個字符,oracle使用concat只能連接兩個,oracle使用||連接多個字符,例如,select '1'||'2'||'3' from dual, 而mysql

原创 停止線程

java多線程啓動線程調用start()方法,停止線程使用stop()方法。嗯,停止線程就是這麼簡單,但是現在stop()方法已經被標記過時了。 @Deprecated public final void stop() {