Java数据库,哪个更好用?
我将推荐给你们10个最高效的Java数据库
1、MongoDB——最受欢迎,跨平台,面向文档的数据库
MongoDB是一个基于分布式文件存储的数据库,使用C++语言编写。旨在为Web应用提供可扩展的高性能数据存储解决方案。应用性能高低依赖于数据库性能,MongoDB则是非关系数据库中功能最丰富,最像关系数据库的,随着MongDB 3.4版本发布,其应用场景适用能力得到了进一步拓展。
MongoDB的核心优势就是灵活的文档模型、高可用复制集、可扩展分片集群。你可以试着从几大方面了解MongoDB,如实时监控MongoDB工具、内存使用量和页面错误、连接数、数据库操作、复制集等。
2、Elasticsearch ——为云构建的分布式RESTful搜索引擎
ElasticSearch是基于Lucene的搜索服务器。它提供了分布式多用户能力的全文搜索引擎,基于RESTful web接口。Elasticsearch是用Java开发的,并作为Apache许可条款下的开放源码发布,是比较流行的企业级搜索引擎。
ElasticSearch不仅是一个全文本搜索引擎,还是一个分布式实时文档存储,其中每个field均是被索引的数据且可被搜索;也是一个带实时分析功能的分布式搜索引擎,并且能够扩展至数以百计的服务器存储及处理PB级的数据。ElasticSearch在底层利用Lucene完成其索引功能,因此其许多基本概念源于Lucene。
3、Cassandra——开源分布式数据库管理系统
最初是由Facebook开发的,旨在处理许多商品服务器上的大量数据,提供高可用性,没有单点故障。
Apache Cassandra是一套开源分布式NoSQL数据库系统。集Google BigTable的数据模型与Amazon Dynamo的完全分布式架构于一身。于2008开源,此后,由于Cassandra良好的可扩展性,被Digg、Twitter等Web 2.0网站所采纳,成为了一种流行的分布式结构化数据存储方案。
因Cassandra是用Java编写的,所以理论上在具有JDK6及以上版本的机器中都可以运行,官方测试的JDK还有OpenJDK 及Sun的JDK。 Cassandra的操作命令,类似于我们平时操作的关系数据库,对于熟悉MySQL的朋友来说,操作会很容易上手。
4、Redis ——开源(BSD许可)内存数据结构存储,用作数据库,缓存和消息代理
Redis是一个开源的使用ANSI C语言编写的、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库,并提供多种语言的API。
Redis 有三个主要使其有别于其它很多竞争对手的特点:Redis是完全在内存中保存数据的数据库,使用磁盘只是为了持久性目的; Redis相比许多键值数据存储系统有相对丰富的数据类型; Redis可以将数据复制到任意数。Redis 这么火,它都解决了哪些问题?
5、Hazelcast ——基于Java的开源内存数据网格
Hazelcast 是一种内存数据网格 in-memory data grid,提供Java程序员关键任务交易和万亿级内存应用。虽然Hazelcast没有所谓的“Master”,但是仍然有一个Leader节点(the oldest member),这个概念与ZooKeeper中的Leader类似,但是实现原理却完全不同。同时,Hazelcast中的数据是分布式的,每一个member持有部分数据和相应的backup数据,这点也与ZooKeeper不同。
Hazelcast的应用便捷性深受开发者喜欢,但如果要投入使用,还需要慎重考虑。
6、Ehcache——广泛使用的开源Java分布式缓存
主要面向通用缓存、Java EE和轻量级容器。
EhCache 是一个纯Java的进程内缓存框架,具有快速、精干等特点,是hibernate中默认的CacheProvider。
主要特性有:快速简单,具有多种缓存策略;缓存数据有两级,内存和磁盘,因此无需担心容量问题;缓存数据会在虚拟机重启的过程中写入磁盘;可以通过RMI、可插入API等方式进行分布式缓存;具有缓存和缓存管理器的侦听接口;支持多缓存管理器实例,以及一个实例的多个缓存区域;提供Hibernate的缓存实现。Ehcache介绍及整合Spring实现高速缓存。
7、Hadoop ——用Java编写的开源软件框架
用于分布式存储,并对非常大的数据用户可以在不了解分布式底层细节的情况下,开发分布式程序。充分利用集群进行高速运算和存储。
Hadoop实现了一个分布式文件系统(Hadoop Distributed File System),简称HDFS。Hadoop的框架最核心的设计就是:HDFS和MapReduce。HDFS为海量的数据提供了存储,MapReduce则为海量的数据提供了计算。
8、Solr ——开源企业搜索平台,用Java编写,来自Apache Lucene项目
Solr是一个独立的企业级搜索应用服务器,它对外提供类似于Web-service的API接口。用户可以通过http请求,向搜索引擎服务器提交一定格式的XML文件,生成索引;也可以通过Http Get操作提出查找请求,并得到XML格式的返回结果。
与ElasticSearch一样,同样是基于Lucene,但它对其进行了扩展,提供了比Lucene更为丰富的查询语言,同时实现了可配置、可扩展并对查询性能进行了优化。
9、Spark ——Apache Software Foundation中最活跃的项目,是一个开源集群计算框架
Spark 是一种与 Hadoop 相似的开源集群计算环境,但是两者之间还存在一些不同之处,这些不同之处使 Spark 在某些工作负载方面表现得更加优越,换句话说,Spark 启用了内存分布数据集,除了能够提供交互式查询外,它还可以优化迭代工作负载。
Spark 是在 Scala 语言中实现的,它将 Scala 用作其应用程序框架。与 Hadoop 不同,Spark 和 Scala 能够紧密集成,其中的 Scala 可以像操作本地集合对象一样轻松地。
10、Memcached ——通用分布式内存缓存系统
Memcached是一套分布式快取系统,当初是Danga Interactive为了LiveJournal所发展的,但被许多软件(如MediaWiki)所使用。Memcached作为高速运行的分布式缓存服务器,具有以下的特点:协议简单,基于libevent的事件处理,内置内存存储方式。
通过以上的分析,相信你就知道怎么选择了
java连接数据库的代码
用这个类吧.好的话,给我加加分.
import java.sql.*;
/**
* @功能: 一个JDBC的本地化API连接类,封装了数据操作方法,只用传一个SQL语句即可
* @作者: 李开欢
* @日期: 2007/
*/
public class ConnectionDemo {
/*
* 这里可以将常量全部放入另一个类中,以方便修改
*/
private static Connection conn;
private static Statement ps;
private static ResultSet rs;
private static final String DRIVER = “com.microsoft.jdbc.sqlserver.SQLServerDriver”;
private static final String URL = “jdbc:microsoft:sqlserver://www.easyaq.com:1433;DatabaseName=mydb”;
private static final String USER =”sa”;
private static final String PASS = “sa”;
public ConnectionDemo() {
// TODO Auto-generated constructor stub
ConnectionDemo.getConnection();
}
public static Connection getConnection(){
System.out.println(“连接中…”);
try {
Class.forName(ConnectionDemo.DRIVER);
conn = DriverManager.getConnection(ConnectionDemo.URL, ConnectionDemo.USER, ConnectionDemo.PASS);
System.out.println(“成功连接”);
} catch (ClassNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return conn;
}
public static Statement getStatement(String sql){
System.out.println(“执行SQL语句中…”);
try {
ps = conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE, ResultSet.CONCUR_UPDATABLE);
if(sql.substring(0, 6).equals(“select”)){
rs = ps.executeQuery(sql);
System.out.println(“执行完查询操作,结果已返回ResultSet集合”);
}else if(sql.substring(0, 6).equals(“delete”)){
ps.executeUpdate(sql);
System.out.println(“已执行完毕删除操作”);
}else if(sql.substring(0, 6).equals(“insert”)){
ps.executeUpdate(sql);
System.out.println(“已执行完毕增加操作”);
}else{
ps.executeUpdate(sql);
System.out.println(“已执行完毕更新操作”);
}
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return ps;
}
public static ResultSet getResultSet(){
System.out.println(“查询结果为:”);
return rs;
}
public static void closeConnection(){
System.out.println(“关闭连接中…”);
try {
if (rs != null) {
rs.close();
System.out.println(“已关闭ResultSet”);
}
if (ps != null) {
ps.close();
System.out.println(“已关闭Statement”);
}
if (conn != null) {
conn.close();
System.out.println(“已关闭Connection”);
}
} catch (Exception e) {
// TODO: handle exception
}
}
public static void main(String[] args) {
// TODO Auto-generated method stub
ConnectionDemo.getConnection();
String sql = “delete from type where id = 1”;
ConnectionDemo.getStatement(sql);
String sql2 = “insert into type values(1,’教学设备’)”;
ConnectionDemo.getStatement(sql2);
String sql1 = “select * from type”;
ConnectionDemo.getStatement(sql1);
ResultSet rs = ConnectionDemo.getResultSet();
System.out.println(“编号 “+”类 型”);
try {
while(rs.next()){
System.out.print(” “+rs.getInt(1)+” “);
System.out.println(rs.getString(2));
}
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
ConnectionDemo.closeConnection();
}
}
java和数据库有什么关系吗?
1、Java是一门编程语言,为的实现如何连接客户与数据,之间的一种连接工具,你可以这么理解,你想要图书馆里面的所有的图书,查找某个资料,没有编程语言做的变成系统,你只能够通过自己去图书馆一本一本的去翻,去找。有了编程语言,就可以专门的做出一个查询系统,这个系统将所有的图书的内容都融汇到一个地方,然后通过你用Java编写的查询系统,进行查找想要的资料,就是电子化,这样同时可以提供给更多的人去查找,也给更多的人省去了,单独查找的时间。编程语言就是做这个的。
2、数据库是做什么的呢:
在上面我们提到了,就是把所有的书的内容都放置到一个地方,而数据库就是进行存放这个书籍内容的地方,有了数据库,我们可以更好的去管理书籍里面的内容,进行改写,进行备份,进行整理。在一个企业里面:三分管理 七分技术 十二分数据,其实人们最注重的是数据的积累。一家银行,有多少个客户,客户都各自存储了多少钱,什么时候存储的。它并不关心你这系统是什么东西,它只想通过你的系统继续操作里面的数据。数据库就是这个作用。
3、话又说回来了,就是存储数据,你完全可以用记事本,excel表格,或者自己随便的定义一种东西进行存储,但是,当级别达到几千,几万,几十万,几百万,几千万,几亿,你如何去存储,用什么东西进行查询历史的数据,如果你真的有本事能够做到查询的速度性,安全性以及便于管理性,你可以完全不用数据库,当然目前世界上还没有人能够弄成,能弄成的几个公司就是现在的数据库公司:oracle,db2等等