首页 > 编程知识 正文

jsp三层架构数据库增删改查,数据的增删改查操作是在三层架构的

时间:2024-04-24 11:43:04 阅读:333666 作者:TXQW

本文目录一览:

如何在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("数据库关闭失败!");

}

}

}

这是先建立连接

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。