一、报错解决办法
问题:Could not retrieve transation read-only status server
我的错误解决方案:mysql和用于mysql连接的jar包版本不合适,看自己的mysql和用于mysql连接的jar包版本是否合适,我就是因为mysql版本8.0.30,jar包版本5点几,所以一直报错,解决办法下载指定jar包并导入
1.解决尝试一:管理员命令行进入mysql
查看当前MySQL数据库的事务隔离级别,输入命令 “ show variables like ‘transaction_%’; ”
将隔离级别修改为 -> READ-COMMITTED 即可,输入命令 “ SET GLOBAL transaction_isolation=‘READ-COMMITTED’; ” 即可解决该问题了。
2.解决尝试二:
设置等待时间,通过show global variables like ‘%timeout%’;
SET GLOBAL wait_timeout=86400;
3.解决尝试三: 看自己的mysql和用于mysql连接的jar包版本是否合适,我就是因为mysql版本8.0.30,jar包版本5点几,所以一直报错,解决办法下载指定jar包并导入
二、代码
填写上报信息shangbao.jsp
<%@ page language="java" contentType="text/html; charset=utf-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="ISO-8859-1">
<title>研讨课上报</title>
<link rel="stylesheet" href="../css/shangbao.css"/>
<link rel="shortcut icon" href="#"/>
</head>
<body>
研讨课上报页面
<div id="shangbao_div" class="shangbao_div" >
<form method="post" id="shangbao_form" action="test2.jsp">
<table align="center" border="0" cellspacing="5" class="shangbao_table">
<tr><td colspan="2" class="shangbao_table_title" >请在下方填写您的研讨课信息</td></tr>
<tr><td style="width:70px;">授课人:</td><td><input type="text" class="shangbao_table_shoukeren" id="shangbao_table_shoukeren" name="shangbao_table_shoukeren"></td></tr>
<tr><td>研讨主题:</td><td><textarea name="shangbao_table_yantaozhuti" class="shangbao_table_yantaozhuti" id="shangbao_table_yantaozhuti" cols="30" rows="3" align="center"></textarea></td></tr>
<tr><td><button type="reset" class="shangbao_table_chongzhi">重置</button></td>
<td><input class="shangbao_table_shangbao" type="submit" name="shangbaoanniu" value="上报"></td></tr>
</table>
</form>
</div>
</body>
</html>
jsp将网页填写信息写入数据库test2.jsp
<%@ page language="java" contentType="text/html" pageEncoding="gbk"%>
<!DOCTYPE html>
<%@page import="java.sql.*"%>
<%@page import="javax.sql.*"%>
<html>
<head>
<meta charset="ISO-8859-1">
<title>上报信息</title>
</head>
<%
String shoukeren=request.getParameter("shangbao_table_shoukeren");
String yantaozhuti=request.getParameter("shangbao_table_yantaozhuti");
Connection con;
Statement st;
ResultSet rs;
String sql;
try{
//Class.forName("org.gjt.mm.mysql.Driver");
Class.forName("com.mysql.jdbc.Driver").newInstance();
}catch(ClassNotFoundException e){
out.print(e.getMessage());
}
try{
con=DriverManager.getConnection("jdbc:mysql://127.0.0.1:3306/yantaoke?useUnicode=true&characterEncoding=utf-8&serverTimezone=GMT%2B8","root","");
String sql_insert="insert into kecheng(shoukeren,yantaozhuti) values ('"+shoukeren+"','"+yantaozhuti+"')";
PreparedStatement pst=con.prepareStatement(sql_insert);
int count=pst.executeUpdate();
//st=con.createStatement();
//sql="INSERT INTO kecheng(shoukeren,yantaozhuti) VALUES(shoukeren,yantaozhuti)";
//rs = excuteUpdate(sql);
response.sendRedirect("result.jsp");
con.close();
}catch(SQLException h){
out.print("数据库连接错误!,错误信息如下:<br>");
out.print(h.getMessage());
}
%>
结果显示页面result.jsp
<%@ page language="java" contentType="text/html; charset=utf-8"%>
<!DOCTYPE html>
<%@page import="java.sql.*"%>
<%@page import="javax.sql.*"%>
<html>
<head>
<meta charset="ISO-8859-1">
<title>结果安排</title>
<link rel="stylesheet" href="../css/result.css"/>
</head>
<body>
结果安排页面
<%
Connection con;
Statement st;
ResultSet rs;
String sql;
try{
//Class.forName("org.gjt.mm.mysql.Driver");
Class.forName("com.mysql.jdbc.Driver").newInstance();
}catch(ClassNotFoundException e){
out.print(e.getMessage());
}
try{
con=DriverManager.getConnection("jdbc:mysql://127.0.0.1:3306/yantaoke?useUnicode=true&characterEncoding=utf-8&serverTimezone=GMT%2B8","root","");
st=con.createStatement();
sql="select * from kecheng";
rs = st.executeQuery(sql);
out.print("<table align='center' border>");
out.print("<tr>");
out.print("<td>shoukeren</td>");
out.print("<td>yantaozhuti</td>");
out.print("</tr>");
while(rs.next()){
out.print("<tr>");
out.print("<td>"+rs.getString("shoukeren")+"</td>");
out.print("<td>"+rs.getString("yantaozhuti")+"</td>");
out.print("</tr>");
}
out.print("</table>");
con.close();
}catch(SQLException h){
out.print("数据库连接错误!,错误信息如下:<br>");
out.print(h.getMessage());
}
%>
</body>
</html>
运行结果显示: