原创 ActiveMQ的消息持久化---JDBC的實現方式
對於queue的方式做到持久化很簡單。每個消息只有一個消費者,只要將消息存入數據庫,然後消費者取走信息即可,在這裏我們討論的是topic的持久化方式。 1.在這裏我用的是oracle數據庫,先將oracle的驅動包放入lib文件夾下,再配
原创 使用批處理進行定時關機(適用於win8.1)
最近一個朋友苦於找不到定時關機的功能,告訴我後決定用寫一個批處理文件給他用。可是問題來了,對於win8.1已經不再支持at XX:XX shutdown -s的寫法,但是仍然支持shutdown -s -t XXX的關機方式,於是自己封裝
原创 JAVA反射小案例
最近看框架的時候發現自己的反射的知識不是特別清楚,隨即就抽了點時間在網上把反射的知識補了一下,下面是我自己敲的一個小案例,見笑見笑 package com.yc.test; import java.lang.reflect.Invoca
原创 Hibernate關聯映射之多對多
對於多對多的映射關係也是我們在做項目的時候常見的一種情況本篇博客就來介紹一下hibernate的多對多的關聯映射。 首先我們在這裏的例子是項目與僱員之間的關係,即一個項目可以包含多個員工,一個員工也可以做多個項目,他們之間的關係是項目n-
原创 JAVA多線程之鎖
1.樂觀鎖 樂觀鎖是一種概念,它認爲程序讀多寫少。 那麼在獲取數據的時候不加鎖,而在更新的時候判斷此期間這個值有沒有改變(讀版本號),如果沒變就加鎖更新,變化了就重新讀取。(CAS) 2.悲觀鎖 悲觀鎖也
原创 SpringBoot之Cache註解結合Redis的使用
@Service public class RedisServiceImpl implements RedisService { @Override @Cacheable(value = "user", key = "
原创 JAVA多線程之線程池的使用
public class TestThreadPool { public static void main(String[] args) throws ExecutionException { //所使用阻塞隊
原创 數據庫之事務級別
沒有事務會發生的情況: 1.髒讀 髒讀就是指當事務A對數據進行了修改,而這種修改還沒有提交到數據庫中, 這時,另外一個事務B也訪問這個數據,然後使用了這個數據, 此時事務A進行回滾操作那這條數據就會有問題。
原创 JAVA多線程之CyclicBarrier 、CountDownLatch 、Semaphore的用法
1.CountDownLatch (線程計數器) 利用CountDownLatch 可以實現類似計數器的功能,比如主線程需要等待5個子線程執行完畢之後才能執行,就可以利用CountDownLatch實現,案例如下: public cla
原创 Hibernate關聯映射之一對多,多對一以及雙向一對多
在上篇博客我們講了hibernate對單表的操作,本篇博客就來講講對多表的關聯映射操作。首先我們拿來做例子的表爲班級表1---n學生表,在這次的測試主鍵我用的是序列,創建代碼如下: --班級表 drop table classes; c
原创 SpringMVC的HelloWorld實現
1.首先我們需要新建一個webapp項目,在pom.xml中引入相關依賴: <!-- junit測試包 --> <dependency> <groupId>junit</groupId> <artifactId>jun
原创 Hibernate對單表的CRUD操作
在上篇博客配置完開發環境後,現在是在JUnit中測試CRUD方法的,話不多說,我們來看看代碼如何實現的, 1.增 @Test public void testSave() { Student stu=new Student(1,
原创 Struts2中的Action獲取JSP常用內置對象
常用的jsp內置對象:request,response,session,application 1.解耦合局部變量session: ActionCo
原创 Hibernate的inverse,cascade屬性簡單介紹
本篇博客將在上篇雙向一對多的情況下介紹inverse,cascade屬性的作用 inverse(反轉) inverse:指定關聯關係的控制方向,默認由one方來維護。在關聯關係中,inverse="false"則爲主動方,由主動方負責維護
原创 SpringMVC的JSON實現
1.首先我們需要在pom.xml中引入使用JSON所需要的相關依賴 <!-- json需要的 --> <dependency> <groupId>com.fasterxml.jackson.core</groupId>