加入收藏 | 设为首页 | 会员中心 | 我要投稿 聊城站长网 (https://www.0635zz.com/)- 智能语音交互、行业智能、AI应用、云计算、5G!
当前位置: 首页 > 教程 > 正文

包含 MYSQL 数据库功能的 JSP 的源代码

发布时间:2023-07-21 14:02:00 所属栏目:教程 来源:
导读:最近研究了jsp的数据库操作问题。本来我是要拿oracle数据库来测试的。但是由于机子的内存限制,就换成了mysql数据库了。

第一次用jsp编数据库的连接,发现问题还真不少。刚开始是jdbc配置就有问题,后来数据库连
最近研究了jsp的数据库操作问题。本来我是要拿oracle数据库来测试的。但是由于机子的内存限制,就换成了mysql数据库了。
 
第一次用jsp编数据库的连接,发现问题还真不少。刚开始是jdbc配置就有问题,后来数据库连接好了,中文设置也是个问题。后来还有sql语句的写法问题出现了不少。经过三天的努力,这些问题都给解决掉了。
 
下面把我这三天测试的代码写给大家看看:
 
第一个是javabean的数据库的连接代码,文件名字是LoginData.java:
 
package data;
 
import java.sql.*;
 
public class LoginData{
 
//定义mysql的连接地址
 
//String url="jdbc:odbc:logindemo";
 
Connection conn=null;
 
//Statement stmt=null;
 
//DatabaseMetaData dbmd=null;
 
public LoginData(){
 
this.connect();
 
}
 
public Connection getConn(){
 
return this.conn;
 
}
 
public boolean connect(){
 
try{
 
//使用JDBC桥创建数据库连接
 
Class.forName("org.gjt.mm.mysql.Driver").newInstance();
 
//使用DriverManager类的getConnection()方法建立连接
 
//第一个参数定义用户名,第二个参数定义密码
 
this.conn=java.sql.DriverManager.getConnection("jdbc:mysql://localhost:3306/logindemo?useUnicode=true&characterEncoding=gb2312","root","123456");
 
//stmt=conn.createStatement();
 
//dbmd=conn.getMetaData();
 
}catch(Exception ex){
 
ex.printStackTrace();
 
return false;
 
}
 
return true;
 
}
 
}
 
下面是测试代码的界面代码dbcode.jsp:
 
<%@ page contentType="text/html; charset=gb2312" pageEncoding="GB2312" language="java" import="java.sql.*" errorPage="" %>
 
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 
<html xmlns="http://www.w3.org/1999/xhtml">
 
<head>
 
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
 
<title>无标题文档</title>
 
<script type="text/JavaScript">
 
<!--
 
function checknull() {
 
if(document.form1.id.value==null){
 
document.form1.id.value=1;
 
}
 
}
 
//-->
 
</script>
 
</head>
 
<body>
 
<jsp:useBean id="loginData" scope="page" class="data.LoginData"/>
 
<%
 
request.setCharacterEncoding("gb2312");
 
try{
 
Connection conn=loginData.getConn();
 
Statement stmt=conn.createStatement();
 
String sql="select * from userinfo";
 
ResultSet rs=stmt.executeQuery(sql);
 
rs.last();
 
int id=rs.getInt(1);
 
session.setAttribute("id",id+1);
 
rs.close();
 
stmt.close();
 
conn.close();
 
}catch(Exception e){
 
e.printStackTrace();
 
}
 
%>
 
<p>数据库的操作:</p>
 
<form id="form1" name="form1" method="post" action="createtable.jsp">
 
<label>
 
<input name="createtable" type="submit" id="createtable" value="创建表:userinfo" />
 
<%=session.getAttribute("userinfo")%>
 
<input name="insertnum" type="submit" id="insertnum" value="向表插入如下数据" /><%=session.getAttribute("insertsql")%>
 
  
 
<input name="inserttennum" type="submit" id="inserttennum" value="插入10条数据" />
 
<%=session.getAttribute("insertten")%><br />
 
   </label>
 
        
 
<table width="664" height="86" border="2">
 
<tr>
 
<td width="168" height="41">id</td>
 
<td width="223">学号</td>
 
<td width="249">姓名</td>
 
</tr>
 
<tr>
 
<td height="35" align="center" valign="middle"><input name="id" type="text" id="id" onblur="checknull" value="<%=session.getAttribute("id")%>" /></td>
 
<td align="center" valign="middle"><label>
 
<input name="xuehao" type="text" id="xuehao" />
 
_1~10
 
</label></td>
 
<td align="center" valign="middle"><label>
 
<input name="name" type="text" id="name" />
 
_1~10
 
</label></td>
 
</tr>
 
</table>
 
<p>姓名:
 
<input name="selectnametext" type="text" id="selectnametext" />
 
<input name="selectname" type="submit" id="selectname" value="查询数据" />
 
   姓名:
 
<input name="deletename" type="text" id="deletename" />
 
<input name="deletenum" type="submit" id="deletenum" value="删除数据" />
 
<%=session.getAttribute("deletenames")%></p>
 
<p>学号:
 
<input name="xuehao2" type="text" id="xuehao2" />
 
  姓名:
 
<label>
 
<input name="name2" type="text" id="name2" />
 
<input name="select_name" type="submit" id="select_name" value="查询" />
 
</label>
 
<input name="updatanum" type="submit" id="updatanum" value="修改" />
 
</p>
 
<%
 
if(request.getAttribute("data")!=null){
 
String[][] data=(String[][])request.getAttribute("data");
 
out.println("查询结果显示如下:");
 
if(data[0].length>1){
 
out.print("<table border='2' width='70%'>");
 
out.print("<tr><td>序号</td><td>学号</td><td>姓名</td></tr>");
 
for(int i=0;i<data.length;i++){
 
out.print("<tr>");
 
for(int j=0;j<3;j++){
 
out.print("<td>"+ data[i][j] +"</td>");
 
}
 
}
 
out.print("</table>");
 
}else{
 
out.println(data[0][0]);
 
}
 
}
 
%>
 
</form>
 
<p> </p>
 
<p>  </p>
 
</body>
 
</html>
 
 
 
下面是上面的界面调用的jsp页面来处理数据库的代码,包括创建表,表的增删该等操作:
 
<%@ page contentType="text/html; charset=gb2312" pageEncoding="GB2312" language="java" import="java.sql.*" errorPage="" %>
 
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 
<html xmlns="http://www.w3.org/1999/xhtml">
 
<head>
 
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
 
<title>无标题文档</title>
 
</head>
 
<body>
 
<jsp:useBean id="loginData" scope="page" class="data.LoginData"/>
 
<%
 
request.setCharacterEncoding("gb2312");
 
%>
 
<%
 
//向数据库里创建表的代码
 
String createtable=request.getParameter("createtable");
 
if(createtable!=null){
 
try{
 
String sql="create table userinfo(id int primary key auto_increment,xuehao varchar(20),name varchar(20));";
 
Connection conn=loginData.getConn();
 
Statement stmt=conn.createStatement();
 
stmt.execute(sql);
 
session.setAttribute("userinfo","表userinfo创建成功!");
 
stmt.close();
 
conn.close();
 
}catch(Exception ex){
 
ex.printStackTrace();
 
session.setAttribute("userinfo","表userinfo已经创建过了!");
 
}
 
}
 
%>
 
 
<%
 
//向数据库里的表添加数据的代码
 
String insertnum=request.getParameter("insertnum");
 
if(insertnum!=null){
 
try{
 
String xuehao=request.getParameter("xuehao");
 
String name=request.getParameter("name");
 
String insertsql="insert into userinfo(xuehao,name) values(?,?)";
 
Connection conn=loginData.getConn();
 
PreparedStatement pstmt=conn.prepareStatement(insertsql) ;
 
pstmt.setString(1,xuehao);
 
pstmt.setString(2,name);
 
pstmt.execute();
 
session.setAttribute("insertsql","成功插入一条数据");
 
pstmt.close();
 
conn.close();
 
}catch(Exception ex){
 
ex.printStackTrace();
 
session.setAttribute("insertsql","插入数据不成功,请检查后重新插入");
 
}
 
}
 
%>
 
<%
 
//批量添加数据
 
String inserttennum=request.getParameter("inserttennum");
 
if(inserttennum!=null){
 
try{
 
String xuehao=request.getParameter("xuehao");
 
String name=request.getParameter("name");
 
Connection conn=loginData.getConn();
 
Statement stmt=conn.createStatement();
 
int j=100000;
 
for(int i=0;i<j;i++){
 
String insertsql="insert into userinfo(xuehao,name) values('"+ xuehao + i + "','"+ name + i +"')";
 
stmt.execute(insertsql);
 
}
 
session.setAttribute("insertten","成功插入"+ j +"条数据");
 
conn.close();
 
stmt.close();
 
}catch(Exception ex){
 
ex.printStackTrace();
 
session.setAttribute("insertten","插入数据不成功,请检查后重新插入");
 
}
 
}
 
%>
 
 
 
<% //查询表的数据代码
 
String selectname=request.getParameter("selectname");
 
String[][] data;
 
if(selectname!=null){
 
try{
 
Connection conn=loginData.getConn();
 
Statement stmt=conn.createStatement();
 
ResultSet rs;
 
String selectnametext=request.getParameter("selectnametext");
 
String sqlcount="select count(*) from userinfo where name like '%" + selectnametext +"%'";
 
rs=stmt.executeQuery(sqlcount);
 
rs.next();
 
int rowCount=rs.getInt(1);
 
if(rowCount>0){
 
data=new String[rowCount][3];
 
String sql="select * from userinfo where name like '%" + selectnametext +"%'";
 
rs=stmt.executeQuery(sql);
 
int row=0;
 
while(rs.next()){
 
for(int i=0;i<3;i++){
 
data[row][i]=rs.getString(i+1);
 
}
 
row++;
 
}
 
}else{
 
data=new String[1][1];
 
data[0][0]="找不到与"+ selectnametext + "相关内容";
 
}
 
request.setAttribute("data",data);
 
conn.close();
 
stmt.close();
 
rs.close();
 
}catch(Exception ex){
 
ex.printStackTrace();
 
}
 
}
 
%>
 
<%
 
//删除数据代码
 
String deletenum=request.getParameter("deletenum");
 
if(deletenum!=null){
 
try{
 
String deletename=request.getParameter("deletename");
 
Connection conn=loginData.getConn();
 
Statement stmt=conn.createStatement();
 
String deletesql="delete from userinfo where name like '%"+ deletename +"%'";
 
int deletenums=stmt.executeUpdate(deletesql);
 
session.setAttribute("deletenames","成功删除"+ deletenums +"条数据");
 
stmt.close();
 
conn.close();
 
}catch(Exception ex){
 
ex.printStackTrace();
 
session.setAttribute("deletenames","删除不成功");
 
}
 
}
 
%>
 
<jsp:forward page="dbcode.jsp" />
 
</body>
 
</html>
 
 
 
 

(编辑:聊城站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!