JSP的MYSQL数据库的代码_JSP教程
推荐:jsp验证码使用jsp验证码使用 yanzhe,jsp %@ page autoFlush=false import=java.awt.*,java.awt.image.*,com.sun.image.codec.jpeg.*,java.util.*% %@ page import=org.apache.commons.lang.RandomStringUtils% % RandomStringUtils rs=new RandomStringUtils(); Str
最近研究了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>
分享:jsp自动生成静态文件(html)jsp自动生成静态文件(html): html.jsp %@ page contentType=text/html;charset=utf-8% %@page import=cn.nbaia.newPage.newsPage.*,cn.nbaia.newPage.newsImg.*,java.util.*,cn.nbaia.newPage.columnPage.*,cn.nbaia.company.*,cn.nbaia.link.* % %@page
- jsp response.sendRedirect不跳转的原因分析及解决
- JSP指令元素(page指令/include指令/taglib指令)复习整理
- JSP脚本元素和注释复习总结示例
- JSP FusionCharts Free显示图表 具体实现
- 网页模板:关于jsp页面使用jstl的异常分析
- JSP页面中文传递参数使用escape编码
- 基于jsp:included的使用与jsp:param乱码的解决方法
- Java Web项目中连接Access数据库的配置方法
- JDBC连接Access数据库的几种方式介绍
- 网站图片路径的问题:绝对路径/虚拟路径
- (jsp/html)网页上嵌入播放器(常用播放器代码整理)
- jsp下显示中文文件名及绝对路径下的图片解决方法
- 相关链接:
- 教程说明:
JSP教程-JSP的MYSQL数据库的代码。