几款好用的数据库管理工具

几款好用的数据库管理工具,第1张

任何web软件和应用程序都需要强大的数据库管理工具,因此开发者选择一款合适的数据库管理工具尤为重要。霍营电脑培训列出了几款好用的数据库管理工具(有些并非开源或免费),以供开发者们参考选择:

1、MySQL管理工具phpMyAdmin

phpMyAdmin是一个非常受欢迎的基于web的MySQL数据库管理工具。它能够创建和删除数据库,创建/删除/修改表格,删除/编辑/新增字段,执行SQL脚本等。

缺点:

SQL语法不高亮

2、数据库管理工具NavicatLite

Navicat是一套快速、可靠并价格相宜的资料库管理工具,大可使用来简化资料库的管理及降低系统管理成本。它的设计符合资料库管理员、开发人员及中小企业的需求。Navicat是以直觉化的使用者图形介面所而建的,让你可以以安全且简单的方式建立、组织、存取并共用资讯。Navicat支持的数据库包括MySQL、Oracle、SQLite、PostgreSQL和SQLServer等。

Navicat提供商业版NavicatPremium和免费的版本NavicatLite。但目前Navicat已不再提供LITE版本。

缺点:

免费版本已停止更新。

3、数据库管理工具DBeaver

DBeaver是一个通用的数据库管理工具和SQL客户端,支持MySQL,PostgreSQL,Oracle,DB2,MSSQL,Sybase,Mimer,HSQLDB,Derby,以及其他兼容JDBC的数据库。DBeaver提供一个图形界面用来查看数据库结构、执行SQL查询和脚本,浏览和导出数据,处理BLOB/CLOB数据,修改数据库结构等等。

4、MySQL数据库建模工具MySQLWorkbench

MySQLWorkbench是数据库架构师和开发人员的可视化数据库设计、管理的工具,它是著名的数据库设计工具DBDesigner4的继任者。你可以用MySQLWorkbench设计和创建新的数据库图示,建立数据库文档。它同时有开源和商业化的两个版本。可以在Windows,Linux和MACOSX上使用。

它在2016年十月份成为一个稳定的工具。

缺点:

比phpMyAdmin更复杂。

import javasqlResultSet; //都是导入一些下面需要用到的类

String ConnStr="jdbc:microsoft:sqlserver://WINJUE:1433;DatabaseName=library";//jdbc连接数据库url

public sqlServer() {

try {

ClassforName(DBDriver)newInstance(); //加载SQLServer驱动程序,DBDriver是你上面的代码;

conn=DriverManagergetConnection(ConnStr,"sa","sa"); //和数据库建立连接,ConnStr里面的://WINJUE:1433;DatabaseName=library 分别是主机地址:端口号;你自己建的数据库(database)

}

catch(SQLException e) { //捕获SQL异常

Systemoutprintln(egetMessage()); //要是出现异常,捕获到后,这句代码会把异常的信息(出错的原因之类的)打印出来。

}

catch(Exception e) { //捕获异常,这个是总的,所以不能和上面的顺序颠倒,先小到大,我连ORACLE和MYSQL,这个我通常不要,只须捕获SQL异常就OL

Systemoutprintln(egetMessage());

}

}

public Connection getConn(){ //获取连接方法

return conn;

}

public void insert(String sql) {//增删改

try {

Statement stm=conncreateStatement(); 调用conn下的方法,创建Statement对象

stmexecuteUpdate(sql);//调用Statement下的方法执行SQL语句

Systemoutprintln(" *** 作成功");

}

catch(Exception e){

Systemoutprintln(egetMessage()); //如上

}

}

public ResultSet query(String sql){ //查询

try{

Statement stm=conncreateStatement(ResultSetTYPE_SCROLL_SENSITIVE,ResultSetCONCUR_UPDATABLE);

rs=stmexecuteQuery(sql); //如上

}

catch(Exception e){

Systemoutprintln(egetMessage());

}

return rs;

}

public static void main(String args[]){

sqlServer conn=new sqlServer(); //创建sqlServer,就是你上面的类,以便调用里面的方法

ResultSet rs=connquery("select from Orders"); //调用query方法,执行SQL语句后,把结果保存到结果集里

//conninsert("delete from BookInfo where BookName =" +"\'悟空传\'");

//conninsert("insert into BookInfo (BookID,BookName,Author,KeyWord) values (14445678,'悟空传','今何在','孙悟空')");

try{

while(rsnext()){ //循环,判断结果集里的记录,一条条往下走,是否还有下一条记录,若是返回真,继续走

Systemoutprint(rsgetString("OrderID"));

//Systemoutprint(rsgetString("U_age"));

}

rsclose() ; //关闭结果集

}

catch (Exception e){

Systemoutprintln(egetMessage());

}

}

}

注:

TYPE_FORWARD_ONLY:缺省类型。只允许向前访问一次,并且不会受到其他用户对该数据库所作更改的影响。

TYPE_SCROLL_INSENSITIVE:允许在列表中向前或向后移动,甚至能进行特定定位,例如移至列表中的第四个记录或从当前位置向后移动两个记录。不会受到其他用户对该数据库所作更改的影响。

TYPE_SCROLL_SENSITIVE:象 TYPE_SCROLL_INSENSITIVE 相同,允许在记录中定位。这种类型受到其他用户所作更改的影响。如果用户在执行完查询之后删除一个记录,那个记录将从 ResultSet 中消失。类似的,对数据值的更改也将反映在 ResultSet 中。

既然是java 不如试试Derby这个数据库,应该很符合你的要求而且网上资料很多哦在这里也不赘述了。

Derby是一个开源的、100% Java编写的、与平台无关的、易管理的关系数据库管理系统。Derby为用户提供了轻量的标准数据库引擎,它可以紧密的嵌入到任何基于Java的解决方案中。Derby确保数据完整性,并提供负责的事务处理 *** 作。默认的配置中不包含任何独立的数据库服务器。同时,Derby 的安装过程非常简单,只需要将其 jar 文件复制到系统中并为您的项目添加该 jar 文件即可。

Derby拥有一个令人惊奇的特性列表。它可以支持关系数据库中的所有企业级的特性,包括崩溃恢复、事务回滚和提交、行/表级锁、视图、主键/外键约束、触发器、子查询表达式,等等。一部分的列表特性使Derby从其他的Java 关系数据库管理系统中分离出来。

Derby可以有两种部署方式:

嵌入式:Derby被单个用户的Java应用程序使用,在这种模式下,Derby和应用程序运行在同一个JVM中。Derby对于终端用户几乎是透明的,因为它的启动和终止都是由应用程序来控制,而不需要任何的管理。

服务器模式:Derby由应用程序启动,此时通过用户可以通过网络连接。在这种模式下,Derby运行在服务器主机的JVM中。其他JVM的应用程序通过连接服务器来访问数据库。

空指针异常,就是你访问了一个不存在的东西。

这个情况很多了,比如你有一个Person类,它的成员变量有Name,Num等。

然后你创新了一个对象Person a = null;

然后你又引用了aName。

181行和166行,就是对不存在的东西进行了 *** 作。

错误769:无法连接到指定目标。

问题:这是指你电脑的网络设备有问题

解决方法:

打开“我的电脑”→“控制面版”→“网络连接”,查看本地连接的是否处在

“禁用”状态,是的话只需双击本地连接,看到状态变为“已启用”即可。若是连本地连接都没有的话,

那你的网卡100%有问题了——不是没装好就是坏了。请您联系您的电脑供应商,或者自己解决。

出现错误769的错误,大多数是网卡被禁用,启用即可!造成的原因一般为:用户的误 *** 作或一些防火墙软件、计算机病毒引起的,很普遍。如果没有找到本地连接,一般是网卡的驱动程序丢了或计算机没有检测到网卡,可以重新安装即可

我在酷影模式看片也不忘记回答楼主的问题,楼主你就采纳我吧

javaDB其实就是Derby,它并不是一个新的数据库产品,它是由IBM捐献给Apache的DB项目的一个纯Java数据库,JDK60里面带的这个Derby的版本是 10217,支持存储过程和触发器;有两种运行模式,一种是作为嵌入式数据库,另一种是作为网络数据库,前者的数据库服务器和客户端都在同一个 JVM里面运行,后者允许数据库服务器端和客户端不在同一个JVM里面,而且允许这两者在不同的物理机器上值得注意的是JDK6里面的这个Derby支持JDK6的新特性JDBC 40规范(JSR 221),现在我们如果要练习JDBC的用法,没有必要单独装一个数据库产品了,直接用Derby就行

1、本身没有 *** 作界面,可以用第三方工具来管理(也就是你说的 *** 作界面),Aqua Data Studio 具备管理功能的用于 Apache Derby 关系数据库的管理工具和数据库查询工具。直观管理功能让用户能够浏览和修改数据库结构,包括架构对象和数据库存储,以及维护数据库安全。集成查询工具让您能够迅速创建、编辑和执行 SQL 查询与脚本。Aqua Data Studio 进一步提供导入与导出工具,从而轻松地将数据移入和移出不同的数据格式及 Apache Derby 数据库。集成在这些工具内的是库浏览器 (Repository Browser),拥有 CVS 和 Subversion (SVN) 的完整来源控制客户端。

2、两者的区别,简单的说,就是javaDB是一个简化轻量级数据库,适合小型系统的小规模测试用,完全可以跑在内存里的数据库,它只有3M大小,而MySQL则是可以应用部署大型系统的数据库,功能更多更全,也更稳定,是用范围更广。

3、下面是个使用derby的简单例子:

首先导入JAR包:derbyjar,如果你装的是JDK6,在C:\Program Files\Sun\JavaDB\lib目录下就可以找到

然后就要创建数据库了:

代码

private Connection getConnection() throws SQLException {

Connection connection = DriverManager

getConnection("jdbc:derby:userDB;create=true;user=test;password=test");

connectionsetAutoCommit(false);

return connection;

}

其中userDB是要连接数据库的名字,create=true表示如果该数据库不存在,则创建该数据库,如果数据库存在,则用用户user=test;密码password=test连接数据库

有了数据库,接下来该建表了:

代码

private void createTable(Connection connection) throws SQLException {

Statement statement = connectioncreateStatement();

String sql = "create table USERS("

+ " ID BIGINT not null generated by default as identity,"

+ " USER_NAME VARCHAR(20) not null,"

+ " PASSWORD VARCHAR(20),"

+ " constraint P_KEY_1 primary key (ID))";

statementexecute(sql);

sql = "create unique index USER_NAME_INDEX on USERS ("

+ " USER_NAME ASC)";

statementexecute(sql);

statementclose();

}

创建了 USERS表,包括ID,USER_NAME,PASSWORD三个列,其中ID是主键,其中generated by default as identity 的作用类似sequence,identity是定义自动加一的列,

GENERATED BY ALWAYS AS IDENTITY

GENERATED BY DEFAULT AS IDENTITY

By always和by default是说明生成这个IDENTITY的方式。

By always是完全由系统自动生成。

by default是可以由用户来指定一个值。

编写与USERS表对应的javabean(这个就不多说了),:

代码

public class User implements Serializable {

/

/

private static final long serialVersionUID = 1L;

private Long id;

private String userName;

private String password;

public Long getId() {

return id;

}

public void setId(Long id) {

thisid = id;

}

public String getUserName() {

return userName;

}

public void setUserName(String userName) {

thisuserName = userName;

}

public String getPassword() {

return password;

}

public void setPassword(String password) {

thispassword = password;

}

}

接下来就可以就数据库进行增删改查的 *** 作了:

插入数据:

代码

private void create(User user) {

Connection connection = null;

try {

connection = thisgetConnection();

PreparedStatement statement = connection

prepareStatement("insert into users (user_name,password) values(,)");

int index = 1;

statementsetString(index++, usergetUserName());

statementsetString(index++, usergetPassword());

statementexecute();

usersetId(thisgetId(connection));

connectioncommit();

} catch (SQLException e) {

rollback(connection);

throw new RuntimeException(e);

} finally {

if (connection != null) {

close(connection);

}

}

}

代码

private Long getId(Connection connection) throws SQLException {

CallableStatement callableStatement = connection

prepareCall("values identity_val_local()");

ResultSet resultSet = callableStatementexecuteQuery();

resultSetnext();

Long id = resultSetgetLong(1);

resultSetclose();

callableStatementclose();

return id;

}

getId方法是获得系统默认的id值,是通过 identity_val_local()获得的,而函数IDENTITY_VAL_LOCAL()则可以在INSERT语句执行之后,为我们返回刚才系统为id所产生的值感觉还是有点想sequence的curr_val

修改数据:

代码

private void update(User user) {

Connection connection = null;

try {

connection = thisgetConnection();

PreparedStatement statement = connection

prepareStatement("update users set user_name=,password= where id=");

int index = 1;

statementsetString(index++, usergetUserName());

statementsetString(index++, usergetPassword());

statementsetLong(index++, usergetId());

statementexecute();

connectioncommit();

} catch (SQLException e) {

rollback(connection);

throw new RuntimeException(e);

} finally {

if (connection != null) {

close(connection);

}

}

}

删除数据:

代码

public void delete(Long id) {

Connection connection = null;

try {

connection = thisgetConnection();

PreparedStatement statement = connection

prepareStatement("delete from users where id=");

statementsetLong(1, id);

statementexecute();

connectioncommit();

} catch (SQLException e) {

rollback(connection);

throw new RuntimeException(e);

} finally {

if (connection != null) {

close(connection);

}

}

}

查询数据:

代码

public User findById(Long id) {

Connection connection = null;

try {

connection = thisgetConnection();

PreparedStatement statement = connection

prepareStatement("select user_name,password from users where id=");

statementsetLong(1, id);

ResultSet resultSet = statementexecuteQuery();

User user = null;

if (resultSetnext()) {

user = new User();

usersetId(id);

usersetUserName(resultSetgetString("user_name"));

usersetPassword(resultSetgetString("password"));

}

resultSetclose();

statementclose();

connectioncommit();

return user;

} catch (SQLException e) {

throw new RuntimeException(e);

} finally {

if (connection != null) {

close(connection);

}

}

}

以上就是关于几款好用的数据库管理工具全部的内容,包括:几款好用的数据库管理工具、java *** 作derby数据库和 *** 作sql数据库有什么区别、java 数组过大,想用一个轻量级的数据库用来存储这个数组等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/9308521.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-27
下一篇 2023-04-27

发表评论

登录后才能评论

评论列表(0条)

保存