练习JavaWeb连接数据库

Posted xoxobool

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了练习JavaWeb连接数据库相关的知识,希望对你有一定的参考价值。

1.添加jar包。

  建立动态java项目,在Web-INF文件夹下的lib文件夹里添加jar包。

  区别:java中添加的jar包需要添加构建路径,而javaWeb中添加的jar不需要构建路径,自动添加。

2.创建请求页面

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
</head>
<body>
<form action="Check.jsp" method="post">
卡号:<input type="text" name="cardid"><br>
密码:<input type="password" name="password"><br>
按钮:<input type="submit" value="登录">
</form>
</body>
</html>

3.创建接收页面

<%@page import="java.sql.ResultSet"%>
<%@page import="java.sql.PreparedStatement"%>
<%@page import="java.sql.Connection"%>
<%@page import="java.sql.DriverManager"%>
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
</head>
<body>
<%
//接收验证
    String cardid = request.getParameter("cardid");
    String password = request.getParameter("password");
    //数据验证
    if(cardid.equals("")||password.equals(""))
    {
        out.write("请正确登录系统");
    }
    else if(cardid==null||password==null)
    {
        out.write("请正确登录系统");
    }
    else
    {
        out.write(cardid);
        out.write(password);
    
    //连接数据库
    Class.forName("oracle.jdbc.driver.OracleDriver");
    Connection conn =DriverManager.getConnection("jdbc:oracle:thin:@localhost:1521:orcl", "test0816", "laoer123");
    PreparedStatement ps = conn.prepareStatement("select * from t_balance where card_id=? and password=?  ");
    ps.setString(1, cardid);
    ps.setString(2,password);
    ResultSet rs =ps.executeQuery();
//数据验证
    if(rs.next())
    {
        out.write("用户名和密码正确");
    }
    else
    {
        out.write("用户名或密码错误");
    }
    rs.close();
    ps.close();
    conn.close();
}
   
%>
</body>
</html>

4.通过连接池连接数据库

 (1)添加jar包,同上。

 (2)在JavaResources - src- 创建java包 -创建类 ,并将配置文件放在src下

    

package com.hanqi.web;

import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;

import com.mchange.v2.c3p0.ComboPooledDataSource;
//单例模式
public class CardDAO {
    //构建连接池对象并配置
    private  ComboPooledDataSource cpds =new ComboPooledDataSource("helloc3p0");
    
    public boolean checklogin(String cardid,String password)
    {
        boolean rtn =false;
        try {
                Connection conn = cpds.getConnection();
                PreparedStatement ps = conn.prepareStatement("select * from t_balance where card_id=? and password=?  ");
                ps.setString(1, cardid);
                ps.setString(2,password);
                ResultSet rs =ps.executeQuery();
                
                rtn=rs.next();
                rs.close();
                ps.close();
                
                conn.close();
            } catch (SQLException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
        return rtn;
    }
    
    
}
    

请求信息页面

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
</head>
<body>
<form action="Check2.jsp" method="post">
卡号:<input type="text" name="cardid"><br>
密码:<input type="password" name="password"><br>
按钮:<input type="submit" value="登录">
</form>
</body>
</html>

接收信息的页面

<%@page import="com.hanqi.web.CardDAO"%>
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
</head>
<body>
<% 
    //    设置不缓存页面
    response.setHeader("Cache-Control", "no-cache");
    //定时跳转
    //response.setHeader("refresh", "2;URL=http://www.baidu.com");
    //

String cardid = request.getParameter("cardid");
String password =request.getParameter("password");
if(cardid==null||password==null||
cardid.equals("")||password.equals(""))
{
    out.write("请正确登录");
}
else
{
    //检查登录信息
    CardDAO cd = new CardDAO();
    if(cd.checklogin(cardid, password))
    {
        //out.write("登录成功!");
        
        response.getWriter().write("验证成功!");
        //页面跳转
        //response.sendRedirect("Main.jsp");
        response.sendRedirect("http://www.baidu.com");
    }
    else
    {
        out.write("登录失败!");
        //跳回登录页面
        response.setHeader("refresh", "2;URL=loginin.jsp");
    }
}

%>

</body>
</html>

附原本的图,不是以上程序

 

以上是关于练习JavaWeb连接数据库的主要内容,如果未能解决你的问题,请参考以下文章

python练习六—简单的论坛

20160328 javaweb Cookie 小练习

动态SQL基础概念复习(Javaweb作业5)

20160330javaweb之session 小练习

JavaWeb之数据库连接池

JavaWeb之数据库连接池