jsp三層架構資料庫增刪改查,數據的增刪改查操作是在三層架構的

本文目錄一覽:

如何在JSP頁面中實現對資料庫的增刪查改?

首先我覺得你的問題不太明確,做增刪改查,的話一般不用ajax,除非其中要用到單獨的驗證欄位的時候採用,比如在註冊時驗證用戶名,這裡用到ajax查詢用戶名是否存在,返回給頁面直接用流打回頁面就行(比如:此用戶名可用之類的)而其他的查詢比如顯示所有或者查詢的結果為對象的話那看你用什麼框架(controller),struts直接封裝到值棧中,在頁面用標籤顯示就行,不知道能不能幫到你

jsp怎麼連接資料庫做增刪改查

資料庫連接類:

package cn.hpu.bbs.util;

import java.sql.Connection;

import java.sql.DriverManager;

import java.sql.PreparedStatement;

import java.sql.ResultSet;

import java.sql.SQLException;

import java.sql.Statement;

public class DB {

 

 // 定義MySQL的資料庫驅動程序

 public static final String DBDRIVER = “com.mysql.jdbc.Driver” ;

 //定義mysql的資料庫連接地址:

 public static final String DBDURL = “jdbc:mysql://localhost/bbs2014” ;

 //mysql資料庫的連接用戶名

 public static final String DBUSER = “root” ;

 //mysql資料庫的連接密碼

 public static final String DBPASS = “1234” ;

 

 public static Connection createConn(){

  Connection conn =null;

  try {

   Class.forName(DBDRIVER);

   conn=DriverManager.getConnection(DBDURL,DBUSER,DBPASS);

  } catch (ClassNotFoundException e) {

   e.printStackTrace();

  } catch (SQLException e) {

   e.printStackTrace();

  }

  

  return conn;

 }

 

 public static PreparedStatement prepare(Connection conn,String sql){

  PreparedStatement ps=null;

  try {

   ps=conn.prepareStatement(sql);

  } catch (SQLException e) {

   // TODO Auto-generated catch block

   e.printStackTrace();

  }

  return ps;

 }

 

 public static void close(Connection conn){

  if(conn==null) return;

  try {

   conn.close();

   conn=null;

  } catch (SQLException e) {

   // TODO Auto-generated catch block

   e.printStackTrace();

  }

 }

 

 public static void close(Statement stmt){

  if(stmt==null) return;

  try {

   stmt.close();

   stmt=null;

  } catch (SQLException e) {

   // TODO Auto-generated catch block

   e.printStackTrace();

  }

 }

 

 public static void close(ResultSet rs){

  if(rs==null) return;

  try {

   rs.close();

   rs=null;

  } catch (SQLException e) {

   // TODO Auto-generated catch block

   e.printStackTrace();

  }

 }

}

Category的一個JavaBean:

package cn.hpu.bbs.model;

public class Category {

private int id;

private String name;

private String description;

public int getId() {

return id;

}

public void setId(int id) {

this.id = id;

}

public String getName() {

return name;

}

public void setName(String name) {

this.name = name;

}

public String getDescription() {

return description;

}

public void setDescription(String description) {

this.description = description;

}

}

對資料庫和Category的操作類://說白了就是增刪查修

pre name=”code” class=”java”package cn.hpu.bbs.service;

import java.sql.Connection;

import java.sql.PreparedStatement;

import java.sql.ResultSet;

import java.sql.SQLException;

import java.util.ArrayList;

import java.util.List;

import cn.hpu.bbs.model.Category;

import cn.hpu.bbs.util.DB;

public class CategoryService {

public void add(Category c){

Connection conn=DB.createConn();

String sql=”insert into category (name,description) values (?,?)”;

PreparedStatement ps=DB.prepare(conn, sql);

try {

ps.setString(1, c.getName());

ps.setString(2, c.getDescription());

ps.executeUpdate();

} catch (SQLException e) {

e.printStackTrace();

}

DB.close(ps);

DB.close(conn);

}

public ListCategory list(){

Connection conn=DB.createConn();

String sql=”select * from category”;

PreparedStatement ps=DB.prepare(conn, sql);

ListCategory categories=new ArrayListCategory();

try {

ResultSet rs=ps.executeQuery();

Category c=null;

while(rs.next()){

c=new Category();

c.setId(rs.getInt(“id”));

c.setName(rs.getString(“name”));

c.setDescription(rs.getString(“description”));

categories.add(c);

}

} catch (SQLException e) {

e.printStackTrace();

}

DB.close(ps);

DB.close(conn);

return categories;

}

public void delete(Category c){

deleteById(c.getId());

}

public void deleteById(int id){

Connection conn=DB.createConn();

String sql=”delete from category where id=?”;

PreparedStatement ps=DB.prepare(conn, sql);

try {

ps.setInt(1, id);

ps.executeUpdate();

} catch (SQLException e) {

e.printStackTrace();

}

DB.close(ps);

DB.close(conn);

}

public void update(Category c){

Connection conn=DB.createConn();

String sql=”update category set name = ? , description = ? where id = ?”;

PreparedStatement ps=DB.prepare(conn, sql);

try {

ps.setString(1, c.getName());

ps.setString(2, c.getDescription());

ps.setInt(3, c.getId());

ps.executeUpdate();

} catch (SQLException e) {

e.printStackTrace();

}

DB.close(ps);

DB.close(conn);

}

public Category loadById(int id){

Connection conn=DB.createConn();

String sql=”select * from category where id=?”;

PreparedStatement ps=DB.prepare(conn, sql);

Category c=null;

try {

ps.setInt(1, id);

ResultSet rs=ps.executeQuery();

if(rs.next()){

c=new Category();

c.setId(rs.getInt(“id”));

c.setName(rs.getString(“name”));

c.setDescription(rs.getString(“description”));

}

} catch (SQLException e) {

e.printStackTrace();

}

DB.close(ps);

DB.close(conn);

return c;

}

}

什麼是jsp web三層架構

三層架構(3-tier architecture) 通常意義上的三層架構就是將整個業務應用劃分為:界面層(User Interface layer)、業務邏輯層(Business Logic Layer)、數據訪問層(Data access layer)。區分層次的目的即為了「高內聚低耦合」的思想。在軟體體系架構設計中,分層式結構是最常見,也是最重要的一種結構。微軟推薦的分層式結構一般分為三層,從下至上分別為:數據訪問層(又稱為持久層)、業務邏輯層(又或稱為領域層)、表示層。

表示層(UI層):

表示層也稱為界面層,位於最外層(最上層),離用戶最近。用於顯示數據和接收用戶輸入的數據,為用戶提供一種互動式操作的界面。

業務邏輯層(BLL層):

負責關鍵業務的處理和數據的傳遞。複雜的邏輯判斷和涉及到資料庫的數據驗證都需要在此做出處理。主要是針對具體的問題的操作,也可以理解成對數據層的操作,對數據業務邏輯處理,如果說數據層是積木,那邏輯層就是對這些積木的搭建。

數據訪問層(DAL層):

主要負責對資料庫的直接訪問,為業務邏輯層提供數據,根據傳入的值來操作資料庫,增、刪、改、查。

如何用jsp往資料庫里添加,刪除,修改和查看給出例子

功能很簡單的,但寫起來從前台到後台有點繁瑣,我告訴你思路,你自己寫寫啊,這東西主要靠練。

首先你要把資料庫裡面的數據查詢出來,然後在jsp中以表格的形式顯示,在每條數據後面添加一個刪除按鈕。

當你點擊刪除按鈕的時候向伺服器端傳遞一個id,通過這個id來刪除。伺服器端可以用servlet也可以用struts等等,訪問資料庫可以用jdbc也可以用hibernate,做一個查詢和刪除的方法就可以了。

JSP中如何對資料庫中的數據進行刪除增加等操作

問題太抽象,/*

* To change this template, choose Tools | Templates

* and open the template in the editor.

*/package ******;

import java.io.PrintWriter;

import java.sql.*;/**

* @author wfg

*/

public class DB_Conn {

private String driverName = “com.mysql.jdbc.Driver”; //JDBC驅動

private String userName = “root”; //資料庫用戶名

private String userPwd = “*****”; //資料庫用戶密碼

private String dbName = “******”; //資料庫名

private String url = “jdbc:mysql://localhost:3306/”+dbName+”?user=”+userName+

“password=”+userPwd; //資料庫連接字元串

private Connection conn = null; //資料庫連接對象

public Statement sm = null; //資料庫語句對象

private PrintWriter out = null; //建立資料庫連接函數

public void ConnectDB(){

try{

Class.forName(driverName).newInstance();

conn = DriverManager.getConnection(url);

sm = conn.createStatement();

}

catch(Exception e){

e.printStackTrace();

out.print(“資料庫連接失敗!”);

}

} //釋放資料庫連接函數

public void CloseDB(){

try{

if(sm != null){

sm.close();

}

conn.close();

}

catch(SQLException SqlE){

SqlE.printStackTrace();

out.print(“資料庫關閉失敗!”);

}

}

}

這是先建立連接

原創文章,作者:TBMW,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/141467.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
TBMW的頭像TBMW
上一篇 2024-10-04 02:42
下一篇 2024-10-04 02:42

相關推薦

  • Python棧操作用法介紹

    如果你是一位Python開發工程師,那麼你必須掌握Python中的棧操作。在Python中,棧是一個容器,提供後進先出(LIFO)的原則。這篇文章將通過多個方面詳細地闡述Pytho…

    編程 2025-04-29
  • Python 常用資料庫有哪些?

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

    編程 2025-04-29
  • openeuler安裝資料庫方案

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

    編程 2025-04-29
  • Python操作數組

    本文將從多個方面詳細介紹如何使用Python操作5個數組成的列表。 一、數組的定義 數組是一種用於存儲相同類型數據的數據結構。Python中的數組是通過列表來實現的,列表中可以存放…

    編程 2025-04-29
  • Python操作MySQL

    本文將從以下幾個方面對Python操作MySQL進行詳細闡述: 一、連接MySQL資料庫 在使用Python操作MySQL之前,我們需要先連接MySQL資料庫。在Python中,我…

    編程 2025-04-29
  • Python代碼實現迴文數最少操作次數

    本文將介紹如何使用Python解決一道經典的迴文數問題:給定一個數n,按照一定規則對它進行若干次操作,使得n成為迴文數,求最少的操作次數。 一、問題分析 首先,我們需要了解迴文數的…

    編程 2025-04-29
  • Python磁碟操作全方位解析

    本篇文章將從多個方面對Python磁碟操作進行詳細闡述,包括文件讀寫、文件夾創建、刪除、文件搜索與遍歷、文件重命名、移動、複製、文件許可權修改等常用操作。 一、文件讀寫操作 文件讀寫…

    編程 2025-04-29
  • 資料庫第三範式會有刪除插入異常

    如果沒有正確設計資料庫,第三範式可能導致刪除和插入異常。以下是詳細解釋: 一、什麼是第三範式和範式理論? 範式理論是關係資料庫中的一個規範化過程。第三範式是範式理論中的一種常見形式…

    編程 2025-04-29
  • Python元祖操作用法介紹

    本文將從多個方面對Python元祖的操作進行詳細闡述。包括:元祖定義及初始化、元祖遍歷、元祖切片、元祖合併及比較、元祖解包等內容。 一、元祖定義及初始化 元祖在Python中屬於序…

    編程 2025-04-29
  • 如何用Python對數據進行離散化操作

    數據離散化是指將連續的數據轉化為離散的數據,一般是用於數據挖掘和數據分析中,可以幫助我們更好的理解數據,從而更好地進行決策和分析。Python作為一種高效的編程語言,在數據處理和分…

    編程 2025-04-29

發表回復

登錄後才能評論