首先要在Oracle数据库创建表文件,包括建立表头以及关键字(唯一标识符),此次程序所用的表名称为SW_USER_INFO,表头有UNAME、UKEY、USEX等,关键字为UCC,然后添加一条记录,用户名称为system,密码为1.登陆原理为通过链接Oracle数据库,然后搜索表名称,根据关键字锁定记录,获取记录信息与登陆界面输入信息进行比对,信息一致即可登陆成功,反之则不通过。连接Oracle数据库代码如下:

 1 import java.sql.Connection;
2 import java.sql.DriverManager;
3 import java.sql.PreparedStatement;
4 import java.sql.ResultSet;
5 import java.sql.SQLException;
6
7 public class Loading_F {
8
9 public String name = "";
10 public int sex = -1 ;
11 public String get_Verification_INFO(String UNAME) throws SQLException{
12 String psw = "";
13
14 Connection con = null;
15 try
16 {
17 Class.forName("oracle.jdbc.driver.OracleDriver");
18 String url = "jdbc:oracle:" + "thin:@IP地址:端口号:标识符";
19 String user = "数据库登陆名";
20 String password = "口令";
21 con = DriverManager.getConnection(url, user, password);
22 } catch (Exception e) {
23 e.printStackTrace();
24 }
25
26 PreparedStatement pre = null;
27 ResultSet result = null;
28 String sql = "select * from SW_USER_INFO where UACC=?";
29 pre = con.prepareStatement(sql);
30 pre.setString(1, UNAME);
31 result = pre.executeQuery();
32 while (result.next()){
33 name = result.getString("UNAME");
34 psw = result.getString("UKEY");
35 sex = result.getInt("USEX");
36 }
37 con.close();
38 return psw;
39 }
40 }

  这个里面涉及Oracle数据库表的协议(表内容的具体含义),具体协议内容不具体说明,望各位谅解,这个协议由Oracle数据库用户根据使用内容自己定义。接下来就是用户登陆界面的设计主要具有三个功能:登陆、退出和重置。具体代码如下:

  1 import java.awt.Color;
2 import java.awt.Dimension;
3 import java.awt.Font;
4 import java.awt.Image;
5 import java.awt.Toolkit;
6 import java.awt.event.KeyAdapter;
7 import java.awt.event.KeyEvent;
8 import java.awt.event.MouseAdapter;
9 import java.awt.event.MouseEvent;
10 import java.sql.SQLException;
11
12 import javax.swing.ImageIcon;
13 import javax.swing.JButton;
14 import javax.swing.JFrame;
15 import javax.swing.JLabel;
16 import javax.swing.JPanel;
17 import javax.swing.JPasswordField;
18 import javax.swing.JTextField;
19 import javax.swing.border.LineBorder;
20
21 public class Loading_F {
22
23 JFrame f1 = new JFrame("OERI-驾校管理系统-登陆");
24 static JTextField jt1 = new JTextField();
25 JPasswordField jt2 = new JPasswordField();
26 JTextField jt3 = new JTextField();
27 JButton btn1 = new JButton("确 定");
28 JButton btn2 = new JButton("退 出");
29 JButton btn3 = new JButton("重置");
30 String str1 = new String();
31
32 public static void main(String[] args) {
33 Loading_F lf = new Loading_F();
34 lf.addFormFunction();
35 lf.setform();
36 }
37 void Start_Loading_Form(){
38 addFormFunction();
39 setform();
40 }
41
42 void setform(){
43 f1.setSize(780, 400);
44 f1.setResizable(false);
45 setFrameCenter(f1);
46
47 String path = "bgp/background01.jpg";
48 ImageIcon background = new ImageIcon(path);
49 JLabel label = new JLabel(background);
50 label.setBounds(0, 0, f1.getWidth(), f1.getHeight());
51 JPanel imagePanel = (JPanel) f1.getContentPane();
52 imagePanel.setOpaque(false);
53 f1.getLayeredPane().add(label, new Integer(Integer.MIN_VALUE));
54
55 JLabel jl1 = new JLabel("请输入用户信息:");
56 jl1.setBounds(480, 70, 180, 50);
57 jl1.setFont(new Font("宋体", Font.BOLD, 17));
58 jl1.setForeground(Color.WHITE);
59 f1.getLayeredPane().add(jl1, new Integer(Integer.MAX_VALUE));
60
61 JLabel jl2 = new JLabel("用户名:");
62 jl2.setBounds(480, 140, 180, 30);
63 jl2.setFont(new Font("宋体", Font.BOLD, 13));
64 jl2.setForeground(Color.WHITE);
65 f1.getLayeredPane().add(jl2, new Integer(Integer.MAX_VALUE));
66
67 JLabel jl3 = new JLabel("密 码:");
68 jl3.setBounds(480, 180, 180, 30);
69 jl3.setFont(new Font("宋体", Font.BOLD, 13));
70 jl3.setForeground(Color.WHITE);
71 f1.getLayeredPane().add(jl3, new Integer(Integer.MAX_VALUE));
72
73 jt1.setBounds(535, 140, 180, 30);
74 jt1.setBorder(new LineBorder(Color.white));
75 jt1.setFont(new Font("宋体", Font.BOLD, 15));
76 jt1.addMouseListener(new MouseAdapter(){
77 public void mouseEntered(MouseEvent e){
78 jt1.setBorder(new LineBorder(Color.black));
79 }
80 public void mouseExited(MouseEvent e){
81 jt1.setBorder(new LineBorder(Color.white));
82 }
83 });
84 f1.getLayeredPane().add(jt1, new Integer(Integer.MAX_VALUE));
85
86 jt2.setBounds(535, 180, 180, 30);
87 jt2.setEchoChar('*');
88 jt2.setFont(new Font("宋体", Font.BOLD, 15));
89 jt2.setBorder(new LineBorder(Color.white));
90 jt2.addMouseListener(new MouseAdapter(){
91 public void mouseEntered(MouseEvent e){
92 jt2.setBorder(new LineBorder(Color.black));
93 }
94 public void mouseExited(MouseEvent e){
95 jt2.setBorder(new LineBorder(Color.white));
96 }
97 });
98 f1.getLayeredPane().add(jt2, new Integer(Integer.MAX_VALUE));
99
100 btn1.setBounds(488, 240, 65, 30);
101 btn1.setBorder(new LineBorder(Color.gray));
102 btn1.addMouseListener(new MouseAdapter(){
103 public void mouseEntered(MouseEvent e){
104 btn1.setBorder(new LineBorder(Color.black));
105 }
106 public void mouseExited(MouseEvent e){
107 btn1.setBorder(new LineBorder(Color.gray));
108 }
109 });
110 f1.getLayeredPane().add(btn1, new Integer(Integer.MAX_VALUE));
111
112 btn2.setBounds(568, 240, 65, 30);
113 btn2.setBorder(new LineBorder(Color.gray));
114 btn2.addMouseListener(new MouseAdapter(){
115 public void mouseEntered(MouseEvent e){
116 btn2.setBorder(new LineBorder(Color.black));
117 }
118 public void mouseExited(MouseEvent e){
119 btn2.setBorder(new LineBorder(Color.gray));
120 }
121 });
122 f1.getLayeredPane().add(btn2, new Integer(Integer.MAX_VALUE));
123
124 btn3.setBounds(648, 240, 65, 30);
125 btn3.setBorder(new LineBorder(Color.gray));
126 btn3.addMouseListener(new MouseAdapter(){
127 public void mouseEntered(MouseEvent e){
128 btn3.setBorder(new LineBorder(Color.black));
129 }
130 public void mouseExited(MouseEvent e){
131 btn3.setBorder(new LineBorder(Color.gray));
132 }
133 });
134 f1.getLayeredPane().add(btn3, new Integer(Integer.MAX_VALUE));
135
136 jt3.setBounds(490, 323, 240, 30);
137 jt3.setBackground(new Color(255,255,255,0));
138 jt3.setOpaque(false);
139 jt3.setBorder(null);
140 jt3.setFont(new Font("黑体", Font.BOLD, 13));
141 jt3.setForeground(Color.WHITE);
142 jt3.setEditable(false);
143 f1.getLayeredPane().add(jt3, new Integer(Integer.MAX_VALUE));
144
145 Image imageIcon = Toolkit.getDefaultToolkit().getImage("bgp/tubiao.png");
146 f1.setIconImage(imageIcon);
147 f1.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
148 f1.setVisible(true);
149 }
150 void setFrameCenter(JFrame jf){
151 Toolkit tl = Toolkit.getDefaultToolkit();
152 Dimension d = tl.getScreenSize();
153 double ScreenHeigth = d.getHeight();
154 double ScreenWidth = d.getWidth();
155 int FrameWidth = jf.getWidth();
156 int FrameHeigth = jf.getHeight();
157 int Higth = (int)(ScreenHeigth - FrameHeigth)/2;
158 int Width = (int) (ScreenWidth - FrameWidth)/2;
159 jf.setLocation(Width, Higth);
160 }
161 void Password_Verification() throws SQLException{
162 String name = jt1.getText();
163 char[] passw = jt2.getPassword();
164 String entered_password = new String(passw);
165
166 if(name.equals("")){
167 str1 = "请输入用户名称!";
168 jt3.setText(str1);
169 }else if(entered_password.equals("")){
170 str1 = "请输入密码!";
171 jt3.setText(str1);
172 }else{
173 str1 = "正在验证登录信息...";
174 jt3.setText(str1);
175 function_res.Loading_F frlf = new function_res.Loading_F();
176 String password = frlf.get_Verification_INFO(name);
177 if(password.equals("")){
178 str1 = "未找到该用户!";
179 jt3.setText(str1);
180 }else{
181 if(password.equals(entered_password)){
182 str1 = "信息正确,正在登录...";
183 jt3.setText(str1);
184 f1.setVisible(false);
185 f1.dispose();
186 Major_F mf = new Major_F();
187 mf.str0 = frlf.name;
188 mf.usex = frlf.sex;
189 mf.setform();
190 mf.setFunction();
191 }else{
192 str1 = "密码错误,请在确认无误后再次输入!";
193 jt3.setText(str1);
194 }
195 }
196 }
197 }
198 void addFormFunction(){
199 btn1.addMouseListener(new MouseAdapter(){
200 public void mouseClicked(MouseEvent e){
201 try {
202 Password_Verification();
203 } catch (SQLException e1) {
204 e1.printStackTrace();
205 }
206 }
207 });
208 btn1.addKeyListener(new KeyAdapter(){
209 @SuppressWarnings("static-access")
210 public void keyPressed(KeyEvent ke){
211 if(ke.getKeyChar() == ke.VK_ENTER){
212 try {
213 Password_Verification();
214 } catch (SQLException e1){
215 e1.printStackTrace();
216 }
217 }
218 }
219 });
220
221 btn2.addMouseListener(new MouseAdapter(){
222 public void mouseClicked(MouseEvent e){
223 System.exit(0);
224 }
225 });
226
227 btn3.addMouseListener(new MouseAdapter(){
228 public void mouseClicked(MouseEvent e){
229 jt1.setText("");
230 jt2.setText("");
231 jt3.setText("");
232 }
233 });
234
235 }
236 }

  运行效果图如下:

  

 

  2018年1月27日于青岛

基于Oracle数据库登陆界面及功能实现 Java版的更多相关文章

  1. 2018.6.6 基于Oracle数据库的航天信息系统JDBC练习

    综合练习 一.语言和环境 A.实现语言 Java B.环境要求 JDK 6.0及其以上版本.MyEclipse7.5及其以上版本.Oracle11g.PL/SQL Developer 二.功能要求 开 ...

  2. Oracle数据库的版本变迁功能对比

    Oracle数据库自发布至今,也经历了一个从不稳定到稳定,从功能简单至强大的过程.从第二版开始,Oracle的每一次版本变迁,都具有里程碑意义. 1979年的夏季,RSI(Oracle公司的前身,Re ...

  3. 通用超级强大的基于Oracle数据库的代码生成器

    项目中使用了Oracle数据库,命名基本规范为表名和字段名全部大写,用下划线分割各个单词: 如“BASE_USER_LOGON_EXTEND”这个表表示用户登录的扩展表. 基于这个规范,通用权限管理系 ...

  4. Oracle数据库基本操作 (五) —— 使用java调用存储过程

    一.环境准备 登录Oracle数据库scott账号,利用emp进行操作. 1.创建 proc_getyearsal 存储过程 -- 获取指定员工年薪 create or replace procedu ...

  5. 基于oracle数据库存储过程的创建及调用

    1.PLSQL编程 1.1概念和目的 PL/SQL(Procedure Language/SQL) PLSQL是Oracle对sql语言的过程化扩展 指在SQL命令语言中增加了过程处理语句(如分支.循 ...

  6. 开启和关闭oracle数据库中的审计功能

    第1步:查看审计功能是否开启?SQL> show parameter audit;NAME                                 TYPE        VALUE-- ...

  7. oracle学习1 基于oracle数据库的PLSQL编程以及存储过程的创建和使用视频

    https://www.bilibili.com/video/av46777605 plsql中选择testWindow中可以进行测试 1.编写函数在plsql的testwindow中 begin d ...

  8. 编写实现连接oracle数据库并返回Connection对象的Java工具类

    只需要实现一个功能,所以只写一个方法,为了方便调用,设为静态方法 package com.jv; import java.sql.Connection; import java.sql.DriverM ...

  9. oracle数据库中将clob字段内容利用java提取出至文本文档中

    代码段: 1.执行clob转String public static String ClobToString(Clob sc) throws SQLException, IOException { S ...

随机推荐

  1. ModelForm has no model class specified

    未指定模型类,错误发生在把model拼写错误 来自为知笔记(Wiz)

  2. sqlserver - 某字段数据为json串, 获取该json串里的值 的详细方法

    1.前言 某字段的数据为json 但是我想只获取里面的某一个值,该怎么操作? 2.笔记 (1)用 JSON_VALUE(参数1,参数2)函数 ,有两个参数, (2)参数1 为 列名 ,参数2 为 js ...

  3. 第10组 Beta冲刺 (1/5)

    1.1基本情况 ·队名:今晚不睡觉 ·组长博客:https://www.cnblogs.com/cpandbb/p/14012521.html ·作业博客:https://edu.cnblogs.co ...

  4. 微服务架构攀登之路(三)之gRPC入门

    一.gRPC入门 1. gRPC 简介 gRPC 由 google 开发,是一款语言中立.平台中立.开源的远程过程调用系统 gRPC 客户端和服务端可以在多种环境中运行和交互,例如用 java 写一个 ...

  5. element ui 动态菜单解决方案集锦

    1.<分享一个VUE Element-UI 的多级菜单动态渲染的组件> 2.<饿了么组件库,element-ui开发精美的后台管理系统系列之(一)开发伸缩菜单> 3.<V ...

  6. Hive UDF,就这

    摘要:Hive UDF是什么?有什么用?怎么用?什么原理?本文从UDF使用入手,简要介绍相关源码,UDF从零开始. 本文分享自华为云社区<Hive UDF,就这>,作者:汤忒撒. Hive ...

  7. PkavHTTPFuzzer爆破带验证码的后台密码

    之前对暴力破解这块并没有做系统的总结,况且登录这块也是个重头戏,所以我想总结总结. 环境准备 1.用phpstudy搭建phpwms1.1.2演示环境 2.pkavhttpfuzzer工具 漏洞复现 ...

  8. vscode设置vue结构的初始代码片段

    { "Print to console": { "prefix": "vue", "body": [ "< ...

  9. Abp vnext EFCore 实现动态上下文DbSet踩坑记

    背景 我们在用EFCore框架操作数据库的时候,我们会遇到在 xxDbContext 中要写大量的上下文 DbSet<>; 那我们表少还可以接受,表多的时候每张表都要写一个DbSet, 大 ...

  10. Solon Web 开发,十四、与Spring、Jsr330的常用注解对比

    Solon Web 开发 一.开始 二.开发知识准备 三.打包与运行 四.请求上下文 五.数据访问.事务与缓存应用 六.过滤器.处理.拦截器 七.视图模板与Mvc注解 八.校验.及定制与扩展 九.跨域 ...