「java访问数据库框架」java开源数据库

博主:adminadmin 2023-01-22 13:42:10 348

今天给各位分享java访问数据库框架的知识,其中也会对java开源数据库进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!

本文目录一览:

java使用哪种框架解决数据库查询频繁

如果说框架的话,使用的比较频繁的是Hibernate,它不仅能够查询数据库,还能够进行插入更新删除等操作

java什么框架支持hbase数据库

HBase提供了对HBase进行一系列的管理涉及到对表的管理、数据的操作java api。

常用的API操作有:

1、 对表的创建、删除、显示以及修改等,可以用HBaseAdmin,一旦创建了表,那么可以通过HTable的实例来访问表,每次可以往表里增加数据。

2、 插入数据

创建一个Put对象,在这个Put对象里可以指定要给哪个列增加数据,以及当前的时间戳等值,然后通过调用HTable.put(Put)来提交操作,子猴在这里提请注意的是:在创建Put对象的时候,你必须指定一个行(Row)值,在构造Put对象的时候作为参数传入。

3、 获取数据

要获取数据,使用Get对象,Get对象同Put对象一样有好几个构造函数,通常在构造的时候传入行值,表示取第几行的数据,通过HTable.get(Get)来调用。

4、 浏览每一行

通过Scan可以对表中的行进行浏览,得到每一行的信息,比如列名,时间戳等,Scan相当于一个游标,通过next()来浏览下一个,通过调用HTable.getScanner(Scan)来返回一个ResultScanner对象。HTable.get(Get)和HTable.getScanner(Scan)都是返回一个Result。Result是一个

KeyValue的链表。

5、 删除

使用Delete来删除记录,通过调用HTable.delete(Delete)来执行删除操作。(注:删除这里有些特别,也就是删除并不是马上将数据从表中删除。)

6、 锁

新增、获取、删除在操作过程中会对所操作的行加一个锁,而浏览却不会。

7、 簇的访问

客户端代码通过ZooKeeper来访问找到簇,也就是说ZooKeeper quorum将被使用,那么相关的类(包)应该在客户端的类(classes)目录下,即客户端一定要找到文件hbase-site.xml。

下面是一个例子程序:

import java.io.IOException;

import java.util.ArrayList;

import java.util.List;

import org.apache.hadoop.conf.Configuration;

import org.apache.hadoop.hbase.HBaseConfiguration;

import org.apache.hadoop.hbase.HColumnDescriptor;

import org.apache.hadoop.hbase.HTableDescriptor;

import org.apache.hadoop.hbase.KeyValue;

import org.apache.hadoop.hbase.MasterNotRunningException;

import org.apache.hadoop.hbase.ZooKeeperConnectionException;

import org.apache.hadoop.hbase.client.Delete;

import org.apache.hadoop.hbase.client.Get;

import org.apache.hadoop.hbase.client.HBaseAdmin;

import org.apache.hadoop.hbase.client.HTable;

import org.apache.hadoop.hbase.client.Result;

import org.apache.hadoop.hbase.client.ResultScanner;

import org.apache.hadoop.hbase.client.Scan;

import org.apache.hadoop.hbase.client.Put;

import org.apache.hadoop.hbase.util.Bytes;

public class HBaseTest {

private static Configuration conf = null;

/**

* 初始化配置

*/

static {

Configuration HBASE_CONFIG = new Configuration();

//与hbase/conf/hbase-site.xml中hbase.zookeeper.quorum配置的值相同

HBASE_CONFIG.set("hbase.zookeeper.quorum", "10.1.1.1");

//与hbase/conf/hbase-site.xml中hbase.zookeeper.property.clientPort配置的值相同

HBASE_CONFIG.set("hbase.zookeeper.property.clientPort", "2181");

conf = HBaseConfiguration.create(HBASE_CONFIG);

}

/**

* 创建一张表

*/

public static void creatTable(String tableName, String[] familys) throws Exception {

HBaseAdmin admin = new HBaseAdmin(conf);

if (admin.tableExists(tableName)) {

System.out.println("table already exists!");

} else {

HTableDescriptor tableDesc = new HTableDescriptor(tableName);

for(int i=0; ifamilys.length; i++){

tableDesc.addFamily(new HColumnDescriptor(familys[i]));

}

admin.createTable(tableDesc);

System.out.println("create table " + tableName + " ok.");

}

}

/**

* 删除表

*/

public static void deleteTable(String tableName) throws Exception {

try {

HBaseAdmin admin = new HBaseAdmin(conf);

admin.disableTable(tableName);

admin.deleteTable(tableName);

System.out.println("delete table " + tableName + " ok.");

} catch (MasterNotRunningException e) {

e.printStackTrace();

} catch (ZooKeeperConnectionException e) {

e.printStackTrace();

}

}

/**

* 插入一行记录

*/

public static void addRecord (String tableName, String rowKey, String family, String qualifier, String value)

throws Exception{

try {

HTable table = new HTable(conf, tableName);

Put put = new Put(Bytes.toBytes(rowKey));

put.add(Bytes.toBytes(family),Bytes.toBytes(qualifier),Bytes.toBytes(value));

table.put(put);

System.out.println("insert recored " + rowKey + " to table " + tableName +" ok.");

} catch (IOException e) {

e.printStackTrace();

}

}

/**

* 删除一行记录

*/

public static void delRecord (String tableName, String rowKey) throws IOException{

HTable table = new HTable(conf, tableName);

List list = new ArrayList();

Delete del = new Delete(rowKey.getBytes());

list.add(del);

table.delete(list);

System.out.println("del recored " + rowKey + " ok.");

}

/**

* 查找一行记录

*/

public static void getOneRecord (String tableName, String rowKey) throws IOException{

HTable table = new HTable(conf, tableName);

Get get = new Get(rowKey.getBytes());

Result rs = table.get(get);

for(KeyValue kv : rs.raw()){

System.out.print(new String(kv.getRow()) + " " );

System.out.print(new String(kv.getFamily()) + ":" );

System.out.print(new String(kv.getQualifier()) + " " );

System.out.print(kv.getTimestamp() + " " );

System.out.println(new String(kv.getValue()));

}

}

/**

* 显示所有数据

*/

public static void getAllRecord (String tableName) {

try{

HTable table = new HTable(conf, tableName);

Scan s = new Scan();

ResultScanner ss = table.getScanner(s);

for(Result r:ss){

for(KeyValue kv : r.raw()){

System.out.print(new String(kv.getRow()) + " ");

System.out.print(new String(kv.getFamily()) + ":");

System.out.print(new String(kv.getQualifier()) + " ");

System.out.print(kv.getTimestamp() + " ");

System.out.println(new String(kv.getValue()));

}

}

} catch (IOException e){

e.printStackTrace();

}

}

public static void main (String [] agrs) {

try {

String tablename = "scores";

String[] familys = {"grade", "course"};

HBaseTest.creatTable(tablename, familys);

//add record zkb

HBaseTest.addRecord(tablename,"zkb","grade","","5");

HBaseTest.addRecord(tablename,"zkb","course","","90");

HBaseTest.addRecord(tablename,"zkb","course","math","97");

HBaseTest.addRecord(tablename,"zkb","course","art","87");

//add record baoniu

HBaseTest.addRecord(tablename,"baoniu","grade","","4");

HBaseTest.addRecord(tablename,"baoniu","course","math","89");

System.out.println("===========get one record========");

HBaseTest.getOneRecord(tablename, "zkb");

System.out.println("===========show all record========");

HBaseTest.getAllRecord(tablename);

System.out.println("===========del one record========");

HBaseTest.delRecord(tablename, "baoniu");

HBaseTest.getAllRecord(tablename);

System.out.println("===========show all record========");

HBaseTest.getAllRecord(tablename);

} catch (Exception e) {

e.printStackTrace();

}

}

}

Java目前主流框架都有哪些?

1,SpringMVC

在中国有一种说法“生姜仍旧又辛辣”,所以虽然SpringMVC已经发布了十多年,但它仍然强大有力,并且处于领先地位,具有绝对优势。在拥抱完整的MVC框架之后,Spring已经发展并且现在是面向Internet的应用程序的综合Java框架,为软件工程师提供了一个功能强大的工具包,用于Web应用程序开发和安全项目的应用程序配置。

2,Hibernate

虽然Hibemate不在RebelLabs的排行榜上,但它仍然是一个值得一提的Java框架。这种映射Java框架使用连续数据库访问操作而不是高级对象处理来解决对象和关系不匹配的问题。每个企业应用程序都不同,因此Hibernate附带了一个强大的功能集,可以帮助后端开发人员微调数据访问层。

3,Struts2

为了更详细地解释现代软件工程师广泛使用的Java框架,Qianfeng Wuhan Java Training的老师介绍了Struts2,它是ApacheStruts1的后续版本。 Struts2用于构建当代JavaEE Web应用程序。 Apache Software Foundation为开发人员提供了广泛的工具,用于创建企业级面向Web的应用程序,优化开发过程,甚至是后期维护,包括最终的优化过程和后期维护。

4、JSF

作为JavaEE的一部分,Oracle支持JavaServerFaces。虽然这不是快速Java开发的最佳框架,但很容易开始使用Oracle的大量文档。如果你不离开JavaEE环境,JSF没有外部依赖,但它非常强大,它有一个丰富的库和工具(包括一个易于创建用户界面的工具集),无论你的应用程序有多复杂,它可以支持。

5、Grails

这种特殊的Web框架被认为是一种动态工具,可以提高工程师的工作效率。它具有唯一的API实际,合理的默认值和约定的配置示例。与Java的无缝集成使其成为全球许多程序员的最佳选择。

6、GoogleWebToolkit

GWT是一个免费的Java框架,允许用户创建和优化复杂的基于Web的应用程序。 GWT的软件开发工具包提供了核心Java API和小部件,可以在构建之后编译到JavaScript应用程序中。

Java的三大框架是什么?

java三大框架是:

1、Struts

为了解决这些问题,出现了Struts框架,它是一个完美的MVC实现,它有一个中央控制类(一个Servlet),针对不同的业务,我们需要一个Action类负责页面跳转和后台逻辑运算,一个或几个JSP页面负责数据的输入和输出显示,还有一个Form类负责传递Action和JSP中间的数据。JSP中可以使用Struts框架提供的一组标签,就像使用HTML标签一样简单,但是可以完成非常复杂的逻辑。从此JSP页面中不需要出现一行包围的Java代码了。

可是所有的运算逻辑都放在Struts的Action里将使得Action类复用度低和逻辑混乱,所以通常人们会把整个Web应用程序分为三层,Struts负责显示层,它调用业务层完成运算逻辑,业务层再调用持久层完成数据库的读写。

使用JDBC连接来读写数据库,我们最常见的就是打开数据库连接、使用复杂的SQL语句进行读写、关闭连接,获得的数据又需要转换或封装后往外传,这是一个非常烦琐的过程。

2、Hibernate

这时出现了Hibernate框架,它需要你创建一系列的持久化类,每个类的属性都可以简单的看做和一张数据库表的属性一一对应,当然也可以实现关系数据库的各种表件关联的对应。当我们需要相关操作是,不用再关注数据库表。我们不用再去一行行的查询数据库,只需要持久化类就可以完成增删改查的功能。使我们的软件开发真正面向对象,而不是面向混乱的代码。我的感受是,使用Hibernate比JDBC方式减少了80%的编程量。

现在我们有三个层了,可是每层之间的调用是怎样的呢?比如显示层的Struts需要调用一个业务类,就需要new一个业务类出来,然后使用;业务层需要调用持久层的类,也需要new一个持久层类出来用。通过这种new的方式互相调用就是软件开发中最糟糕设计的体现。简单的说,就是调用者依赖被调用者,它们之间形成了强耦合,如果我想在其他地方复用某个类,则这个类依赖的其他类也需要包含。程序就变得很混乱,每个类互相依赖互相调用,复用度极低。如果一个类做了修改,则依赖它的很多类都会受到牵连。 为此,出现Spring框架。

3、Spring

Spring的作用就是完全解耦类之间的依赖关系,一个类如果要依赖什么,那就是一个接口。至于如何实现这个接口,这都不重要了。只要拿到一个实现了这个接口的类,就可以轻松的通过xml配置文件把实现类注射到调用接口的那个类里。所有类之间的这种依赖关系就完全通过配置文件的方式替代了。所以Spring框架最核心的就是所谓的依赖注射和控制反转。

现在的结构是,Struts负责显示层,Hibernate负责持久层,Spring负责中间的业务层,这个结构是目前国内最流行的Java Web应用程序架构了。另外,由于Spring使用的依赖注射以及AOP(面向方面编程),所以它的这种内部模式非常优秀,以至于Spring自己也实现了一个使用依赖注射的MVC框架,叫做Spring MVC,同时为了很好的处理事物,Spring集成了Hibernate,使事物管理从Hibernate的持久层提升到了业务层,使用更加方便和强大。

Struts框架是2000年就开始起步了,技术相当成熟,目前全球Java开发中Struts框架是显示层技术中当之无愧的王者。它拥有大量的用户群和很好的开发团队。这也是国内大部分Java软件公司对新进员工的基本要求。

什么是java五大框架

一、五大框架是:

1、struts2

2.servlet

3.hibernate

4.spring

5.mybatis

二、拓展:

1、Spring是什么:

Spring是一个轻量级的DI和AOP容器框架。

说它轻量级有一大部分原因是相对与EJB的(虽然本人从没有接触过EJB的应用),重要的是,Spring是非侵入式的,基于spring开发的应用一般不依赖于spring的类。

2、Struts2 是一个相当强大的Java Web开源框架,是一个基于POJO的Action的MVC Web框架。它基于当年的Webwork和XWork框架,继承其优点,同时做了相当的改进。Struts2现在在Java Web开发界的地位可以说是大红大紫,从开发人员的角度来分析,Struts2之所以能够如此的深入开发人员之心,与其优良的设计是分不开的。

参考资料

Java 五大框架之间的对比.编程语言[引用时间2017-12-30]

java访问数据库框架的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于java开源数据库、java访问数据库框架的信息别忘了在本站进行查找喔。