# ssdbj
**Repository Path**: tomdev/ssdbj
## Basic Information
- **Project Name**: ssdbj
- **Description**: ssdb 的java驱动,带有负载均衡
- **Primary Language**: Unknown
- **License**: Not specified
- **Default Branch**: master
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 0
- **Forks**: 19
- **Created**: 2015-08-04
- **Last Updated**: 2020-12-19
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
ssdbj
=====
SSDBJ是一款支持SSDB NoSQL数据库集群的驱动。
功能:
1、ssdb数据库连接池
2、支持多个SSDB数据库的master-slave集群
3、支持集群内部的master和slave的负载均衡,负载均衡暂时支持4中方式(Random round_robin round_robin_weight random_weight)
4、实现了读写分离
5、支持集群内slave获取not_found的情况下从master再次直接获取
6、支持同步未完成时slave读取error的情况下,从master尝试或者重复在slave中尝试。尝试次数可以再配置文件中修改。
具体参考 src/test/resource/ssdbj.xml
ssdbj提供了3中使用方式:
1、直接手动创建连接,可以参考src/test/java/SSDBJTest.java
2、使用单库连接池,可以参考 src/test/java/SSDBPoolTest.java
3、使用集群模式,可以参考src/test/java/SSDBClusterTest.java
集群模式的配置文件可以参考src/test/resource/ssdbj.xml
## Who's using SSDBJ?
 [职通网] (http://www.zhitongjob.com)
##Java 单db连接demo
```java
public class SSDBJTest {
/**
* @param args
* @throws Exception
*/
@SuppressWarnings({ "serial", "rawtypes", "unchecked" })
public static void main(String[] args) throws Exception {
SSDBDriver dd= new SSDBDriver();
Properties info = new Properties();
info.setProperty("user", "test");
info.setProperty("password", "ddd");
info.setProperty("loginTimeout", "300");
info.setProperty("tcpKeepAlive", "true");
info.setProperty("protocolName", "ssdb");
info.setProperty("protocolVersion", "ddd");
info.setProperty("SSDB_HOST", "192.168.0.226");
info.setProperty("SSDB_PORT", "8888");
SSDBConnection conn= dd.connect(info);
ArrayList setparams=new ArrayList(){
{
add("joliny".getBytes());
add("kkk".getBytes());
add("是的发生地发生1231sdfsfg23".getBytes());
}
};
conn.execute("hset",setparams);
ArrayList params=new ArrayList();
params.add("joliny".getBytes());
params.add("kkk".getBytes());
BaseResultSet rs=conn.execute("hget",params );
System.out.println(new String(rs.getResult()));
}
}
```
##Java 单db数据库连接池Demo
```java
public class SSDBPoolTest {
static SSDBDataSource ds=null;
static{
Properties info = new Properties();
info.setProperty("password", "ddd");
info.setProperty("loginTimeout", "300");
info.setProperty("tcpKeepAlive", "true");
info.setProperty("protocolName", "ssdb");
info.setProperty("protocolVersion", "1.0");
ds = new SSDBDataSource("192.168.0.226",8888,null,info);
}
/**
* @param args
* @throws Exception
*/
@SuppressWarnings({ "rawtypes", "unchecked" })
public static void main(String[] args) throws Exception {
SSDBPoolConnection conn=null;
for(int i=0;i<100000;i++){
try{
conn= ds.getConnection();
ArrayList params=new ArrayList();
params.add("joliny".getBytes());
params.add("kkk".getBytes());
BaseResultSet rs= conn.execute("hget",params );
System.out.println(new String(rs.getResult()));
ArrayList mset_params=new ArrayList();
mset_params.add("a".getBytes());
mset_params.add("aaaaa1".getBytes());
mset_params.add("b".getBytes());
mset_params.add("bbbbbb2".getBytes());
conn.executeUpdate("multi_set", mset_params);
ArrayList mget_params=new ArrayList();
mget_params.add("a".getBytes());
mget_params.add("b".getBytes());
BaseResultSet