- 浏览: 3575 次
- 性别:
- 来自: 上海
最新评论
swing数据库管理工具
- 博客分类:
- java swing
package com.org.system.login;
import java.awt.Dimension;
import java.awt.Image;
import java.awt.Toolkit;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.ItemEvent;
import java.awt.event.ItemListener;
import javax.swing.JButton;
import javax.swing.JComboBox;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JPasswordField;
import javax.swing.JTextField;
/**
* 登录页面
*/
public class LoginFrame extends JFrame implements ActionListener, ItemListener {
private JComboBox dbDriver;// DB数据库方言下拉列表
private JComboBox dbURL;// DB数据库连接字符串下拉列表
private JTextField ipTF;//IP地址
private JTextField duankouTF;//IP地址
private JTextField dbnam;//数据库名称
private JTextField dbnamTF;//数据库账号
private JPasswordField passwordTF;//数据库密码
private JButton loginButton = null, resetButton = null;
private String dbnames = null, passwordname = null, urlname = null,drivername = null ,duankouname = null
,dbusernames = null ,dbipname = null;
private static String udrivername="com.microsoft.sqlserver.jdbc.SQLServerDriver";
public LoginFrame() {
super();
Image img=getToolkit().createImage("image/tols.jpg");
//设置窗体的图标
setIconImage(img);
getContentPane().setLayout(null);
jFrameValidate();
setTitle("DB数据库");
JLabel backgroundLabel = new JLabel();
backgroundLabel.setBounds(0, 0, 768, 540);
backgroundLabel.setText("<html><img width=776 height=574 src='"
+ this.getClass().getResource("login1.jpg") + "'></html>");
// backgroundLabel.setText("<html><img width=776 height=574 src='"
// + System.getProperty("user.dir")+"/image/login1.jpg" + "'></html>");
backgroundLabel.setLayout(null);
final JLabel dbDriverLable = new JLabel();
dbDriverLable.setText("DB数据库方言:");
dbDriverLable.setBounds(180, 153, 100, 18);
backgroundLabel.add(dbDriverLable);
final JLabel dbURLLabel = new JLabel();
dbURLLabel.setText("DB连接字符串:");
dbURLLabel.setBounds(180, 193, 100, 18);
backgroundLabel.add(dbURLLabel);
final JLabel dbLabel = new JLabel();
dbLabel.setText("DB数据库名称:");
dbLabel.setBounds(180, 233, 100, 18);
backgroundLabel.add(dbLabel);
final JLabel dbnameLabel = new JLabel();
dbnameLabel.setText("DB数据库账号:");
dbnameLabel.setBounds(180, 273, 100, 18);
backgroundLabel.add(dbnameLabel);
final JLabel dbpasswordLable = new JLabel();
dbpasswordLable.setText("DB数据库密码:");
dbpasswordLable.setBounds(180, 313, 100, 18);
backgroundLabel.add(dbpasswordLable);
// DB数据库方言列表
String[] dbDriverAdd = { "oracle.jdbc.driver.OracleDriver",
"com.ibm.db2.jdbc.app.DB2Driver",
"(sql 2000)com.microsoft.sqlserver.jdbc.SQLServerDriver",
"(sql 2005or2008)com.microsoft.sqlserver.jdbc.SQLServerDriver",
"com.sybase.jdbc.SybDriver",
"com.informix.jdbc.IfxDriver",
"com.mysql.jdbc.Driver",
"org.postgresql.Driver"};
dbDriver = new JComboBox(dbDriverAdd);
dbDriver.setSelectedIndex(0);
dbDriver.setEditable(false);
dbDriver.addItemListener(this);
//335, 203 坐标位置 280, 22 长宽
dbDriver.setBounds(270, 153, 300, 22);
backgroundLabel.add(dbDriver);
// DB数据库连接字符串列表
/*
* "jdbc:oracle:thin:@localhost:1521:orcl",
"jdbc:db2://localhost:5000/sample",
"jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=db2",
"jdbc:sqlserver://localhost:1433;DatabaseName=db2",
"jdbc:sybase:Tds:localhost:5007/myDB",
"jdbc:informix-sqli://123.45.67.89:1533/myDB",
"jdbc:mysql://localhost:3306/myDB",
"jdbc:postgresql://localhost/myDB"
*/
String[] dbURLAdd = { "jdbc:oracle:thin:@",
"jdbc:db2://",
"jdbc:microsoft:sqlserver://",
"jdbc:sqlserver://",
"jdbc:sybase:Tds:",
"jdbc:informix-sqli://",
"jdbc:mysql://",
"jdbc:postgresql://"};
dbURL = new JComboBox(dbURLAdd);
dbURL.setSelectedIndex(0);
dbURL.addItemListener(this);
//禁止操作
dbURL.setEditable(false);
dbURL.setEnabled(false);
dbURL.setBounds(270, 193, 150, 22);
backgroundLabel.add(dbURL);
ipTF = new JTextField();
ipTF.setBounds(422, 193, 80, 22);
backgroundLabel.add(ipTF);
final JLabel nameLabel = new JLabel();
nameLabel.setText(":");
//设置字体 “dialog”代表字体,1代表样式(1是粗体,0是平常的)15是字号
nameLabel.setFont(new java.awt.Font("Dialog",1,15));
nameLabel.setBounds(505, 193, 100, 22);
backgroundLabel.add(nameLabel);
duankouTF = new JTextField();
duankouTF.setBounds(510, 193, 50, 22);
backgroundLabel.add(duankouTF);
dbnam = new JTextField();
dbnam.setBounds(270, 233, 300, 22);
backgroundLabel.add(dbnam);
dbnamTF = new JTextField();
dbnamTF.setBounds(270, 273, 300, 22);
backgroundLabel.add(dbnamTF);
passwordTF = new JPasswordField();
passwordTF.setBounds(270, 313, 300, 22);
backgroundLabel.add(passwordTF);
loginButton = new JButton("登录");
resetButton = new JButton("重置");
backgroundLabel.add(loginButton);
backgroundLabel.add(resetButton);
loginButton.setBounds(280, 360, 80, 30);
resetButton.setBounds(400, 360, 80, 30);
loginButton.addActionListener(this);
resetButton.addActionListener(this);
getContentPane().add(backgroundLabel);
}
public void jFrameValidate() {
Toolkit tk = getToolkit();// 获得屏幕的宽和高
Dimension dim = tk.getScreenSize();
this.setResizable(false);
this.setBounds(dim.width / 2 - 380, dim.height / 2 - 270, 776, 574);
validate();
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
// 下拉列表改变时的事件处理
public void itemStateChanged(ItemEvent e) {
if (e.getSource() == dbDriver) {
if (e.getStateChange() == ItemEvent.SELECTED
&& dbDriver.getSelectedIndex() != -1)
dbURL.setSelectedIndex(dbDriver.getSelectedIndex());
} else if (e.getSource() == dbURL) {
if (e.getStateChange() == ItemEvent.SELECTED
&& dbURL.getSelectedIndex() != -1)
dbURL.setSelectedIndex(dbURL.getSelectedIndex());
}
}
// 登录 和重置事件的处理
public void actionPerformed(ActionEvent e) {
if (e.getSource() == loginButton) {// 登录
getValues();// 得到界面中的所有项的值
checkUser();// 登录验证
} else if (e.getSource() == resetButton) {// 重置
reset();// 重新设置各项的值
}
}
private void checkUser() {
if(dbipname==null||dbipname.equals("")){
JOptionPane.showMessageDialog(this, "<html><h4>"+ "请输入连接数据库服务器IP地址、IP不容许为空值!" + "<html><h4>", "警告",JOptionPane.WARNING_MESSAGE);
}else if(duankouname==":"||duankouname.equals(":")){
JOptionPane.showMessageDialog(this, "<html><h4>"+ "请输入数据库端口、端口不容许为空!" + "<html><h4>", "警告",JOptionPane.WARNING_MESSAGE);
}else if(dbnames==":"||dbnames.equals(":")||dbnames=="/"||dbnames.equals("/")||dbnames==";DatabaseName="||dbnames.equals(";DatabaseName=")){
JOptionPane.showMessageDialog(this, "<html><h4>"+ "请输入数据库名称、数据库名称不容许为空!" + "<html><h4>", "警告",JOptionPane.WARNING_MESSAGE);
}else if(dbusernames==null||dbusernames.equals("")){
JOptionPane.showMessageDialog(this, "<html><h4>"+ "请输入登录账号、账号不能为空!" + "<html><h4>", "警告",JOptionPane.WARNING_MESSAGE);
}
else{
System.err.println(drivername);
System.err.println(getURL());
}
}
// 得到界面中的所有项的值
private void getValues() {
//此处由于sql 2000 与 2005 方言一样 但是连接字符串不一样 所有要做区别
if(dbDriver.getSelectedItem().equals("(sql 2000)com.microsoft.sqlserver.jdbc.SQLServerDriver")||dbDriver.getSelectedItem().equals("(sql 2005or2008)com.microsoft.sqlserver.jdbc.SQLServerDriver")){
drivername = udrivername;
}else {
drivername = (String) dbDriver.getSelectedItem();
}
urlname = (String) dbURL.getSelectedItem();
dbipname = ipTF.getText().trim();
//在端口前面追加:
StringBuffer sbBuf = new StringBuffer(duankouTF.getText().trim());
sbBuf.insert(0,":");
duankouname = sbBuf.toString();
StringBuffer sbBuffer = new StringBuffer(dbnam.getText().trim());
//dbnames = dbnam.getText().trim();
//判断数据库追加字符
if(dbDriver.getSelectedItem().equals("(sql 2000)com.microsoft.sqlserver.jdbc.SQLServerDriver")||dbDriver.getSelectedItem().equals("(sql 2005or2008)com.microsoft.sqlserver.jdbc.SQLServerDriver")){
sbBuffer.insert(0,";DatabaseName=");
dbnames=sbBuffer.toString();
}else if (dbDriver.getSelectedItem().equals("oracle.jdbc.driver.OracleDriver")){
sbBuffer.insert(0,":");
dbnames=sbBuffer.toString();
}else if (dbDriver.getSelectedItem().equals("com.ibm.db2.jdbc.app.DB2Driver")||dbDriver.getSelectedItem().equals("com.sybase.jdbc.SybDriver")||dbDriver.getSelectedItem().equals("com.informix.jdbc.IfxDriver")){
sbBuffer.insert(0,"/");
dbnames=sbBuffer.toString();
}else if (dbDriver.getSelectedItem().equals("com.mysql.jdbc.Driver")){
sbBuffer.insert(0,"/");
dbnames=sbBuffer.toString();
}else if (dbDriver.getSelectedItem().equals("org.postgresql.Driver")){
sbBuffer.insert(0,"/");
dbnames=sbBuffer.toString();
}
dbusernames = dbnamTF.getText().trim();
passwordname = passwordTF.getText().trim();
}
public String getURL() {
StringBuffer sb = new StringBuffer();
sb.append(urlname);
sb.append(dbipname);
sb.append(duankouname);
sb.append(dbnames);
return sb.toString();
}
// 重新设置各项的值
private void reset() {
dbDriver.setSelectedIndex(0);
dbURL.setSelectedIndex(0);
ipTF.setText("");
duankouTF.setText("");
dbnam.setText("");
dbnamTF.setText("");
passwordTF.setText("");
}
}
相关推荐
**Java Swing数据库管理系统** 在Java编程领域,Swing是一个用于构建桌面应用程序的用户界面工具包。它是Java Foundation Classes (JFC)的一部分,提供了丰富的组件和功能,使得开发者能够创建美观且功能强大的图形...
DBAnywhere4.71是一款基于Swing开发的数据库管理工具,它允许用户方便地管理和操作各种类型的数据库。 DBAnywhere的主要功能可能包括但不限于以下几点: 1. 数据库连接:DBAnywhere支持多种数据库管理系统(如...
数据库管理工具GUI例子(Java Swing)是利用Java的Swing库构建的一种图形用户界面应用程序,主要用于简化数据库的交互和管理。在IT领域,GUI(图形用户界面)为用户提供直观、友好的操作方式,而Java Swing作为Java的...
在这个“java-swing-mysql数据库管理.rar”项目中,开发者使用Java Swing创建了一个数据库管理工具,该工具能够与MySQL数据库进行交互。这涉及到以下几个核心知识点: 1. **Swing组件**:如JFrame(窗口)、JButton...
swing开发的数据库管理工具,支持常用的几大主流数据库,其他数据库可以自己扩展添加(只要有此数据库jdbc驱动的jar包就行),可以查看用户表(数据可导出成Excel),主键,索引,视图,触发器,存储过程等,可以生成对表增,删...
**Swing开发的数据库管理工具DBAnywhere 4.73详解** DBAnywhere是一款基于Java Swing技术开发的数据库管理系统,专为数据库的管理和操作提供便利。它具有轻量级、跨平台的特点,支持多种主流数据库类型,如MySQL、...
总结来说,JavaSwing图书管理系统SQL Server数据库项目涵盖了Java GUI编程、数据库设计、JDBC使用、事务处理等多个知识点,对于学习Java桌面应用开发和数据库管理有着重要的实践意义。通过这个项目,开发者可以提升...
在Swing应用中,通常会编写一个数据库连接池管理类,用以管理和复用数据库连接,提高性能。执行CRUD操作时,我们需要编写SQL语句,通过Statement或PreparedStatement对象来执行,最后通过ResultSet对象处理查询结果...
在数据库管理系统中,Swing可以用来创建数据输入表单、数据显示面板以及各种交互元素,使用户能够直观地操作数据。 SQL Server 2000是微软公司推出的一款关系型数据库管理系统,它支持标准的SQL语法,并提供了强大...
数据库方面,这款系统可能采用了如MySQL、Oracle或SQL Server等关系型数据库管理系统(RDBMS)。数据库设计遵循了规范化原则,通过表格(表)和字段(列)来存储和组织数据。通常,会有一个主表(如Employee表)来...
通过这个项目,学习者不仅可以掌握Java编程和Swing GUI开发的基本技能,还能了解到数据库管理、数据访问以及软件工程实践的相关知识。此外,实践报告中的问题解决过程也锻炼了学习者的调试能力和解决问题的能力,有...
这可能涉及对数据库的建表脚本执行,或者使用数据库管理工具提供的API创建数据库。 为了实现上述功能,开发人员需要了解Swing组件的使用、事件监听机制以及JDBC的详细操作流程。同时,了解数据库的基本概念,如表、...
Java Swing 是Java GUI(图形用户界面)开发的一个重要工具,主要用于构建桌面应用程序。在本项目“java Swing 设计数据库前台界面”中,我们利用Swing组件来创建一个与数据库交互的用户界面,尤其是实现了JTable...
Swing是Java Standard Edition(Java SE)的一部分,提供了一套丰富的组件和API,使得开发者能够创建桌面应用程序,包括这种数据库管理工具。 H2数据库是一个轻量级、开源、多模式的SQL数据库,广泛应用于测试、...
3. 数据库脚本:将附带的MySQL脚本导入数据库管理工具,如phpMyAdmin或MySQL Workbench,执行脚本以创建所需的表和索引。 4. 调试运行:在IDE中启动项目,系统会自动打开一个Swing GUI窗口。此时,你可以测试系统的...
这个“JAVA Swing自己编的数据库”项目显然利用了Swing来创建一个简单的数据库管理应用,允许用户进行数据的添加和删除操作。值得注意的是,这个应用还附带了一个数据库文件,这意味着它可能使用了诸如JDBC(Java ...
在Java编程中,Swing是一个用于构建桌面应用程序的图形用户界面(GUI)工具包。有时,我们可能需要在Swing应用中连接到数据库以实现数据的存储和检索。以下是一个详细的Java Swing连接数据库的步骤,以SQL Server为例...
- Navicat是一款强大的数据库管理工具,支持多种数据库类型,包括MySQL。它提供了一个直观的图形化界面,使得数据库的连接、查询、数据管理等工作变得简单。 - 用户可以通过Navicat进行数据导入导出、数据库备份、...
MySQL是一种流行的开源关系型数据库管理系统,它被广泛应用于web应用程序和小型到大型的企业级系统。在这个商品管理系统中,MySQL将存储商品的详细信息,如商品ID、名称、价格、库存等,同时可能还包含供应商信息、...
MySQL是一个广泛使用的开源关系型数据库管理系统,其特点是性能优秀、易于使用和维护。在这个系统中,可能包含以下几个主要的数据库表: 1. 用户表(Users):存储管理员和其他用户的信息,包括用户名、密码(对于...