2014年7月20日 星期日
Java MongoDB find _id
搜尋條件必須用 ObjectID( ),直接用String 會找不著。
BasicDBObject query = new BasicDBObject();
query.put("_id", new ObjectId(roleID));
2014年7月17日 星期四
Java Mongo Drivers Normal Authentication 一般驗證
OS : win7
mongoDB : 2.6
MongoDB Drivers : 2.12.2
Language:Java
package global.db;
import java.net.UnknownHostException;
import java.util.Arrays;
import javassist.bytecode.stackmap.TypeData.ClassName;
import org.apache.log4j.Logger;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.beans.factory.config.BeanDefinition;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.PropertySource;
import org.springframework.context.annotation.Scope;
import com.mongodb.DB;
import com.mongodb.MongoClient;
import com.mongodb.MongoClientOptions;
import com.mongodb.MongoCredential;
import com.mongodb.ServerAddress;
/**
* @author hua
* 處理 mongoDB 基礎連線建立
*/
@Configuration
@Scope(BeanDefinition.SCOPE_SINGLETON)
public class MongoConnection {
private static Logger logger = Logger.getLogger(ClassName.class);
@Value("${mongo.host}")
private String host;
@Value("${mongo.port}")
private int port;
@Value("${mongo.dbName}")
private String dbName;
@Value("${mongo.user}")
private String user;
@Value("${mongo.pwd}")
private String pwd;
private MongoClient mongoClient;
public MongoConnection() throws UnknownHostException {
super();
}
/**
* 建立連線
*/
private void buildConnection()throws UnknownHostException{
try {
MongoCredential credential = MongoCredential.createMongoCRCredential(this.user, this.dbName, this.pwd.toCharArray());
MongoClientOptions options = getOption();
ServerAddress address = new ServerAddress(this.host, this.port);
mongoClient = new MongoClient(address, Arrays.asList(credential), options);
logger.info("--------------------MongoDB 驗證成功");
} catch (UnknownHostException e) {
logger.error("MongoDB 建立連線失敗!");
if(mongoClient != null){
mongoClient.close();
}
throw e;
}
}
//線程等待數量 * 主機最大連線數 = pool 數量
protected MongoClientOptions getOption(){
return new MongoClientOptions.Builder()
.threadsAllowedToBlockForConnectionMultiplier(300) //線程等待的數量
.connectionsPerHost(10) //主機最大連線數
.connectTimeout(5000)
.build();
}
/** 取得DB操作物件
* @return
* @throws UnknownHostException
*/
public DB getDB() throws UnknownHostException {
synchronized (this) {
if(mongoClient == null){
buildConnection();
}
}
return mongoClient.getDB(this.dbName);
}
}
Note :
mongoDB : 2.6
MongoDB Drivers : 2.12.2
Language:Java
package global.db;
import java.net.UnknownHostException;
import java.util.Arrays;
import javassist.bytecode.stackmap.TypeData.ClassName;
import org.apache.log4j.Logger;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.beans.factory.config.BeanDefinition;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.PropertySource;
import org.springframework.context.annotation.Scope;
import com.mongodb.DB;
import com.mongodb.MongoClient;
import com.mongodb.MongoClientOptions;
import com.mongodb.MongoCredential;
import com.mongodb.ServerAddress;
/**
* @author hua
* 處理 mongoDB 基礎連線建立
*/
@Configuration
@Scope(BeanDefinition.SCOPE_SINGLETON)
public class MongoConnection {
private static Logger logger = Logger.getLogger(ClassName.class);
@Value("${mongo.host}")
private String host;
@Value("${mongo.port}")
private int port;
@Value("${mongo.dbName}")
private String dbName;
@Value("${mongo.user}")
private String user;
@Value("${mongo.pwd}")
private String pwd;
private MongoClient mongoClient;
public MongoConnection() throws UnknownHostException {
super();
}
/**
* 建立連線
*/
private void buildConnection()throws UnknownHostException{
try {
MongoCredential credential = MongoCredential.createMongoCRCredential(this.user, this.dbName, this.pwd.toCharArray());
MongoClientOptions options = getOption();
ServerAddress address = new ServerAddress(this.host, this.port);
mongoClient = new MongoClient(address, Arrays.asList(credential), options);
logger.info("--------------------MongoDB 驗證成功");
} catch (UnknownHostException e) {
logger.error("MongoDB 建立連線失敗!");
if(mongoClient != null){
mongoClient.close();
}
throw e;
}
}
//線程等待數量 * 主機最大連線數 = pool 數量
protected MongoClientOptions getOption(){
return new MongoClientOptions.Builder()
.threadsAllowedToBlockForConnectionMultiplier(300) //線程等待的數量
.connectionsPerHost(10) //主機最大連線數
.connectTimeout(5000)
.build();
}
/** 取得DB操作物件
* @return
* @throws UnknownHostException
*/
public DB getDB() throws UnknownHostException {
synchronized (this) {
if(mongoClient == null){
buildConnection();
}
}
return mongoClient.getDB(this.dbName);
}
}
Note :
- mongo 現在版本,建議使用MongoClientOptions 而不要再使用MongoOptions。
MongoDB MongoClient 與 Mongo
OS : win7
mongoDB : 2.6
MongoDB Drivers : 2.12.2
Language:Java
參考:
mongoDB : 2.6
MongoDB Drivers : 2.12.2
Language:Java
- MongoClient 與 Mongo 是mongoDB Driver 是連線管理物件,具有連線池功用。
- Mongo 目前 Drivers API 有提到,請不要再使用Mongo,而因改用MongoClient來建立連線。
此段引用mongoDB官方API 文件
Mongo(MongoURI uri)
Deprecated.
Replaced byMongoClient.MongoClient(MongoClientURI)
可以看見,文件告知改用MongoClient吧。
- MongoClient 繼承自 Mongo。
參考:
spring bean scope annotation
@Configuration
@Scope(BeanDefinition.SCOPE_SINGLETON)
public class MongoConnection {
.
.
.
}
SCOPE
- BeanDefinition.SCOPE_SINGLETON or "singleton "
- BeanDefinition.SCOPE_PROTOTYPE or "prototype "
- "request"
- "session"
- "globalSession "
Reference
2014年7月16日 星期三
bootstrap 3.2 修改 Media queries breakpoints
1. 打開 /bootstrap/less/variables.less
2. Ctrl + F , 輸入 screen
3 . 修改
2. Ctrl + F , 輸入 screen
3 . 修改
- @screen-xs : 320px;
- @screen-sm : 768px;
- @screen-md : 1024px;
- @screen-lg : 1200px;
4. 存檔
5. 開啟 nodejs 命令介面
6 輸入: grunt dist (做編譯)
bootstrap source 使用 與 編譯
bootstrap 下載 source檔,較方便修改,在更改 less檔後,可經由grunt編譯產生結果。
1.需要先安裝 nodejs
2. 下載 bootstrap source版本
1.需要先安裝 nodejs
2. 下載 bootstrap source版本
- bootstrap有提供壓縮好的版本,與原始碼版。
- 壓縮版可以直接使用,修改是直接改動css.
- source版,可以藉由改動less在使用grunt編譯至dist夾產生壓縮結果。
- 直接改css對沒學過less的人比較直覺,但改動地方多容易不同步。
- source可改less,因為有變數等功能關係,改動較少就能達到效果。
3. 安裝 grunt
- 開啟 nodejs 命令介面。 (open nodejs command line)
- 輸入: npm install -g grunt-cli //將會安裝grunt 於全域環境
4. 安裝 bootstrap 所需模組
- 進入boostrap根目錄下。 \bootstrap\
- 輸入: npm install ,npm 將會依照 package.json設定來安裝模組套件於區域環境。
5. 編譯 less並將css與javascript壓縮
- 在bootstrap根目錄下輸入: grunt dist
Note:
- nodejs 在找尋模組會先從專案夾中的區域模組夾中找尋,找不到才會去全域模組資料夾找模組。
Spring Class中,使用 properties
1. spring config xml
<!-- 提供 properties檔之內容注入 bean 屬性 使用 @(Value ${屬性名稱}) 注入 -->
<context:property-placeholder location="classpath*:META-INF/mongodb.properties"/>
2. mongodb.properties
#db name
mongo.dbName=englishStore
3.
@Value("${mongo.dbName}")
private String dbName;
<!-- 提供 properties檔之內容注入 bean 屬性 使用 @(Value ${屬性名稱}) 注入 -->
<context:property-placeholder location="classpath*:META-INF/mongodb.properties"/>
2. mongodb.properties
#db name
mongo.dbName=englishStore
3.
@Value("${mongo.dbName}")
private String dbName;
訂閱:
文章 (Atom)