导航:首页 > 编程语言 > bsonjava

bsonjava

发布时间:2023-06-01 20:08:42

1. java数组排序 几种排序方法详细一点

JAVA中在运用数组进行排序功能时,一般有四种方法:快速排序法、冒泡法、选择排序法、插入排序法。

快速排序法主要是运用了Arrays中的一个方法Arrays.sort()实现。

冒泡法是运用遍历数组进行比较,通过不断的比较将最小值或者最大值一个一个的遍历出来。

选择排序法是将数组的第一个数据作为最大或者最小的值,然后通过比较循环,输出有序的数组。

插入排序是选择一个数组中的数据,通过不断的插入比较最后进行排序。下面我就将他们的实现方法一一详解供大家参考。

<1>利用Arrays带有的排序方法快速排序

publicclassTest2{
publicstaticvoidmain(String[]args){
int[]a={5,4,2,4,9,1};
Arrays.sort(a);//进行排序
for(inti:a){
System.out.print(i);
}
}
}

<2>冒泡排序算法

publicstaticint[]bubbleSort(int[]args){//冒泡排序算法
for(inti=0;i<args.length-1;i++){
for(intj=i+1;j<args.length;j++){
if(args[i]>args[j]){
inttemp=args[i];
args[i]=args[j];
args[j]=temp;
}
}
}
returnargs;
}

<3>选择排序算法

publicstaticint[]selectSort(int[]args){//选择排序算法
for(inti=0;i<args.length-1;i++){
intmin=i;
for(intj=i+1;j<args.length;j++){
if(args[min]>args[j]){
min=j;
}
}
if(min!=i){
inttemp=args[i];
args[i]=args[min];
args[min]=temp;
}
}
returnargs;
}

<4>插入排序算法

publicstaticint[]insertSort(int[]args){//插入排序算法
for(inti=1;i<args.length;i++){
for(intj=i;j>0;j--){
if(args[j]<args[j-1]){
inttemp=args[j-1];
args[j-1]=args[j];
args[j]=temp;
}elsebreak;
}
}
returnargs;
}

2. 有没有大神 java连接mongodb遇到了问题

新版本的戚知皮mongodb的驱动包是依赖bson.jar和mongodb_driver_core.jar的 官网上有提示:
Note: mongodb-driver requires the following dependencies: bson and mongodb-driver-core

去看高差一下 ,然后对应的地方有两个包的下载,猛纳导进你的方法就ok了

下载地址:

MongoDB-driver-3.0.1.jar
mongodb-driver-core-3.0.1.jar
bson-3.0.1.jar
https://oss.sonatype.org/content/repositories/releases/org/mongodb/mongodb-driver/3.0.1/

https://oss.sonatype.org/content/repositories/releases/org/mongodb/mongodb-driver-core/3.0.1/

https://oss.sonatype.org/content/repositories/releases/org/mongodb/bson/3.0.1/

3. bson 是一种什么数据格式java中常用吗和json啥区别啊

java中没有BSON,xml和json比较常用

BSON是由10gen开发的一个数据格式,目前主要用于MongoDB中,是MongoDB的数据存储格式。BSON基于JSON格式,选择JSON进行改造的原因主要是JSON的通用性及JSON的schemaless的特性。
BSON主要会实现以下三点目标:
1.更快的遍历速度
对JSON格式来说,太大的JSON结构会导致数据遍历非常慢。在JSON中,要跳过一个文档进行数据读取,需要对此文档进行扫描才行,需要进行麻烦的数据结构匹配,比如括号的匹配,而BSON对JSON的一大改进就是,它会将JSON的每一个元素的长度存在元素的头部,这样你只需要读取到元素长度就能直接seek到指定的点上进行读取了。
2.操作更简易
对JSON来说,数据存储是无类型的,比如你要修改基本一个值,从9到10,由于从一个字符变成了两个,所以可能其后面的所有内容都需要往后移一位才可以。而使用BSON,你可以指定这个列为数字列,那么无论数字从9长到10还是100,我们都只是在存储数字的那一位上进行修改,不会导致数据总长变大。当然,在MongoDB中,如果数字从整形增大到长整型,还是会导致数据总长变大的。
3.增加了额外的数据类型
JSON是一个很方便的数据交换格式,但是其类型比较有限。BSON在其基础上增加了“byte array”数据类型。这使得二进制的存储不再需要先base64转换后再存成JSON。大大减少了计算开销和数据大小。
当然,在有的时候,BSON相对JSON来说也并没有空间上的优势,比如对{“field”:7},在JSON的存储上7只使用了一个字节,而如果用BSON,那就是至少4个字节(32位)
目前在10gen的努力下,BSON已经有了针对多种语言的编码解码包。并且都是Apache 2 license下开源的。并且还在随着MongoDB进一步地发展。关于BSON,

4. 现在企业开发时,Java所用到的主流框架有哪些

做了十多年的Java开发,和大家介绍一下我最近一两年用的比较多的Java框架(包括软件、中间件)。

Spring:从刚开始工作的时候就在用;是一个J2EE框架,提供了对IOC的良好支持,也提供了对AOP技术非常好的封装;

SpringMVC:也是Spring的一个子项目,实现了MVC设计模式,目标是解耦;

MyBatis、Hibernate:两个都是ORM框架,现在Hibernate用的少了;也有用到SpringDataJPA,这个可以看做是更高级的封装,可以通过方法的命名,实现SQL语句;

可以看到,上面就是SSM框架,现在还是比较流行的。

Maven:新老项目都是基于Maven构建,它是一个项目管理工具,主要功能有:项目构建;Jar包的依赖管理;版本管理;持续集成等等等等;

JUint:单元测试工具;也是老朋友了;测试框架还有不少,比如SpringTest,JMock等等。

Shiro、SpringSecurity:关于安全认证的框架,用于用户身份认证,权限授权、加密、会话管理等;

CxforAxis:老项目WebService用的比较多一些;历史问题,还是要了解一下;

Quartz:定时服务框架,一般都是单机应用;

Elastic-job:分布式定时服务框架,当当出品;

log4j、logback:各种日志工具;现在会有一些日志采集分析的框架,比如ELK;

Ehcache:缓存框架,也都是用于单机项目;

Redis:说道缓存,现在更多的使用Memcached、Redis;当然Redis也不局限于缓存;

SpringBoot:用于搞定其他框架的一个框架,主要是提供了各种启动器、简化了各种配置、方便和其他框架集脊渗成、开发者能够快速上手。

Dubbo:一个微服务框架,阿里出品;

SpringCloud:另外一套微服务框架,这个就多了,例如:Config(配置管理中心)、NetflixEureka(服务注册、服务发现)、Hystrix(断路器,这个官方好像已经不建议使用了,又闷册有新的了)、Feign(声明式服务调用组件)、Ribbon(客户端负载均衡)、Zuul(网关)、Bus(消息总线)等等。

DubboorSpringCloud:这个看公司的技术栈,用到哪个学哪个,都没有用到,建议学SpringCloud。

RestfulAPI、RPC:不同风格的服务;

Swagger:RestfulAPI自动生成工具;

消息队列:常用RabbitMQ和Kafka,一种保存消息的容器,也用于系统间解耦;

MongoDB:BSON(类似JSON)格式的内存数据库;

Zookeeper:一个分布式协调服务;

Nginx:或其他负载均衡软件;

Docker:容器技术。

我将持续分享Java开发、架构设计、蚂野宏程序员职业发展等方面的见解,希望能得到你的关注。

5. java怎么连接mangodb需要哪些步骤

开发环境:

System:Win7

IDE:eclipse

Database:mongoDB

开发依赖库:

JavaEE5、mongo-2.5.3.jar、junit.jar、org.hamcrest.core_1.1.0.v20090501071000.jar

一、准备工作

1、下载Mongodb对java支持jar包

jar包下载地址:

mongoDB对Java的相关支持、技术:http://www.mongodb.org/display/DOCS/Java+Language+Center

驱动源码下载:https://download.github.com/mongodb-mongo-java-driver-r2.6.1-7-g6037357.zip

在线查看源码:https://github.com/mongodb/mongo-java-driver

2、下面建立一个JavaProject工程,导入下载下来的驱动包。即可在Java中使用mongoDB,目录如下:

二、Java操作MongoDB示例

在本示例之前你需要启动mongod.exe的服务,启动后,下面的程序才能顺利执行;

1、建立simpleTest.java,完成简单的mongoDB数据库操作

Mongomongo=newMongo();

这样就创建了一个MongoDB的数据库连接对象,它默认连接到当前机器的localhost地址,端口是27017。

DBdb=mongo.getDB(“test”);

这样就获得了一个test的数据库,如果mongoDB中没有创建这个数据库也是可以正常运行的。mongoDB可以在没有创建这个数据库的情况下,完成数据的添加操作。当添加的时候,没有这个库,mongoDB会自动创建当前数据库。

得到了db,下一步我们要获取一个“聚集集合DBCollection”,通过db对象的getCollection方法来完成。

DBCollectionusers=db.getCollection("users");

这样就获得了一个DBCollection,它相当于我们数据库的“表”。

查询所有数据:

DBCursorcur=users.find();

while(cur.hasNext()){

System.out.println(cur.next());

}

完整源码:

packagecom.mongodb;

importjava.net.UnknownHostException;

importcom.mongodb.util.JSON;

publicclasssimpleTest{

publicstaticvoidmain(String[]args)throwsUnknownHostException,MongoException{

Mongomg=newMongo();

//查询所有的Database

for(Stringname:mg.getDatabaseNames()){

System.out.println("dbName:"+name);

}

DBdb=mg.getDB("test");

//查询所有的聚集集合

for(Stringname:db.getCollectionNames()){

System.out.println("collectionName:"+name);

}

DBCollectionusers=db.getCollection("users");

//查询所有的数据

DBCursorcur=users.find();

while(cur.hasNext()){

System.out.println("while="+cur.next());

}

System.out.println("count="+cur.count());

System.out.println("CursorId="+cur.getCursorId());

System.out.println("cur="+JSON.serialize(cur));

}

}

2、完成CRUD操作,首先建立一个curdTset.java,基本测试代码如下:

packagecom.mongodb;

importjava.net.UnknownHostException;

importjava.util.ArrayList;

importjava.util.List;

importorg.bson.types.ObjectId;

importorg.junit.After;

importorg.junit.Before;

importorg.junit.Test;

importcom.mongodb.util.JSON;

publicclasscurdTset{

privateMongomg=null;

privateDBdb;

privateDBCollectionusers;//连接的mongodb数据库

@Before

publicvoidinit(){

System.out.println("TestBefore...");

try{

mg=newMongo();

//mg=newMongo("localhost",27017);

}catch(UnknownHostExceptione){

e.printStackTrace();

}catch(MongoExceptione){

e.printStackTrace();

}catch(Exceptione){

e.printStackTrace();

}

//获取testDB;如果默认没有创建,mongodb会自动创建

db=mg.getDB("test");

//获取usersDBCollection;如果默认没有创建,mongodb会自动创建

users=db.getCollection("users");

}

@After

publicvoiddestory(){

System.out.println("TestAfter...");

if(mg!=null){

mg.close();

}

mg=null;

db=null;

users=null;

System.gc();

}

publicvoidprint(Objecto){

System.out.println(o);

}

privatevoidqueryAll(){

print("查询users的所有数据:");

//db游标

DBCursorcur=users.find();

inti=1;

while(cur.hasNext()){

print("记录"+i+":"+cur.next());

i++;

}

}

@Test

publicvoidadd(){

//先查询所有数据

queryAll();

System.out.println("===============================ADDstart=======================================");

print("ADDcount:"+users.count());

DBObjectuser=newBasicDBObject();

user.put("name","hoojo");

user.put("age",24);

user.put("sex","男");

print(users.save(user).getN());

//添加多条数据,传递Array对象

print(users.insert(user,newBasicDBObject("name","tom")).getN());

//添加List集合

Listlist=newArrayList();

list.add(user);

DBObjectuser2=newBasicDBObject("name","lucy");

user.put("age",22);

list.add(user2);

//添加List集合

print(users.insert(list).getN());

//查询下数据,看看是否添加成功

print("count="+users.count());

System.out.println("===============================ADDend=======================================");

//查询所有数据

queryAll();

}

@Test

publicvoidremove(){

queryAll();

print("删除id=4dde2b06feb038463ff09042:"+users.remove(newBasicDBObject("_id",newObjectId("4dde2b06feb038463ff09042"))).getN());

print("removeage>=24:"+users.remove(newBasicDBObject("age",newBasicDBObject("$gte",24))).getN());

System.out.println("===============================REMOVEend=======================================");

//查询所有数据

queryAll();

}

@Test

publicvoidmodify(){

print("修改:"+users.update(newBasicDBObject("_id",newObjectId("4dde25d06be7c53ffbd70906")),newBasicDBObject("age",99)).getN());

print("修改:"+users.update(

newBasicDBObject("_id",newObjectId("4dde2b06feb038463ff09042")),

newBasicDBObject("age",121),

true,//如果数据库不存在,是否添加

false//多条修改

).getN());

print("修改:"+users.update(

newBasicDBObject("name","haha"),

newBasicDBObject("name","dingding"),

true,//如果数据库不存在,是否添加

false//false只修改第一条,true如果有多条就不修改

).getN());

//当数据库不存在就不修改、不添加数据,当多条数据就不修改

//print("修改多条:"+coll.updateMulti(newBasicDBObject("_id",newObjectId("4dde23616be7c19df07db42c")),newBasicDBObject("name","199")));

System.out.println("===============================EDITend=======================================");

//查询所有数据

queryAll();

}

@Test

publicvoidtestOthers(){

//查询所有数据

queryAll();

DBObjectuser=newBasicDBObject();

user.put("name","hoojo");

user.put("age",24);

//JSON对象转换

print("serialize:"+JSON.serialize(user));

//反序列化

print("parse:"+JSON.parse("{"name":"hoojo","age":24}"));

print("判断tempCollection是否存在:"+db.collectionExists("users"));

//如果不存在就创建

if(!db.collectionExists("users")){

DBObjectoptions=newBasicDBObject();

options.put("size",20);

options.put("capped",20);

options.put("max",20);

print(db.createCollection("account",options));

}

//设置db为只读

db.setReadOnly(true);

//只读不能写入数据

db.getCollection("test").save(user);

}

}

阅读全文

与bsonjava相关的资料

热点内容
一捏就变形的解压玩具怎么折 浏览:196
易融贷app借钱怎么 浏览:939
单片机侧重点 浏览:867
江苏惠普服务器虚拟化设计云主机 浏览:647
在欧拉app好猫充电桩怎么申请 浏览:449
反编译代码教程 浏览:798
linuxio阻塞 浏览:973
8脚单片机pic 浏览:821
如何看彩色涂鸦遮住的字安卓 浏览:688
摆渡机器人编程 浏览:654
软程序员着装 浏览:139
宝鸡云存储服务器 浏览:668
推荐超解压游戏无广告 浏览:634
大华服务器怎么添加门禁 浏览:784
战地服务器60hz什么意思 浏览:760
成高级程序员学什么 浏览:501
阿里云接入备案后退掉服务器 浏览:928
ne40e命令 浏览:85
安卓输入法使用什么编码 浏览:184
手机如何开淘宝店步骤安卓手机 浏览:593