Java程序连接oracle数据库,并实现注册与登录功能
2016-10-29 19:47
836 查看
易错点:
1.运行时出错:ORA-00913: 值过多。主要是因为程序里的参数个数与oracle 数据库中的表中的参数个数不一致。本程序中我在Oracle中创建的表有三个属性:
create table users( id number(7) primary key, name varchar2(10) unique, password varchar2(8) not null );
但是一般登录都只需要用户输入用户名和密码,所以在下面的注册登录过程中,我将sql语句中的id写死为506。其实也可以让其自动生成id。方法如下:(其中cycle表示循环,cache 表示刷新)
create sequence auto_Id increment by 1 start with 2016001 minvalue 2016001 maxvalue 2016999 cycle cache 3
如果是用自动生成的id号,那么下面的程序中main方法里的sql语句需要修改为
String sql = "insert into sxt_users values ( auto_sxtId.nextval, ?, ?)";
2.另外一个容易出错的地方就是关流的时候了。
public class JDBCRegister { //数据库,只连接一次就好; static Connection con = DBUtils.getConnectionOfDB(); public static void main(String[] args) { String sql = "insert into sxt_users values( 506, ?, ?)"; //输入用户名 String name = Tools.inputString("请输入用户名》》"); //判断用户名是否被注册过,使用循环判断 boolean flag = isOnly(name); while(flag == false){ System.out.println("用户名"+name+"已被注册"); name = Tools.inputString("请直接登录或重新输入用户名》》"); flag = isOnly(name); } //输入密码并使用循环判断 String password = Tools.inputString("请输入密码》》"); String regex = ".{6,8}"; boolean f2 = password.matches(regex); while(f2== false){ System.out.println("输入的密码长度应在6~8位之间"); password = Tools.inputString("请重新输入密码"); } //会话 PreparedStatement pstmt = DBUtils.getPreparedStatementOfDB(con, sql); //为?填写数据 try { pstmt.setObject(1, name); pstmt.setObject(2, password); int i = pstmt.executeUpdate(); if(i>0){ System.out.println("恭喜你,"+name+"注册成功"); //跳转到登录界面 System.out.println("请登录……"); JDBCLogin.main(args); }else{ System.out.println("注册失败,用户名重复"); } } catch (SQLException e) { System.out.println("注册失败,用户名已经存在~~"); } finally { //不是查询语句,不用获得结果集rs,所以也不用关闭它 DBUtils.closeAll(con, pstmt, null); } } private static boolean isOnly(String name) { String sql = "select id from sxt_users where name= ?"; boolean flag = true; PreparedStatement pstmt=null; ResultSet rs = null; try { pstmt = DBUtils.getPreparedStatementOfDB(con, sql); pstmt.setObject(1, name); //这里要获得结果集,进而判断表中是否存在用户名为name的结果。 rs = DBUtils.getResultSetOfDB(pstmt); if(rs.next()){ flag = false; } } catch (SQLException e) { e.printStackTrace(); } finally{ //con还要接着在主线程里使用,所以不能关; DBUtils.closeAll(null, pstmt, rs); } return flag; } }
相关文章推荐
- Java小程序之集合框架模拟数据库实现用户登录和注册功能
- Java小程序之集合框架模拟数据库实现用户登录和注册功能
- java利用jdbc连接Mysql数据库——实现登录注册功能
- java在线聊天项目1.2版 ——开启多个客户端,分别实现数据库注册和登录功能后,成功登陆则登录框消失,好友列表窗出现
- jsp连接oracle数据库并实现简单登录功能,来自网络,部分修改。(亚信联创实习)
- 不二极端编程之JAVA基础总结(3)[数组循环实现控制台注册登录全功能]
- VS连接SQL Server 2008,并实现登录和注册功能
- VS连接SQL Server 2008,并实现登录和注册功能
- JAVA简单链接Oracle数据库 注册和登陆功能的实现代码
- java socket 实现c/s文件上传下载功能+注册登录
- Java Web 案例一 登录、注册功能实现
- java连接MySql数据库 实现用户登录功能
- jsp+javabean+servlet+Mysql实现MVC模式下的注册登录留言功能
- JSP+JavaBean+Servlet技术实现某网站用户注册和登录功能
- 使用Java实现的简易登录注册程序
- JavaWeb实现用户登录注册功能实例代码(基于Servlet+JSP+JavaBean模式)
- javaWeb 简单注册登录(含数据库连接) -- (三) 实现用户注册请求的响应
- 微信小程序Java登录流程(ssm实现具体功能和加解密隐私信息问题解决方案)
- 微信小程序Java登录流程(ssm实现具体功能和加解密隐私信息问题解决方案)
- Java web 注册登录功能实现简介