Java語法筆記

目錄css

知識點html

不支持java

噁心事mysql

與C#的區別git

組件github

學習資料web

母版頁spring

 

知識點

靜態方法,便可以在類上被調用,也能夠在實例對象上被調用。sql

Java類 先執行靜態構造函數,再執行靜態方法或靜態字段,因此若是在類的靜態構造函數中,執行了該類的靜態方法,則會報錯。由於類尚未初始化,不能調用類方法,這一點和C#不一樣。如下代碼報錯:json

public class obj{

    static{
        Init();
    }
    public static void Init(){}
}

 

使用 import static 包.類.*; 能夠直接使用該類下的方法。

 

類上能夠定義代碼段,在執行完構造函數以後執行。如:

public class test{
    {system.out.println("OK");}
    {system.out.println("22");}
}

 

 

一些考點: http://www.cnblogs.com/lanxuezaipiao/p/3371224.html

getClass().getClassLoader() 根在哪?

在 target/@/Web-inf/classes

可能經過:this.getClass().getClassLoader().getResource("").getPath() 取得。

 

Jdbc

executeQuery 是執行並返回結果

getResultSet  能夠屢次調用,僅一次執行。

ResultSet.getInt(index) 中的 index 是從 1 開始的。

 

JdbcTemplate

用法: http://www.cnblogs.com/Fskjb/archive/2009/11/18/1605622.html

org/springframework/dao/DataAccessException:  http://blog.sina.com.cn/s/blog_55fc875c0100hfdm.html

須要的Jar包:

spring-tx-4.3.0.RELEASE.jar

mysql-connector-java-5.1.39-bin.jar

mysql-connector-java-5.1.30.jar

sqljdbc.jar

 

Kotlin代碼:

        Class.forName("com.mysql.jdbc.Driver");
        var s = DriverManagerDataSource("jdbc:mysql://127.0.0.1:3306/ptr", "root", "1234");
        //s.setDriverClassName("com.mysql.jdbc.Driver")
        //var s = org.springframework.jdbc.datasource.DriverManagerDataSource("jdbc:microsoft:sqlserver://localhost:1433;databasename=MyMvcApp", "sa", "sa@")
        //s.setDriverClassName("com.microsoft.sqlserver.jdbc.SQLServerDriver")
        var d:JdbcTemplate = JdbcTemplate(s)

        var list = d.queryForList("select * from P_User where LoginName=?","SysAdmin");

 

不支持

1. 不支持分部類。

2. 不支持參數默認值

3. 不支持 擴展方法

4.  String.Join 仍是本身寫吧。

5. 

6. 不支持索引器, 把它改成一個方法, get(int index) 吧。List也是這麼幹的。

7. 沒有var

9. 沒有擴展方法

10. 沒有屬性,因此不能這樣寫: new Node(){ Name = "abc"}

11. 不支持運算符重載,Java做者說是不喜歡,實際上是他不會。

12. 關於泛型,Java並不支持真正的泛型,做者喜歡泛型,可是水平過低,不會實現,因此僅僅作了個樣子: http://blog.sina.com.cn/s/blog_44c1e6da0100cus3.html

  ava中泛型實現使用的擦除機制,爲類型參數傳入類型並不致使新類型出現,即傳入了類型參數後在運行時仍然徹底不知道類型參數的具體類型!

13. 定義方法能夠拋出異常,調用方法必須使用 try catch ,或也拋出一樣的異常。 好煩!

14. Java 的枚舉,不能和 int 相互轉換, 好比它不能從 任意一個數字轉爲枚舉,它是一個有限集合。而C#的枚舉之間能夠相互運算,如 | & 等。

14. 

 

噁心事

先記錄一下我問的問題和常常聽到的回答:

問:我想實現C#的  MyObject.As<Int>("22"); Java如何實現?    MyObject.<Integer>("22",Integer.class) 是多一個參數的。

答:你爲何那樣作? 你不該該那樣實現,應該針對每一個類型定義函數。

析:

先弄明白一件事,是Java不能實現!

好像這是不少人的邏輯,不能實現的東西,從另外一方面去說實現方案不對。 一個軟件實現不了的功能,就能夠說,這個功能是不合理的。

要讓豬上樹,先把樹砍到豬能上去的高度。要讓Java去實現功能,先把功能砍到Java能實現的程度。

1. ==

Java 判斷字符串相等不能使用 == , 而必須使用 equals

http://www.cnblogs.com/yjmyzz/archive/2012/12/10/2812079.html

2. 配置文件

配置文件不能編譯,因此大量依賴就很噁心了,配置階段誰也不敢保證它是正確的。萬一解析程序更新了呢。萬一 Spring9.0有了新的配置文件架構呢。

配置文件作爲一箇中間數據載體(能夠看作是數庫),應該提供一個配置工具(微軟有一個web.config配置工具)!或者最起碼,提供一個所有配置的,且最優化的例子。

3. HttpServletResponseWrapper

若是靜態資源進入Filter,有的時候,會是莫名其妙的 isCommited() 爲 true ,爲 true 以後, 就不能再進行輸出了。

解決辦法:經過utl-pattern 阻止靜態資源進入Filter

4. 各類包的不穩定,返回Json 406錯誤

http://blog.csdn.net/a4307515/article/details/42394869

5. 相同的Controller報錯

兩個包名下,同名的類名, Spring運行時出錯: Servlet.init() for servlet mvc-dispatcher threw exception

  解決方法:

  1. 把類名改成: Admin_Home , Open_Home,保證不重名。

  2. 把 @Controller 屬性的構造函數裏設置 Controller名稱。保證裏面的名稱不重名。

6. (String[]) toArray()報錯

  toArray()時,返回的是 Object[],強轉會出錯。Java推薦使用帶參數的 toArray(),但參數時,必須傳入一個有空間大小的數組,toArray方法進行填充並返回(我想罵)

7. 依賴異常

  Java有不少方法,並不會返回 null ,而是拋出異常!

  Class.getField ,若是沒有該列,則報: NoSuchFieldException ,而不是返回null

  若是函數拋出異常,須要要函數上顯式進行定義。 我去年買了個表,Java設計者。

  我想:在定義函數時不定義拋出異常,但出現異常的時候還要拋出異常!!!

  只好對異常規範進行修改。

  想拋出異常的時候,運行一個函數 Throw("異常消息");  Throw方法產生一個運行時異常。

 private static class  MyException extends RuntimeException {
        public MyException(String msg) {
            super(msg);
        }
    }

    public static void Throw(String msg){
        System.out.println("自定義運行時異常:"+ msg);
    }

    public static void Throw(Exception e){
        System.out.println(e.getMessage());
        MyException exp  = new  MyException(e.getMessage());
        exp.setStackTrace(e.getStackTrace());
        throw exp;
    }

 

在catch 完異常以後, 調用 MyObject.Throw(e); 以下:

public static void Do()
{
    try {
        delete = (ActionClipBase) this.getClass().newInstance();
    } catch (Exception e) {
        MyObject.Throw(e);
    }
} 

這樣,拋出運行時異常來達到中止代碼執行的目的。

8. static函數中不能使用 return

9. 全部類,必須在某個包下。

源碼文件夾,下面不能有類。

如: java作爲Sources Root,下面只能是文件夾。不能是類。

10. int[]  Integer[]

雖然 int 和 Integer 能夠相互轉換,可是 數組不能相互轉換。

 ArrayUtils.toPrimitive

11. jackson 

readValue(jsonString, clazz)

若是 classz 是 繼承自 HashMap 的,可使用字典,可是,若是classz有public 字段, 則不能被認爲是字典。Fuck!

 

12.  isAssignableFrom

     父類.isAssignableFrom( 子類 )

     和正常人的邏輯不同 。

 

13. Cannot write output after reading input.

HttpURLConnection 的坑不少, 問題不少,不少限制。
報上面的錯誤, 是由於, HttpUrlConnection 要麼寫,要麼讀, 不能先讀再寫。 好比:
if ( conn.contentType.indexOf("json") > -1){
jsonData = ...;
  conn.outputStream.writeJson( jsonData );
}

就會報錯。 由於 conn.contentType 是 讀操做。

13. Mvc對象映射死板

     Javascript 對象和字典是相同的寫法:  var p = {} , 而字典和數組也有相同的寫法. 客戶端使用 Content-Type : urlencoded , 對應寫法:

  1.  對象.屬性=值

  2. 字典[鍵]=值

  3. 數組[索引]=值

客戶端編寫統一處理函數,把 JSON 轉換爲 url查詢參數時, 只能使用一種選擇, 忽略掉字典, 服務器應該自動映射,若是 對象.屬性的寫法, SpringMvc 在使用Map參數接收會出錯. 說明SpringMvc對象映射不夠智能.

 

 

與C#的區別

1. List是一個接口,使用: LinkedList<T>

2. 導入經常使用包: 

import java.util.*;

3. Java8的 lambda表達式,須要使用 final 修飾表達式內的變量。

final Object[] ret = {null};

.lambda(o ->{
    ret[0] = true;
});

//使用 ret[0]

 

 

list.removeIf(x-> x.startsWith( Prefix));

教程:

http://www.importnew.com/14841.html

http://my.oschina.net/benhaile/blog/177148

Lambda基本招式:

  Collection<>

  .stream()

  .map()

  .filter()

  .collection() 

 

4. substring, 第二個參數:C#表示Length, Java表示EndIndex。   轉換: EndIndex = StartIndex + Length 

5. 把 String.Empty 換成 「」

6. Array和List區別很大,函數最好返回List

7. foreach =>   for( int i : list) 

8. 數組 Length =》 .length()   ,儘可能避免使用數組, 多使用 List,List有更多方法。

9. List []  => .get(index)   

10. 代碼自動提示 : Ctrl+ Shift + 空格

11. 值類型與引用類型有很大使用上的區別,值類型都有一個引有類型和它對應。 int => Integer , boolean=>Boolean ,這個設計,我也是醉了。

12. HttpContext.Current.Item[] => request.setAttribute(key,val) ,  request.getAttribute(key)

13. Action =>   Consumer 一個參數 , BiConsumer 二個參數 。

14. Function => Supplier 沒有參數, Function 一個參數 , BiFunction 兩個參數 

  參考:http://www.java3z.com/cwbwebhome/article/article20/200101.html?id=4970

15. Server.MapPath => ServletContext.getRealPath

16. Java 的靜態構造函數寫法非法簡潔。只須要一個 static 便可。

17. C# 之於 ThreadStatic, Java 之於 ThreadLocal  : http://my.oschina.net/doctor2014/blog/396162

18. Switch 枚舉中 case 沒必要寫枚舉名, 這一點比 C# 好。

19. C# Attribute 使用 []修飾, Java使用 @

20.  C#能夠定義兩個類: List<T> : List   ,而Java裏,只需定義  List<T> , 使用時,可使用  : List<T> ,List ,List<?>三種方式

21. C# 的 lock  => Java 的  synchronized , ReentrantLock 。  : http://www.cnblogs.com/dolphin0520/p/3923167.html

  優先使用 ReentrantLock

22.  Java的一切異常是出錯的,好比強制類型轉換,而 .Net 不會出錯,從這一點上來講, .Net 性能會更高。

  if( Obj instanceof  String){

    String strVal = (String) Obj;

    ...

  }

23. C# Web.config 自定義 AppSettings  => Bean 屬性注入。 字段怎麼注入?!

24. C# : Application_Start 須要一個 Global.asax 文件。 而Java則須要 實現  WebApplicationInitializer 的類,不須要配置。能夠有多個:

http://docs.spring.io/spring/docs/4.0.0.RELEASE/javadoc-api/

 

25:

C#是語法更新快,類庫穩定。能夠向上升級。

Java是語法穩定,類庫不穩定。類庫的做者沒必要對以前的版本負責,因此沒必要兼容以前的版本。就致使兩個小版本的Jar包不能替換使用。可能會出現編譯不報錯,可是運行報錯的狀況,也可能實現機制改變,而致使編譯不經過。

26. Java裏處處是接口。你獲得的永遠不是實現。

好比你獲得 Xml的 Node 對象,可是Node對象沒有 getAttribute(name) 方法, 實現DeferredElementImpl 裏有,可是你不能用。由於這個方法不是接口的方法,須要你轉換爲 DeferredElementImpl 才能使用, 可是真保不齊下個版本的實現仍是他。

就像: 經過一個方法,你提到一個楊過的老婆,老婆是個接口,具體實現叫 小龍女, 可是下個版本,你獲得的仍是楊過的老婆,可是叫 李莫愁。

27. Function 作爲函數參數時,即便返回值不一樣,也不能重載。如:

    public SelectClip<T> Select(Function<T,ColumnClip >  colsFunc){
        ColumnClip cols = null;
        if( colsFunc == null){
            cols  = colsFunc.apply(this.LambdaHelperModel);
        }
        return Select(cols);
    }

    public SelectClip<T> Select(Function<T,ColumnClip[]>  colsFunc){
        ColumnClip[] cols = null;
        if( colsFunc == null){
            cols  = colsFunc.apply(this.LambdaHelperModel);
        }
        return Select(cols);
    }

會報錯。 

 

28 . Java 返回Json時,會把 isAdmin=false ,修改成 admin=false ,這個設計太SB了。

29 . Java MongoDB,會把  id 字段,轉換爲 _id 字段, 包含集合中的id ,這個設計也太 SB了。 

30.  基元類型雖然沒有繼承 Serializable , 但就是 Serializable

 

組件

Spring用法:

1. 實現C# 的 using ,使用 import 包名.*;

2. 使用 Response,在action參數中添加: HttpServletResponse ,同理還有: HttpServletRequest 。

  獲取HttpContext.Current 上下文: http://blog.csdn.net/yanjiaye520/article/details/26602679

  須要在

<!-- WEB.XML中配置相關的監聽機制 -->  
<listener>  
  <listener-class>  
      org.springframework.web.context.request.RequestContextListener  
  </listener-class>  
</listener> 

使用:

//在任意的class下經過如下方法獲取到HttpServletRequest  
HttpServletRequest request = ((ServletRequestAttributes)RequestContextHolder.getRequestAttributes()).getRequest();  

 

3. 修改編碼爲 UTF8 , 修改 Tomcat 的編碼爲 UTF8  http://www.it165.net/admin/html/201503/5139.html

4. Project Structure 裏,修改Modules裏的Spring項目的 Language Level爲 8 : Lambda 時,編譯報錯。

5. URL大小寫: http://blog.csdn.net/k_scott/article/details/8254932

6. 返回的 Action: http://www.360doc.com/content/14/0309/19/834950_359081989.shtml

7. 輸出Filter,參考:

  http://blog.csdn.net/wubai250/article/details/8552960

  http://www.cnblogs.com/lhj588/archive/2012/07/06/2579188.html

  url-pattern 設置:

    *.jsp 時不起做用

    / 僅Mvc頁面程序處理!!!

    *包含:.jsp , *.js , *.css 等,太煩了。

 

對指定路由使用Filter

    <!-- HTML特殊字符過濾器-->
    <filter>
        <filter-name>HTMLFiter</filter-name>
        <filter-class>com.cv.mvc.common.helper.HttpContext</filter-class>
    </filter>
    <filter-mapping>
        <filter-name>HTMLFiter</filter-name>
        <url-pattern>/Hr/*</url-pattern>
        <url-pattern>/Person/*</url-pattern>
        <url-pattern>/Open/*</url-pattern>
        <url-pattern>/Sys/*</url-pattern>
        <url-pattern>/Test/*</url-pattern>
    </filter-mapping>

 

  在Filter中,也能夠設置當前的 Request 和 Response

public class HttpContext implements Filter {
    private ServletContext servletContext = null;
    private HttpServletRequest myRequest = null;
    private MyHttpResponseWrapper myResponse = null;

    public static ThreadLocal<HttpServletRequest> Request = new ThreadLocal<HttpServletRequest>();

    public static ThreadLocal<HttpServletResponse> Response = new ThreadLocal<HttpServletResponse>();


    @Override
    public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException {

        myRequest = (HttpServletRequest) request;
        myResponse = new MyHttpResponseWrapper((HttpServletResponse) response);

        Request.set(myRequest);
        Response.set(myResponse);
  }
    public static HttpServletRequest getRequest(){
        if( Request == null || Request.get() == null){
            System.out.printf("Web.xml沒有配置該路由,致使Request爲空,將從RequestContextHolder返回Request對象!");
            return ((ServletRequestAttributes)RequestContextHolder.getRequestAttributes()).getRequest();
        }
        return Request.get();
    }

   public static HttpServletResponse getResponse(){
        return Response.get();
    }

    public static HttpSession getSession(){
        return getRequest().getSession();
    }
}

 

7.1使用:HandlerInterceptorAdapter   http://blog.csdn.net/liuwenbo0920/article/details/7283757

8. 訪問靜態資源,Web的根在哪? 

  根:Project Structure—》Modules -》 Web -》 Web Resource Directories -> 有 《Path Relative To Deployment Root》 一項,該值應該是  「/" , 左邊的 Web Resource Directory 就是根:默認指向 main\webapp

  因爲在 web.xml中,指定了全部的頁面程序程序,因此須要單獨設置靜態資源的處理程序。: http://www.cnblogs.com/rollenholt/archive/2012/12/26/2834209.html

  以下設置:

    <servlet-mapping>
        <servlet-name>default</servlet-name>
        <url-pattern>*.jpg</url-pattern>
    </servlet-mapping>
    <servlet-mapping>
        <servlet-name>default</servlet-name>
        <url-pattern>*.js</url-pattern>
    </servlet-mapping>
    <servlet-mapping>
        <servlet-name>default</servlet-name>
        <url-pattern>*.css</url-pattern>
    </servlet-mapping>

    <servlet-mapping>
        <servlet-name>mvc-dispatcher</servlet-name>
        <url-pattern>/</url-pattern>
    </servlet-mapping>

 

若是設置了 Filter,則靜態資源也會進入到Mvc-Dispatcher。防止靜態資源進入Filter

    <filter>
        <filter-name>HTMLFiter</filter-name>
        <filter-class>BaseMvc.MyResponseFilter</filter-class>
    </filter>
    <filter-mapping>
        <filter-name>HTMLFiter</filter-name>
        <url-pattern>/Admin/*</url-pattern>
        <url-pattern>/Open/*</url-pattern>
        <url-pattern>/Sys/*</url-pattern>
    </filter-mapping>

 

 

 9. HttpServletResponse 有  setStatus 方法,可是沒有 getStatus 方法,有文章說: http://blog.01000.name/http-servlet-response-status/

  解決方案:http://yingzhuo.iteye.com/blog/1844714   +   http://www.iteye.com/problems/41733

  在本身的包裝器裏,重寫 setStatus :

public class MyHttpResponseWrapper extends httpServletResponseWrapper {
    int httpStatus;
    @Override
    public void setStatus(int sc) {
        httpStatus = sc;
        super.setStatus(sc);
    }

    public int getStatus() {
        return httpStatus;
    }
}

 https://github.com/sitemesh/sitemesh3

10. @ResponseBody 表示返回內容不包含視圖,全部內容都在函數中處理了,至關於.Net 裏的 Content() ,或 Json()。

11.   getContextPath、getServletPath、getRequestURI的區別 

http://my.oschina.net/xsh1208/blog/177522

12. 如何實現XA式、非XA式Spring分佈式事務:  http://www.importnew.com/15812.html

 

Json

公認: SmartJson 最快:  https://github.com/netplex/json-smart-v2

  

學習資料

1. Spring Controller:  http://my.oschina.net/hcliu/blog/396887

2. Spring源碼: http://www.cnblogs.com/xing901022/p/4178963.html

3. HttpServletResponseWrapper: http://www.mzone.cc/article/260.html

4. 進階: http://blog.csdn.net/it_man/article/details/7556903

5. Sitemesh3 : http://www.cnblogs.com/luotaoyeah/p/3776879.html

6. 反射 : http://www.cnblogs.com/penghongwei/p/3300084.html

  判斷聲明類型: getModifiers :  http://blog.csdn.net/zhou8622/article/details/44038699

7. BasicDataSource: http://my.oschina.net/DeanCTO/blog/323567

8. Jdbc: 

          http://www.cnblogs.com/wing011203/archive/2013/05/12/3073838.html

          http://www.cnblogs.com/xinsheng/p/3898107.html

          http://www.codingdiary.com/developers/developers/diary/javaapi/java/sql/SampleCode/ResultSetfindColumnExampleCode.html

9. Web中獲取路徑: http://blog.csdn.net/poplong/article/details/9734701

 

自制母版頁

 目錄結構webapp(Tomcat根)

 

webapp(Tomcat根)
    web-inf 
        pages(Spring根)
            web.xml
            Admin...(Mvc_Area)
                Home (Mvc_Controller)
                    Index.jsp
         Layout(母版頁位置)
            Admin.jsp(對應Mvc_Area的母版頁)
            Open.jsp (另外一個Mvc_Area的母版頁)
    Res(資源源文件)
    R(生成的資源文件)

 

子頁面:

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<layout>
<jsp:include page="../../layout/Open.jsp" />
</layout>
<def id="title" >我是首頁</def> <def id="body" /> 內容隨便寫。 都在 body 裏。

母頁:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title><def id=title /></title>
    <script  src="/R/MyJs_Open.js"></script>
    <link href="~/R/MyCss_Open.css" rel="stylesheet">
</head>
<body>
  <def id=body />
</body>
</html>

 

關聯點:

子頁面使用

<layout>
<jsp:include page="../../layout/Open.jsp" />
</layout>

聲明母版頁位置,並把母版頁的內容渲染到當前頁的 layout內。

母版頁和子頁使用 def 標籤的 進行關聯, 子頁的def 內容填充到母頁的 def 元素內,並去除 def 標籤。

寬泛的擴展:

子頁的 def 定義有兩種方式:

推薦方式:

<def id="body">
Body內容區
</def>

或者,自閉合方式

<def id="body" />
下面所有是Body的內容。直到遇到下一個 def 標籤。

 

母版頁定義的 def 元素標籤:

1. 容許有內容,內容將在加載子頁面後,被移除。

2. 標籤若是是自閉合。推薦。

 

母子頁面自動關聯 def中沒有定義 id的def元素。僅關聯第一個匹配的。

給母版傳遞Model

母頁面使用 @變量名 來接收子頁面 request.setAttribute 的 Key值。

public static HttpServletRequest getRequest(){
if( Request == null || Request.get() == null){
System.out.printf("Web.xml沒有配置該路由,致使Request爲空,將從RequestContextHolder返回Request對象!");
return ((ServletRequestAttributes)RequestContextHolder.getRequestAttributes()).getRequest();
}
return Request.get();
}

技巧片段

1. 找包下類名:

   /**
     * 從一個包中找出全部的類,不包括jar包
     * @param packageName
     * @return
     * @throws IOException
     * @throws ClassNotFoundException
     */
    @SuppressWarnings("rawtypes")
    public static List<Class> getClasses(String packageName)
            throws IOException, ClassNotFoundException {
        ClassLoader classLoader = Thread.currentThread()
                .getContextClassLoader();
        String path = packageName.replace(".", "/");
        System.out.println("Path:"+path);
        Enumeration<URL> resources = classLoader.getResources(path);
        List<File> dirs = new ArrayList<File>();
        while (resources.hasMoreElements()) {
            URL urlResource = resources.nextElement();
            dirs.add(new File(urlResource.getFile()));
        }
        List<Class> classes = new ArrayList<Class>();
        for (File directory : dirs) {
            classes.addAll(findClasses(directory, packageName));
        }
        return classes;
    }

    @SuppressWarnings("rawtypes")
    private static List<Class> findClasses(File directory, String packageName) throws ClassNotFoundException {
        List<Class> classes=new ArrayList<Class>();
        if(!directory.isDirectory()){
            return classes;
        }
        File[] files=directory.listFiles();
        for(File file:files){
            if(file.isDirectory()){
                assert !file.getName().contains(".");
                System.out.println(packageName+"."+file.getName());
                classes.addAll(findClasses(file,packageName+"."+file.getName()));
            }else if(file.getName().endsWith(".class")){
                classes.add(Class.forName(packageName+"."+file.getName().substring(0, file.getName().length()-6)));
            }
        }
        return classes;
    }

源自: http://bbs.csdn.net/topics/390716276

 

2. 代碼生成器 rapid generator 調試

rapid-generator.jar:cn.org.rapid_framework.generator.Generator.class

 scanTemplatesAndProcess

日誌的地方: 

GLogger.println("-------------------load template from templateRootDir = \'" + templateRootDir.getAbsolutePath() + "\' outRootDir:" + (new File(this.outRootDir)).getAbsolutePath());

便是開始的地方。

到:executeGenerate 方法的時候,能夠看  filePathModel 參數,便是可使用的變量。

一些列的屬性方法在: cn.org.rapid_framework.generator.provider.db.table.model.Column 中。

 

問題

1. java.lang.ClassNotFoundException: org.bson.conversions.Bson

把mongo-java-driver-3.2.0 Copy 到 \target\MyMvc\WEB-INF\lib 下。 

相關文章
相關標籤/搜索