jsp導入mysql代碼,jsp連接MySQL數據庫

本文目錄一覽:

jsp頁面中怎麼導入jdbc連接mysql

在項目lib中加入mysql的jar包,然後寫jdbc鏈接信息即可,如下提供多種鏈接方式希望對你有幫助

JDBC連接MySQL

加載及註冊JDBC驅動程序

Class.forName(“com.mysql.jdbc.Driver”);

Class.forName(“com.mysql.jdbc.Driver”).newInstance();

JDBC URL 定義驅動程序與數據源之間的連接

標準語法:

protocol(主要通訊協議):subprotocol(次要通訊協議,即驅動程序名稱):data source identifier(數據源)

MySQL的JDBC URL格式:

jdbc:mysql//[hostname][:port]/[dbname][?param1=value1][param2=value2]….

 

示例:jdbc:mysql://localhost:3306/sample_db?user=rootpassword=your_password

 

常見參數:

user                       用戶名

password                  密碼

autoReconnect                  聯機失敗,是否重新聯機(true/false)

maxReconnect              嘗試重新聯機次數

initialTimeout               嘗試重新聯機間隔

maxRows                   傳回最大行數

useUnicode                 是否使用Unicode字體編碼(true/false)

characterEncoding          何種編碼(GB2312/UTF-8/…)

relaxAutocommit            是否自動提交(true/false)

capitalizeTypeNames        數據定義的名稱以大寫表示

建立連接對象

String url=”jdbc:mysql://localhost:3306/sample_db?user=rootpassword=your_password”;

Connection con = DriverManager.getConnection(url);

建立SQL陳述式對象(Statement Object)

Statement stmt = con.createStatement();

執行SQL語句

executeQuery()

String query = “select * from test”;

ResultSet rs=stmt.executeQuery(query);

結果集ResultSet

while(rs.next())

{rs.getString(1);rs.getInt(2);}

executeUpdate()

String upd=”insert into test (id,name) values(1001,xuzhaori)”;

int con=stmt.executeUpdate(upd);

execute()

示例:

try

 

 

{

 

 

 

 

 

}

catch(SQLException sqle)

{

}

finally

{

}

 

Java類型和SQL類型 技術手冊P421

PreparedStatement(預編語句)

PreparedStatement stmt = conn.prepareStatement(“insert into test(id,name)values(?,?)”);

stmt.setInt(1,id);

stmt.setString(2,name);

註:一旦設定語句的參數值後,就可以多次執行改語句,直到調用clearParameters()方法將他清除為止

CallableStatement(預儲程序)技術手冊P430

JDBC2.0使用

ResultSet對象中的光標上下自由移動

Statement stmt = con.createStatement (ResultSet.TYPE_SCROLL_SENSITIVE, ResultSet.CONCUR_READ_ONLY);

ResultSet rs=stmt.executeQuery(“select * from test”);

 

public Statement createStatement(int resultSetType,int resultSetConcuttency) throws SQLException

 

resultSetType

TYPE_FORWARD_ONLY            只能使用next()方法。

TYPE_SCROLL_SENSITIVE        可以上下移動,可以取得改變後的值。

TYPE_SCROLL_INSENSITIVE      可以上下移動。

resultSetConcuttency

CONCUR_READ_ONLY        只讀

CONCUR_UPDATABLE        ResultSet對象可以執行數據庫的新增、修改、和移除

 

直接使用ResultSet對象執行更新數據

新增數據

Statement stmt=con.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_PUDATABLE);

ResultSet uprs=stmt.executeQuery(“select * from test”);

uprs.moveToInsertRow();

uprs.updateInt(1,1001);

uprs.updateString(2,”許召日”);

uprs.insertRow;

更新數據

Statement stmt=con.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_PUDATABLE);

ResultSet uprs=stmt.executeQuery(“select * from test”);

uprs.last();

uprs.updateString(“name”,””);

uprs.updateRow;

刪除數據

Statement stmt=con.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_PUDATABLE);

ResultSet uprs=stmt.executeQuery(“select * from test”);

uprs.absolute(4);

uprs.deleteRow();

 

批處理

con.setAutoCommit(false); 關閉自動認可模式

Statement stmt=con.createStatement();

int[] rows;

stmt.addBatch(“insert into test values(1001,xuzhaori)”);

stmt.addBatch(“insert into test values(1002,xuyalin)”);

rows=stmt.executeBatch();

con.commit(); 沒有任何錯誤,執行批處理stmt.executeBatch();

 

JNDI-數據源(Data Source)與連接池(Connection Pool)

Tomcat的JDBC數據源設置 技術手冊P439

連接池工具-Proxool Var 0.8.3 技術手冊P446

設置web.xml

?xml version=”1.0″ encoding=”ISO-8859-1″?

!–?xml version=”1.0″ encoding=”GB2312″?–

 

web-app xmlns=””

xmlns:xsi=””

xsi:schemaLocation=””

version=”2.4″

….

servlet

servlet-nameServletConfigurator/servlet-name

servlet-classorg.logicalcobwebs.proxool.configuration.ServletConfigurator/servlet-class

 

init-param

param-namepropertyFile/param-name

param-valueWEB-INF/classes/Proxool.properties/param-value

/init-param

load-on-startup1/load-on-startup

/servlet

後端統計端口添加下列

servlet

servlet-nameAdmin/servlet-name

servlet-classorg.logicalcobwebs.proxool.admin.servlet.AdminServlet/servlet-class

/servlet

 

servlet-mapping

servlet-nameAdmin/servlet-name

url-pattern/Admin/url-pattern

/servlet-mapping

 

….

 

/web-app

 

配置Proxool.properties

jdbc-0.proxool.alias=JSPBook

jdbc-0.proxool.driver-class=com.mysql.jdbc.Driver

jdbc-0.proxool.driver-url=jdbc:mysql://localhost:3306/sample_db?user=rootpassword=browseruseUnicode=truecharacterEncoding=UTF-8

jdbc-0.proxool.maximum-connection-count=10

jdbc-0.proxool.prototype-count=4

jdbc-0.proxool.house-keeping-test-sql=select CURRENT_DATE

jdbc-0.proxool.verbose=true

jdbc-0.proxool.statistics=10s,1m,1d    後端統計接口添加此行

jdbc-0.proxool.statistics-log-level=DEBUG

使用Proxool連接池

Connection con = DriverManager.getConnection(“proxool.JSPBook”);

Statement stmt = con.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE, ResultSet.CONCUR_UPDATABLE);

String query = “SELECT * FROM employee”;

ResultSet rs = stmt.executeQuery(query);

如何將JSP頁面中的表單信息保存到Mysql數據庫?

獲取表單中的信息,然後插入到Mysql中 

%@ page language=”java” contentType=”text/html; charset=gbk”

    pageEncoding=”gbk”%

!DOCTYPE html PUBLIC “-//W3C//DTD HTML 4.01 Transitional//EN” “”

%

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”

titleReplay/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” “”

%

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=rootpassword=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”

titleInsert title here/title

/head

body

%response.sendRedirect(“ShowArticleTree.jsp”); %

/body

/html

當然最好的方法還是應該用jsp + JavaBean方式。

如何在MyEclipse中用jsp連接MySQL?

添加mysql的驅動包,再通過hibernate的逆向工程連接數據庫,在jsp頁面中使用以下代碼

%@

page

contentType=”text/html;

charset=gb2312″

%

%@

page

import=”java.sql.*;”%

html

bodybr

%

String

name

=

request.getParameter(“name”);

//獲取用戶名

byte

b[]=name.getBytes(“ISO-8859-1”);

name=new

String(b);

String

password

=

request.getParameter(“password”);

//獲取密碼

%

%

try

{Class.forName(“com.mysql.jdbc.Driver”);}

catch(ClassNotFoundException

e){}

try{

String

url=”jdbc:mysql://localhost:3306/myuser”;

Connection

con=DriverManager.getConnection(url,”root”,”chhf1988″);

Statement

stm=con.createStatement();

String

sql=”select

*

from

user

where

name=”+”‘”+name+”‘”+”and

password=”+”‘”+password+”‘”;

ResultSet

rs=stm.executeQuery(sql);

if(rs.next())

{

out.println(“歡迎

“+

rs.getString(2)+”用戶!!

“);

}

else{

out.println(“用戶名或密碼錯誤!請重新輸入!!

“);

}

stm.close();

con.close();}

catch(SQLException

e){}

%

/body

/html

jsp怎麼連接mysql數據庫

我寫的一個用JSP連接MySQL數據庫的代碼。

要正確的使用這段代碼,你需要首先在MySQL數據庫里創建一username表,表裡面創建兩個字符型的字段,字段名分別為:uid,pwd,然後插入幾條測試數據。

以下用兩種方式來實現JSP連接MySql數據庫。

第一種方式,用JSP實現。

%@ page contentType=”text/html; charset=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=truecharacterEncoding=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 驅動

* 該方法取得連接所需各種參數,組成連接字符串,然後再建立連接

* server;dbname,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=truecharacterEncoding=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/html; charset=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();

%

原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/152563.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
小藍的頭像小藍
上一篇 2024-11-13 06:05
下一篇 2024-11-13 06:05

相關推薦

  • 如何修改mysql的端口號

    本文將介紹如何修改mysql的端口號,方便開發者根據實際需求配置對應端口號。 一、為什麼需要修改mysql端口號 默認情況下,mysql使用的端口號是3306。在某些情況下,我們需…

    編程 2025-04-29
  • Python周杰倫代碼用法介紹

    本文將從多個方面對Python周杰倫代碼進行詳細的闡述。 一、代碼介紹 from urllib.request import urlopen from bs4 import Bea…

    編程 2025-04-29
  • Python字符串寬度不限制怎麼打代碼

    本文將為大家詳細介紹Python字符串寬度不限制時如何打代碼的幾個方面。 一、保持代碼風格的統一 在Python字符串寬度不限制的情況下,我們可以寫出很長很長的一行代碼。但是,為了…

    編程 2025-04-29
  • Python基礎代碼用法介紹

    本文將從多個方面對Python基礎代碼進行解析和詳細闡述,力求讓讀者深刻理解Python基礎代碼。通過本文的學習,相信大家對Python的學習和應用會更加輕鬆和高效。 一、變量和數…

    編程 2025-04-29
  • Python 常用數據庫有哪些?

    在Python編程中,數據庫是不可或缺的一部分。隨着互聯網應用的不斷擴大,處理海量數據已成為一種趨勢。Python有許多成熟的數據庫管理系統,接下來我們將從多個方面介紹Python…

    編程 2025-04-29
  • Python滿天星代碼:讓編程變得更加簡單

    本文將從多個方面詳細闡述Python滿天星代碼,為大家介紹它的優點以及如何在編程中使用。無論是剛剛接觸編程還是資深程序員,都能從中獲得一定的收穫。 一、簡介 Python滿天星代碼…

    編程 2025-04-29
  • 倉庫管理系統代碼設計Python

    這篇文章將詳細探討如何設計一個基於Python的倉庫管理系統。 一、基本需求 在着手設計之前,我們首先需要確定倉庫管理系統的基本需求。 我們可以將需求分為以下幾個方面: 1、庫存管…

    編程 2025-04-29
  • openeuler安裝數據庫方案

    本文將介紹在openeuler操作系統中安裝數據庫的方案,並提供代碼示例。 一、安裝MariaDB 下面介紹如何在openeuler中安裝MariaDB。 1、更新軟件源 sudo…

    編程 2025-04-29
  • 寫代碼新手教程

    本文將從語言選擇、學習方法、編碼規範以及常見問題解答等多個方面,為編程新手提供實用、簡明的教程。 一、語言選擇 作為編程新手,選擇一門編程語言是很關鍵的一步。以下是幾個有代表性的編…

    編程 2025-04-29
  • Python實現簡易心形代碼

    在這個文章中,我們將會介紹如何用Python語言編寫一個非常簡單的代碼來生成一個心形圖案。我們將會從安裝Python開始介紹,逐步深入了解如何實現這一任務。 一、安裝Python …

    編程 2025-04-29

發表回復

登錄後才能評論