您的位置:首页 > 编程语言 > Java开发

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

2016-10-27 20:32 295 查看
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" onsubmit="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,选择注册---注册页面---信息添加到数据库---登陆页面--登陆

(代码略)

 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: