本文将为大家展示下jsp连接MySQL执行插入操作的功能
具体的示例及代码如下
感兴趣的朋友可以了解下
下午终于实现了jsp连接MySQL执行插入操作的功能在indexjsp页面输入数据提交到mysql——insertjsp页面进行插入数据库的操作
indexjsp页面代码如下
复制代码 代码如下:
<%@ page language="java" pageEncoding="utf
"%>
<%@ page contentType="text/html;charset=utf
"%>
<%
request
setCharacterEncoding("UTF
");
response
setCharacterEncoding("UTF
");
response
setContentType("text/html; charset=utf
");
%>
<html>
<head>
</head>
<body>
<form action="mysql_insert
jsp" method="post">
ID :<input type = "text" name="id" value="
"/>
姓名 :<input type = "text" name="name" value="aaa"/>
性别 :<input type = "text" name="sex" value="female"/>
年龄 :<input type = "text" name="age" value="
"/>
</br>
<input type = "submit" value="提交"/>
</form>
</body>
</html>
mysql——insertjsp的代码如下
复制代码 代码如下:
<%@ page language="java" import="java
util
*
java
sql
*" pageEncoding="utf
"%>
<%@ page contentType="text/html;charset=utf
"%>
<%
request
setCharacterEncoding("UTF
");
response
setCharacterEncoding("UTF
");
response
setContentType("text/html; charset=utf
");
%>
<html>
<head>
<title>add message into table </TITLE>
</head>
<body>
<%
String id=request
getParameter("id"); //从表单获得
String name=request
getParameter("name"); //从表单获得
String sex=request
getParameter("sex"); //从表单获得
String age=request
getParameter("age"); //从表单获得
java
util
Date date=new java
util
Date();
String datetime=new Timestamp(date
getTime())
toString();
try
{
/** 连接数据库参数 **/
String driverName = "com
mysql
jdbc
Driver"; //驱动名称
String DBUser = "root"; //mysql用户名
String DBPasswd = "
"; //mysql密码
String DBName = "html_db"; //数据库名
String connUrl = "jdbc:mysql://localhost/" + DBName + "?user=" + DBUser + "&password=" + DBPasswd;
Class
forName(driverName)
newInstance();
Connection conn = DriverManager
getConnection(connUrl);
Statement stmt = conn
createStatement();
stmt
executeQuery("SET NAMES UTF
");
String insert_sql = "insert into person_tb values(
" + id + "
" + name + "
" + sex + "
" + age + "
)";
String query_sql = "select * from person_tb";
try {
stmt
execute(insert_sql);
}catch(Exception e) {
e
printStackTrace();
}
try {
ResultSet rs = stmt
executeQuery(query_sql);
while(rs
next()) {
%>
ID
<%=rs
getString("id")%> </br>
姓名
<%=rs
getString("name")%> </br>
性别
<%=rs
getString("sex")%> </br>
年龄
<%=rs
getString("age")%> </br> </br>
<%
}
}catch(Exception e) {
e
printStackTrace();
}
//rs
close();
stmt
close();
conn
close();
}catch (Exception e) {
e
printStackTrace();
}
%>
</body>
</html>
访问indexjsp后的页面
输入测试数据提交后得到如下页面
数据库的变化情况如下
关于jsp连接MySQL数据库时的乱码问题
在 输入数据的页面的编码方式要使用GB或者GBK同时在接收数据的页面的编码方式要使用UTF才能保证完全不会出现乱码如上面的例子在 indexjsp输入数据所以其使用<%@ page contentType="text/html;charset=gb"%>语句指明使用GB编码而 mysql_insertjsp接收数据所以其使用<%@page language="java" pageEncoding="UTF"%>语句指明使用UTF编码
而对于从MySQL中拿出数据并显示的页面其编码方式也要 使用GB如下面的mysql_queryjsp文件例子就使用了<%@ page contentType="text/html;charset=gb"%>语句指明了编码方式
tomcat默认按照iso对url进行编码所以要进行相应转换
复制代码 代码如下:
<%@ page contentType="text/html;charset=gb"%>
<%@ page import="javasql*"%>
<html>
<body>
<%
Connection con=null;
String url="jdbc:mysql://localhost/html_db?user=root&password=&useUnicode=true&characterEncoding=_";
//html_db为数据库名
ClassforName("orggjtmmmysqlDriver")newInstance();//新建实例
Connection conn= DriverManagergetConnection(url);//建立连接
Statement stmt=conncreateStatement(ResultSetTYPE_SCROLL_SENSITIVEResultSetCONCUR_UPDATABLE);
String sql="select * from person_tb";
ResultSet rs=stmtexecuteQuery(sql);
while(rsnext()) {%>
ID<%=rsgetString("id")%> </br>
姓名<%=rsgetString("name")%> </br>
性别<%=rsgetString("sex")%> </br>
年龄<%=rsgetString("age")%> </br> </br>
<%}%>
<%outprint("数据库操作成功恭喜你!");%>
<%
rsclose();
stmtclose();
connclose();
%>
</body>
</html>