jsp怎么连接mysql数据库

jsp怎么连接mysql数据库,第1张

我写的一个用JSP连接MySQL数据库的代码。

要正确的使用这段代码,你需要首先在MySQL数据库里创建一username表,表里面创建两个字符型的字段,字段名分别为:uid,pwd,然后插入几条测试数据。

以下用两种方式来实现JSP连接MySql数据库。

第一种方式,用JSP实现。

<%@ page contentType="text/htmlcharset=gb2312" language="java"

import="java.sql.*"%>

<%

//**************************************

********* JDBC_ODBC连接MySql数据库,不需要设置数据源

*********************************/

//********** 数据库连接代码 开始 ******/

//以下几项请自行修改

String server="localhost" //MYSQL 服务器的地址

String dbname="test" //MYSQL 数据库的名字

String user="root" //MYSQL 数据库的登录用户名

String pass="chfanwsp" //MYSQL 数据库的登录密码

String port="3306" //SQL Server 服务器的端口号,默认为1433

//数据库连接字符串

String url ="jdbc:mysql://"+server+":"+port+"/"+dbname+"?user="+user+

"&password="+pass+"&useUnicode=true&characterEncoding=GB2312"

//加载驱动程序

Class.forName("org.gjt.mm.mysql.Driver").newInstance()

//建立连接

Connection conn= DriverManager.getConnection(url)

//创建语句对象

Statement stmt=conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,

ResultSet.CONCUR_UPDATABLE)

// **** 数据库连接代码 结束 *******

String sql="select * from username"

ResultSet rs=stmt.executeQuery(sql)

//rs.first()

while(rs.next()){

out.print("用户名:")

out.print(rs.getString("uid")+" 密码:")

out.println(rs.getString("pwd")+"

")

}

rs.close()

stmt.close()

conn.close()

%>

第二种方式,用JavaBean来实现。请看代码:

DBConnMySql.java

编译以后的Class文件应该放在WEB-INF\classes\conn目录下。

package conn //导入包

import java.sql.* //导入数据库 *** 作的类

public class DBConnMySql//构造方法,初始化

{

private Connection conn //连接对象

private Statement stmt //语句对象

private ResultSet rs //结果集对象

private String MySqldriver//MYSQL Server驱动程序字符串

private String MySqlURL//MYSQL Server连接字符串

//********************************

*用 org.gjt.mm.mysql.Driver 驱动

* 该方法取得连接所需各种参数,组成连接字符串,然后再建立连接

* serverdbname,user,pass,port 分别表示MYSQL 服务器的地址,

* 数据库,用户名,密码,端口

**********************************/

public Connection getConnToMySql(String server,String dbname,

String user,String pass,String port){

//MYSQl驱动程序

MySqldriver = "org.gjt.mm.mysql.Driver"

MySqlURL = "jdbc:mysql://" //连接字符串一部分

try{

//完整的连接字符串

MySqlURL =MySqlURL+server+":"+port+"/"+dbname+

"?user="+user+"&password="+pass+

"&useUnicode=true&characterEncoding=GB2312"

Class.forName(MySqldriver)

conn = DriverManager.getConnection(MySqlURL)

}catch(Exception e){

System.out.println(" *** 作数据库出错,请仔细检查")

//System.err.println(e.getMessage())

}

return conn

}

//关闭数据库连接

public void close()

{

try{

//rs.close()

//stmt.close()

conn.close()

}catch(SQLException sqlexception){

sqlexception.printStackTrace()

}

}

}

这个文件只是实现了数据库的连接,下面我们再写一个测试文件。

就是用sql语句从数据库里查询出记录,以验证我们数据库的连接是否成功。

connmysql.jsp文件源代码如下:

<%@ page contentType="text/htmlcharset=gb2312" language="java"

import="java.sql.*" %>

<%

//以下几项请自行修改

String server="localhost" //MYSQL 服务器的地址

String dbname="test" //MYSQL 数据库的名字

String user="root" //MYSQL 数据库的登录用户名

String pass="chfanwsp" //MYSQL 数据库的登录密码

String port="3306" //SQL Server 服务器的端口号,默认为1433

Connection conn=DBConn.getConnToMySql(server,dbname,user,pass,port)

Statement stmt=conn.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,

ResultSet.CONCUR_READ_ONLY)

String sql="select * from username"

String sql1="insert into username (uid,pwd) values('梦想年华','梦想年华')"

stmt.executeUpdate(sql1)

ResultSet rs=stmt.executeQuery(sql)

while(rs.next()){

out.print("用户名:")

out.print(rs.getString("uid")+" 密码:")

out.println(rs.getString("pwd")+"

")

}

//rs.close()

//stmt.close()

//conn.close()

DBConn.close()

%>

获取表单中的信息,然后插入到Mysql中 

<%@ page language="java" contentType="text/html charset=gbk"

    pageEncoding="gbk"%>

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">

<%

int id = Integer.parseInt(request.getParameter("id"))

int rootid = Integer.parseInt(request.getParameter("rootid"))

%>

<html>

<head>

<meta http-equiv="Content-Type" content="text/html charset=gbk">

<title>Replay</title>

</head>

<body>

<form method="post" action="ReplayOK.jsp">

 <input type="hidden" name="id" value="<%=id %>">

 <input type="hidden" name="rootid" value="<%=rootid %>">

<table align="center">

 <tr>

  <td>

   <input type="text" name="title" size="80">

  </td>

 </tr>

 <tr>

  <td>

   <textarea cols="80" rows="20" name="cont"></textarea>

  </td>

 </tr>

 <tr>

  <td>

   <input type="submit" value="提交">

  </td>

 </tr>

</table>

</form>

</body>

</html>

---------------------------------------------------------------

下面接收上面表单中传过来的信息,并插入到mysql中

<%@ page language="java" contentType="text/html charset=gbk"

    pageEncoding="gbk"%>

<%@ page import="java.sql.*" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">

<%

request.setCharacterEncoding("GBK")

int id = Integer.parseInt(request.getParameter("id"))

int rootid = Integer.parseInt(request.getParameter("rootid"))

String title = request.getParameter("title")

String cont = request.getParameter("cont").replaceAll("\n","<br/>")

Connection conn = null

Statement st = null

Class.forName("com.mysql.jdbc.Driver")

conn = DriverManager.getConnection("jdbc:mysql://localhost/bbs?user=root&password=690115399")

st = conn.createStatement()

conn.setAutoCommit(false)

String sql = "insert into article values(null,?,?,?,?,now(),0)"

PreparedStatement pstmt = conn.prepareStatement(sql)

pstmt.setInt(1,id)

pstmt.setInt(2,rootid)

pstmt.setString(3,title)

pstmt.setString(4,cont)

pstmt.executeUpdate()

st.executeUpdate("update article set isleaf = 1 where id = " + id)

conn.commit()

conn.setAutoCommit(true)

st.close()

pstmt.close()

conn.close()

%>

<html>

<head>

<meta http-equiv="Content-Type" content="text/html charset=gbk">

<title>Insert title here</title>

</head>

<body>

<%response.sendRedirect("ShowArticleTree.jsp") %>

</body>

</html>

当然最好的方法还是应该用jsp + JavaBean方式。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/7178280.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-02
下一篇 2023-04-02

发表评论

登录后才能评论

评论列表(0条)

保存