【JDBC】【JSP】java连接orale数据库

java连接oracle数据库,进行数据库信息的添加和查找比对 

---------------------------------java以及数据库部分------------------------------------- 


创建表:

 create table jdbc (name varchar2(20),password number(20));


查看创建后的表结构:

desc jdbc;


(本文着重于jdbc,在建表上做了很大的精简。)


连接数据库的基本代码:

		String sqlname=null;
		String sqlpassword = null;
		String sql;
		String driver="Oracle.jdbc.driver.OracleDriver";
		String url="jdbc:oracle:thin:@localhost:1521:orcl";
		String user="system";
		String pwd=[你的system用户的密码];
 		 	try{
  			//加载驱动
  			Class.forName(driver);
			  //创建链接
  			Connection con = DriverManager.getConnection(url,user,pwd);
			  //创建statement对象	
  			Statement st = con.createStatement();
  			//cong获得结果集
  			st.executeUpdate(sql);
  			while(rs.next())
  			{
  				 sqlname=rs.getString("name");
  				 sqlpassword = rs.getSting("password");

  			}
 		 	}catch(Exception e){}


一些需要注意的地方:

1,驱动错误。注意自己导入的jar包和jdk的版本是不是匹配。详情见  Oracle的JDBC驱动的版本你了解吗?

(打不开的童鞋请使用此url:http://www.2cto.com/database/201202/120260.html)

2,注意本文jsp完整代码示例-eg1中的代码 使用的是上面的jdbc表,用户在注册时需要将代码写成number类型而不是字符串类型。




--------------------------------JSP实例及完整代码------------------------------------- 

eg1,简单的注册后登陆
需求:实现注册后登陆的功能
思路: 
1,用户中注册,数据库信息添加
2,注册成功,跳转到登陆页面 
3,登陆成功,跳转到欢迎页面

共4个jsp文件,完整代码如下:
1,jdbcregister.jsp
 
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
    <title>register</title>
    <script language="JavaScript">/*在客户端进行验证,减轻服务器数据验证的负担*/
    	function checkUserInfo(){
    		if(document.myform.name.value==""){
    			alert("用户名不能为空");
    			return false;
    		}
    		if(document.myform.password.value==""){
    			alert("密码不能为空");
    			return false;
    		}
    		if(document.myform.password.value!=document.myform.repassword.value)
    		{
    			alert("两次密码不一致!");
    			return false;
    		}
    	
    	}
    </script>
    </head>

  <body>
  	<form action="jdbcadd.jsp" name="myform" method="post" οnsubmit="return checkUserInfo()">
  		username:<input type="text" name="name" value="请输入用户名" />
  		password:<input type="password" name="password" />
  		repassword:<input type="password" name="repassword"/>
  		<input type="submit" name="submit">
   
   
   <!--
   			//如果选择在服务器进行验证,下面为注册页面的jsp代码(提示框需要在注册页面显示)
			
	    	request.setCharacterEncoding("GBK");
	    	String message = (String)request.getAttribute("message");
	    	if(message!=null&&!message.equals(""))
	    		 out.println("<font color='red'>"+message+"</font>");  

			//验证步骤在注册处理页面,即jdbcadd.jsp页面,相关代码省略。
     -->   		
  		
  	
  	</form>
  </body>
</html>




2.jdbcadd.jsp
 
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%@ page import="java.sql.*" %>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
    <title>login</title>
  <body>
  		<% 	
  			request.setCharacterEncoding("UTF-8");
  			int line ;
  		 	String n= request.getParameter("name").trim();
  		 	String p= request.getParameter("password").trim();
  		 	String driver="oracle.jdbc.OracleDriver";
  		 	String sql = "insert into jdbc(name,password) VALUES ('"+n+"',"+p+")";
  		 	String url="jdbc:oracle:thin:@127.0.0.1:1521:orcl";
  		 	String user="scott";
  		 	String pwd="tiger";
  			String sqlname = null;
  			String sqlpassword = null;
  		 	try{
	  			//加载驱动
	  			Class.forName(driver);
				//创建链接
	  			Connection con = DriverManager.getConnection(url,user,pwd);
				//创建statement对象	
	  			Statement st = con.createStatement();
	  			out.println("正在注册... ");
	  			line = st.executeUpdate(sql);  //返回一个整数,指示受影响的行数
	  			out.println("正在更新... ");
	  			out.println("正在比对... ");
				if(line>0)
				{
			 	  System.out.println("注册成功!");
  		 		 response.sendRedirect("jdbclogin.jsp");
				}
  		 	else
  		 		 out.println("you are stupid!!");
			 	 con.close();
  		 	}catch(Exception e){
  		 		e.printStackTrace();
  		 	}
  		 	 
  		%>
  </body>
</html>






3,jdbclogin.jsp
 
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
    <title>login</title>
  <body>
  	<form action="jdbcadd.jsp">
  		username:<input type="text" name="name" value="请输入用户名" />
  		password:<input type="password" name="password" />
  		repassword:<input type="password" name="repassword"/>
  		<input type="submit" name="submit">
  		
  		
  	
  	</form>
  </body>
</html>





4,jdbccontrol.jsp
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
4,jdbccontrol.jsp  ——>登陆处理页面
<%@ page import="java.sql.*" %>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
    <title>login</title>
  <body>
  		<% 	
	  		 request.setCharacterEncoding("GBK");
	  		System.out.println("登陆验证...");
	  		boolean flag=false;//必须赋初值 如果没有会报错并提示initial 设置标志变量 如果找到  置为真  循环结束后
  		 	String name = request.getParameter("Name");
  		 	String password = request.getParameter("Password"); 
			String sqlname=null;
			String sqlpassword = null;
  		 	String user="scott";
  		 	String pwd="tiger";
  		 	String sql="select * from jdbc";
		 	String driver="oracle.jdbc.OracleDriver";
  		 	String url="jdbc:oracle:thin:@127.0.0.1:1521:orcl";
  		 	try{
	  			//加载驱动
	  			Class.forName(driver);
				//创建链接
	  			Connection con = DriverManager.getConnection(url,user,pwd);
				//创建statement对象	
	  			Statement st = con.createStatement();
	  			//获得结果集
	  			ResultSet rs  = st.executeQuery(sql);
	  			
	  		 	while(rs.next())
	  			{
	  				sqlname=rs.getString("name");
	  				sqlpassword = rs.getString("password");
	  				if(sqlname.equals(name)&&sqlpassword.equals(password))
						flag = true;								
	  			} 
					if(flag)
	  				 	response.sendRedirect("welcome.jsp");
					else
						out.println("你是猪吗\n");
	  			con.close();
	  			rs.close();
  		 	}catch(Exception e){
  		 		out.println(e);
  		 		e.printStackTrace();
  		 	}
  		%>
  </body>
</html>



eg2,比较完整的用户登录验证及注册(eg2只是对eg1进行了简单变动,没有思路的童鞋请重新理解eg1。代码略


需求:实现登陆验证以及注册功能
思路: 
1,用户登陆,数据库信息比对
2,登陆成功,跳转到欢迎页面
3,登陆失败,提示用户不存在,询问注册还是返回重新登陆
4,选择注册---注册页面---信息添加到数据库---登陆页面--登陆
(代码略)


 




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值