specified twice因爲mapper配置中取了2次
請在個人網盤裏下載高清完整視頻,但願對您有用
連接: http://pan.baidu.com/s/1bncXtXt 密碼: d51r
錯誤信息:java
org.springframework.beans.factory.parsing.BeanDefinitionParsingException: Configuration problem: Failed to import bean definitions from relative location [spring-mybatis.xml]spring
Offending resource: class path resource [spring.xml]; nested exception is org.springframework.beans.factory.BeanDefinitionStoreException: Unexpected exception parsing XML document from class path resource [spring-mybatis.xml]; nested exception is org.springframework.context.annotation.ConflictingBeanDefinitionException: Annotation-specified bean name 'councilProjectContextService' for bean class [vinux.service.careservice.service.impl.CouncilProjectVoteServiceImpl] conflicts with existing, non-compatible bean definition of same name and class [vinux.service.careservice.service.impl.CouncilProjectContextServiceImpl]sql
錯誤緣由:service注重名apache
處理方法數組
代碼:mybatis
<#if result.resultList?exists>
<#list result.resultList as item>
<#if item.INFO_JSON?exists>
${item.INFO_JSON.customerName}併發
</#if>app
</#list>maven
</#if>優化
錯誤:FreeMarker template error: For "." left-hand operand: Expected a hash, but this evaluated to a string (wrapper: f.t.SimpleScalar)
解決方案:
代碼:
<#assign dateJson=item.INFO_JSON?eval />
${dateJson.customerName}
效果圖:
//jslong轉換日期格式
轉換前格式
轉換後格式
date = new Date(item.createdate).toLocaleString();
獲取 '2015-08-09'前30天的日期
SELECT DATE_SUB('2015-08-09',INTERVAL 30 DAY);
MAVEN下載地址:
http://apache.fayea.com/maven/maven-3/3.2.5/binaries/
MyBatis中
#{} 這種取值是編譯好SQL語句再取值
${} 這種是取值之後再去編譯SQL語句
Bean和Map轉化
import java.lang.reflect.Field;
import java.lang.reflect.Modifier;
import java.util.HashMap;
import java.util.Map;
import java.util.logging.Logger;
/**
* @author ZWL
*
*/
public class MyConverUtil {
private static Logger log = Logger.getLogger("MyConverUtil");
public static Map<String, Object> PO2Map(Object o) throws Exception{
Map<String, Object> map = new HashMap<String, Object>();
Field[] fields = null;
String clzName = o.getClass().getSimpleName();
log.info("類:"+o.getClass().getName());
fields = o.getClass().getDeclaredFields();
log.info("***"+clzName+"轉map開始****");
for (Field field : fields) {
field.setAccessible(true);
String proName = field.getName();
Object proValue = field.get(o);
map.put(proName.toUpperCase(), proValue);
log.info("key:"+proName+"value:"+proValue);
}
log.info("***"+clzName+"轉map結束****");
return map;
}
public static Object map2PO(Map<String,Object> map,Object o) throws Exception{
if (!map.isEmpty()) {
for (String k : map.keySet()) {
Object v = "";
if (!k.isEmpty()) {
v = map.get(k);
}
Field[] fields = null;
fields = o.getClass().getDeclaredFields();
String clzName = o.getClass().getSimpleName();
log.info("類:"+o.getClass().getName());
log.info("***map轉"+clzName+"開始****");
for (Field field : fields) {
int mod = field.getModifiers();
if(Modifier.isStatic(mod) || Modifier.isFinal(mod)){
continue;
}
if (field.getName().toUpperCase().equals(k)) {
field.setAccessible(true);
field.set(o, v);
log.info("key:"+k+"value:"+v);
}
}
log.info("***map轉"+clzName+"結束****");
}
}
return o;
}
}
//sql日期格式查詢
http://linkyou.blog.51cto.com/1332494/751980/
#按照月查詢
SELECT DATE_FORMAT(CDATE,'%Y%m') months,APPLYRATE, DATE_FORMAT(MAX(CDATE),'%Y-%m-%d %H:%i:%S') CDATE FROM CARE_CUSTOMER_LOG c
GROUP BY months
ORDER BY c.`CDATE` DESC;
#按照天查詢
SELECT DATE_FORMAT(CDATE,'%Y%m%d') days,APPLYRATE, DATE_FORMAT(MAX(CDATE),'%Y-%m-%d %H:%i:%S') CDATE FROM CARE_CUSTOMER_LOG c
GROUP BY days
ORDER BY c.`CDATE` DESC;
synchronized :
java關鍵字,用來修飾一個方法或者代碼塊,能保證在同一時刻最多隻有一個線程執行該代碼。
1、當兩個線程併發訪問同一個對象中的synchronized(this)同步代碼塊時,一個時間內只能有一個進程獲得執行。另外一個
必須等待當前線程執行完代碼塊,才能執行改代碼塊。
2、當一個線程訪問object的synchronized(this)同步代碼塊時,另一個線程能夠訪問該object的非synchronized(this)同步代碼塊。
3、當一個線程訪問object的synchronized(this)同步代碼塊時,其餘線程對object全部其它synchronized(this)同步代碼塊的訪問將被阻塞。
4、當一個線程訪問object的synchronized(this)同步代碼塊時,它就獲取了這個object的對象鎖。結果其餘線程對該object對象的全部同步代碼塊訪問都被暫時阻塞。
5、普通代碼要比同步代碼優先執行
代碼:
例1:
public class Thread1 implements Runnable {
public void run() {
synchronized(this) {
for (int i = 0; i < 5; i++) {
System.out.println(Thread.currentThread().getName() + "===" + i);
}
}
}
public static void main(String[] args) {
Thread1 t1 = new Thread1();
Thread ta = new Thread(t1, "A");
Thread tb = new Thread(t1, "B");
ta.start();
tb.start();
}
}
synchronized方法:經過synchronized關鍵字聲明synchronized方法:
例:public synchronized void synTest(int newVal);
主要用來控制類成員變量的訪問,每個類的實例都對應一把鎖,然而調用方法前必須調用該方法所屬類的實例鎖才能訪問,不然線程就會阻塞,方法一旦執行,改方法的類的鎖就會鎖上,知道方法執行完或者返回結果才釋放鎖。
Vector關鍵字:
Vector 可實現自動增加的對象數組。
向量類提供了三種構造方法:
public vector()
public vector(int initialcapacity,int capacityIncrement)
public vector(int initialcapacity)
使用第一種方法系統會自動對向量進行管理,若使用後兩種方法。則系統將根據參數,initialcapacity設定向量對象的容量(即向量對象可存儲數據的大小),當真正存放的數據個數超過容量時。系統會擴充向量對象存儲容量。
參數capacityincrement給定了每次擴充的擴充值。當capacityincrement爲0的時候,則沒次擴充一倍,利用這個功能能夠優化存儲。在Vector類中提供了各類方法方便用戶的使用:
插入功能:
(1)public final synchronized void adddElement(Object obj)
將obj插入向量的尾部。obj能夠是任何類型的對象。對同一個向量對象,亦能夠在其中插入不一樣類的對象。但插入的應是對象而不是數值,因此插入數值時要注意將數組轉換成相應的對象。
例如:要插入整數1時,不要直接調用v1.addElement(1),正確的方法爲:
Vector v1 = new Vector();
Integer integer1 = new Integer(1);
v1.addElement(integer1);
(2)public final synchronized void setElementAt(Object obj,int index)
將index處的對象設置成obj,原來的對象將被覆蓋。
(3)public final synchronized void insertElement(Object obj,int index)
在index指定的位置插入obj,原來對象以及此後的對象依次日後順延。
刪除功能:
(1)public final synchronized void removeElement(Object obj)
從向量中刪除obj,如有多個存在,則從向量頭開始試,刪除找到的第一個與obj相同的向量成員。
(2)public final synchronized void removeAllElement();
刪除向量全部的對象
(3)public fianl synchronized void removeElementAt(int index)
刪除index所指的地方的對象
查詢搜索功能:
(1)public final int indexOf(Object obj)
從向量頭開始搜索obj,返回所遇到的第一個obj對應的下標,若不存在此obj,返回-1.
(2)public final synchronized int indexOf(Object obj,int index)
從index所表示的下標處開始搜索obj.
(3)public final int lastindexOf(Object obj)
從向量尾部開始逆向搜索obj.
(4)public final synchornized int lastIndex(Object obj,int index)
從index所表示的下標處由尾至頭逆向搜索obj.
(5)public final synchornized firstElement()
獲取向量對象中的首個obj
(6)public final synchornized Object lastElement()
獲取向量對象的最後一個obj
org.springframework.beans.factory.parsing.BeanDefinitionParsingException: Configuration problem: Failed to import bean definitions from relative location [spring-mybatis.xml]