在jsp编程中如何连接数据库?

发布网友 发布时间:2022-04-22 22:08

我来回答

2个回答

懂视网 时间:2022-05-01 08:12

数据库表代码:

/*
Navicat MySQL Data Transfer

Source Server : localhost_3306
Source Server Version : 50528
Source Host : localhost:3306
Source Database : bbs

Target Server Type : MYSQL
Target Server Version : 50528
File Encoding : 65001

Date: 2016-06-04 09:25:01
*/

SET FOREIGN_KEY_CHECKS=0;

-- ----------------------------
-- Table structure for tb_user
-- ----------------------------
DROP TABLE IF EXISTS `tb_user`;
CREATE TABLE `tb_user` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`username` varchar(255) NOT NULL,
`password` varchar(255) NOT NULL,
`linkman` varchar(255) DEFAULT NULL,
`company` varchar(255) DEFAULT NULL,
`companytel` varchar(255) DEFAULT NULL,
`qq` varchar(255) DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=utf8;

-- ----------------------------
-- Records of tb_user
-- ----------------------------
INSERT INTO `tb_user` VALUES (‘1‘, ‘admin‘, ‘admin‘, null, null, null, null);
INSERT INTO `tb_user` VALUES (‘2‘, ‘user‘, ‘user‘, null, null, null, null);

 

注册页面:

<%@ page language="java" import="java.util.*,java.sql.*" pageEncoding="utf-8"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>
<%@ page import="java.sql.*"%>
<%!
public static final String DBDRIVER = "com.mysql.jdbc.Driver" ;
public static final String userName = "root"; //登录的用户名
public static final String userPasswd = "taizhen"; //登录mysql密码
public static final String dbName = "test"; //数据库名
public static final String tableName="user"; //表名
public static final String DBURL = "jdbc:mysql://localhost:3306/"+dbName+"?user="+userName+"&password="+userPasswd;
%>

<%
Connection conn = null ;
PreparedStatement pstmt = null ;
ResultSet rs = null ;
boolean flag = false ; // 表示登陆成功或失败的标记
%>

<%

String action = request.getParameter("action");
if(null==action){

}else{
%>

<%out.println(action); %>
<%
String name = request.getParameter("username") ; // 接收表单参数
String password = request.getParameter("password") ; // 接收表单参数
try{
Class.forName(DBDRIVER) ;
conn = DriverManager.getConnection(DBURL) ;
String sql = "SELECT name,password FROM user WHERE name=? AND password=?" ;
pstmt = conn.prepareStatement(sql) ;
pstmt.setString(1,name) ;
pstmt.setString(2,password) ;
rs = pstmt.executeQuery() ;
while(rs.next()){
// 如果有内容,则此处执行,表示查询出来,合法用户
flag = true ;
}
}catch(Exception e){
}finally{
try{
conn.close() ; // 连接一关闭,所有的操作都将关闭
}catch(Exception e){}
}
%>
<%out.println(flag); %>
<%out.println(action); %>
<%

if(flag){
request.getSession().setAttribute("success", "登录");
%>
<jsp:forward page="success.jsp"/>
<%
}else{ // 登陆失败,跳转到failure.jsp
request.getSession().setAttribute("error", "登录");

%>
<jsp:forward page="error.jsp"/>
<%
}
}

%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<base href="<%=basePath%>">

<title>My JSP ‘login.jsp‘ starting page</title>

</head>

<body>
<form action="login.jsp" method="post">
<input type="hidden" name="action" />
用户名:
<input type="text" name="username" value="username"/>
<br>
密码:
<input type="password" name="password" value="password"/>
<br>
<input type="submit" value="login" />
</form>

</body>
</html>

 

jsp链接数据库代码:

<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>
<%@ page import="java.sql.*"%>
<%!
public static final String DBDRIVER = "com.mysql.jdbc.Driver" ;
public static final String userName = "root"; //登录的用户名
public static final String userPasswd = "taizhen"; //登录mysql密码
public static final String dbName = "test"; //数据库名
public static final String tableName="user"; //表名
public static final String DBURL = "jdbc:mysql://localhost:3306/"+dbName+"?user="+userName+"&password="+userPasswd;
%>

<%
Connection conn = null ;
PreparedStatement pstmt = null ;
ResultSet rs = null ;
boolean flag = false ; // 表示登陆成功或失败的标记
%>

<%

String action = request.getParameter("username");
if(action!=null){

%>

<%out.println(request.getParameter("password")); %>
<%
String name = request.getParameter("username") ; // 接收表单参数
String password = request.getParameter("password") ; // 接收表单参数
String linkman=request.getParameter("linkman");
String qq=request.getParameter("qq");

try{
Class.forName(DBDRIVER) ;
conn = DriverManager.getConnection(DBURL) ;
String sql = "INSERT INTO user (name, password) VALUES (?,?)";

pstmt = conn.prepareStatement(sql) ;
pstmt.setString(1,name) ;
pstmt.setString(2,password) ;

int sql_update = pstmt.executeUpdate();
if(sql_update>0){
flag=true;
}
}catch(Exception e){
}finally{
try{
conn.close() ; // 连接一关闭,所有的操作都将关闭
}catch(Exception e){}
}
%>


<%

if(flag){
request.getSession().setAttribute("success", "注册");
%>
<jsp:forward page="success.jsp"/>
<%
}else{ // 登陆失败,跳转到failure.jsp
request.getSession().setAttribute("error", "注册");

%>
<jsp:forward page="error.jsp"/>
<%
}


}else{}
%>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>


<title>My JSP ‘register.jsp‘ starting page</title>

</head>

<body>

<div class="loginbox registbox">

<div class="login-content reg-content">
<div class="loginbox-title">
<h3>注册</h3>
</div>
<form id="signupForm" action="register.jsp" method="post">

<div class="row">
<label class="field" for="email">用户名</label>
<input type="text" class="input-text-user noPic input-click" name="username" id="email">
</div>
<div class="row">
<label class="field" for="password">密码</label>
<input type="password" value="" class="input-text-password noPic input-click" name="password" id="password">
</div>

<div class="row">
<label class="field" for="contact">联系人</label>
<input type="text" value="" class="input-text-user noPic input-click" name="linkman" id="contact">
</div>
<div class="row">
<label class="field" for="company">公司名</label>
<input type="text" value="" class="input-text-user noPic input-click" name="company" id="company">
</div>
<div class="row">
<label class="field" for="tel">公司电话</label>
<input type="text" value="" class="input-text-user noPic input-click" name="companytel" id="tel">
</div>
<div class="row">
<label class="field" for="qq">QQ</label>
<input type="text" value="" class="input-text-user noPic input-click" name="qq" id="qq">
</div>

<div class="row btnArea">
<button class="login-btn" id="submit">注册</button>
</div>
</form>
</div>
<div class="go-regist">
已有帐号,请<a href="/Demo/login.jsp" class="link">登录</a>
</div>
</div>
</body>
</html>

 

登录成功:

<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<base href="<%=basePath%>">

<title>My JSP ‘success.jsp‘ starting page</title>


</head>

<body>
${sessionScope.success }成功! <br>
</body>
</html>

 

登录失败:

<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<base href="<%=basePath%>">

<title>My JSP ‘error.jsp‘ starting page</title>

</head>

<body>
${sessionScope.error }失败 <br>
</body>
</html>

jsp链接数据库

标签:

热心网友 时间:2022-05-01 05:20

用JDBC技术
创建数据库连接,分为以下几步:
1.装载并注册数据库的JDBC驱动程序
2.取得数据库连接
3.建立Statement 对象
4.准备并执行调用SQL语句
5.处理ResultSet中的记录集
6.释放资源
第一步
加载驱动程序
try{ //装载MySQL数据库驱动
Class.forName("com.mysql.jdbc.Driver");
}
catch(ClassNotFoundException e)
{
e.printStackTrace();
}
注意:在使用JDBC之前,要在文件前导入有关SQL的类即
import java.sql.*
第二步
取得数据库连接
try{
String url="jdbc:mysql://localhost:3306/student;
String user="root";
String password="1234";
con=DriverManager.getConnection(url,user,password);
}
catch(SQLException e)
{
e.printStackTrace();
}
第三步
建立Statement 对象
try{
Statement sql=con.createStatement();
}
catch(SQLException e)
{
e.printStackTrace();
}
第四步
执行各种SQL语句
try{
ResultSet rs=sql.executeQuery(
"select * from student");
}
catch(SQLException e)
{
e.printStackTrace();
}
第五步
获取查询结果
ResultSet rs=sql.executeQuery(
"select * from student");
while(rs.next())
{
rs.getString(2)或者是rs.getString("name");
rs.getInt(3)或者是rs.getInt("age");
}
注意
只有select语句才会有结果集返回;
ResultSet对象一次只能看到一个数据行
使用next()方法走到下一数据行
获得一行数据后,ResultSet对象可以使用getXxx()方法获得字段值,将位置索引或字段名传递给get第六步
关闭创建的各个对象(后打开的先关)
rs.close();
sql.close();
con.close();Xxx方法()即可。

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com