【JSP开发】数据库连接与增删改查

本文涉及的产品
云数据库 RDS MySQL Serverless,0.5-2RCU 50GB
简介:
+关注继续查看

一直都没有总结数据库连接与增删改查,今天做一些相关的小总结


JSP有自己的包的规范,要把每一个具体的功能的类放在相应的包下。

有关数据库的类都放在cn.hpu.bbs.util包下,对数据库操作的类放在cn.hpu.bbs.service包下,JavaBean放在cn.hpu.bbs.model包下。

我连接的是Mysql,事先要在工程中引入相应的jar包:mysql-connector-java-3.1.13-bin.jar


创建数据库:



数据库连接类:

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 List<Category> list(){
		Connection conn=DB.createConn();
		String sql="select * from category";
		PreparedStatement ps=DB.prepare(conn, sql);
		List<Category> categories=new ArrayList<Category>();
		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;
	}
}



这个数据库建立和关闭个人感觉不太规范,以前做的项目里面写的很规范,这次仅供参考学习。


现在在学SSH框架,JSP都是之前学的了。等到掌握了hibernate,数据库就不需要那么繁琐。笔者想说的是,即使有了框架,还是要老老实实的学好基础的东西,才能更加熟练的去运用框架,因为你懂得其中的机理。


转载请注明出处!程序猿之洞:http://blog.csdn.net/acmman

相关实践学习
基于CentOS快速搭建LAMP环境
本教程介绍如何搭建LAMP环境,其中LAMP分别代表Linux、Apache、MySQL和PHP。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助 &nbsp; &nbsp; 相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
相关文章
|
2月前
|
存储 Java 关系型数据库
JSP考试质量分析系统myeclipse开发mysql数据库bs框架java编程web网页结构
JSP 考试质量分析系统是一套完善的web设计系统,对理解JSP java编程开发语言有帮助,系统具有完整的源代码和数据库,开发环境为TOMCAT7.0,Myeclipse8.5开发,数据库为Mysql5.0,使用java语言开发,系统主要采用B/S模式开发。
163 1
|
2月前
|
Java 关系型数据库 MySQL
JSP考试报名管理系统myeclipse开发mysql数据库bs框架java编程web网页结构
二、功能介绍 (1)权限管理:对权限信息进行添加、删除、修改和查看 (2)用户管理:对用户信息进行添加、删除、修改和查看 (3)公告管理:对公告信息进行添加、删除、修改和查看 (4)考试科目管理:对考试科目信息进行添加、删除、修改和查看 (5)考试安排管理:对考试安排信息进行添加、删除、修改和查看 (6)报名管理:对报名信息进行添加、删除、修改和查看,审核, (7)用户登录、身份验证 三、注意事项 1、管理员账号:admin密码:admin 数据库配置文件DBO.java 角色:普通用户,管理员 2、开发环境为TOMCAT7.0,Myeclipse8.5开发,数据库为Mysql
72 0
|
2月前
|
Java 关系型数据库 MySQL
JSP在线客户服务支持管理系统myeclipse开发mysql数据库bs框架java编程jdbc
JSP 在线客户服务支持管理系统是一套完善的web设计系统,对理解JSP java编程开发语言有帮助,系统具有完整的源代码和数据库,系统主要采用B/S模式开发。
24 0
|
2月前
|
Java 关系型数据库 MySQL
JSP 科研管理系统myeclipse开发mysql数据库bs框架java编程jdbc
JSP 科研管理系统是一套完善的web设计系统,对理解JSP java编程开发语言有帮助,系统具有完整的源代码和数据库,开发环境为TOMCAT7.0,Myeclipse8.5开发,数据库为Mysql5.0,使用java语言开发。系统主要采用B/S模式开发。
26 0
|
2月前
|
Java 关系型数据库 MySQL
JSP实践教学平台系统myeclipse开发mysql数据库bs框架java编程jdbc
JSP 实践教学平台系统是一套完善的web设计系统,对理解JSP java编程开发语言有帮助,系统具有完整的源代码和数据库,开发环境为TOMCAT7.0,Myeclipse8.5开发,数据库为Mysql5.0,数据库文件名是jspskcsjpt.sql,系统名称kcsjpt,使用java语言开发系统主要采用B/S模式开发。
39 0
|
2月前
|
Java 关系型数据库 MySQL
JSP宠物寄养预约系统myeclipse开发mysql数据库bs框架java编程jdbc
JSP 宠物寄养预约系统是一套完善的web设计系统,对理解JSP java编程开发语言有帮助,系统具有完整的源代码和数据库,开发环境为TOMCAT7.0,Myeclipse8.5开发,数据库为Mysql5.0,使用java语言开发,系统主要采用B/S模式开发。
35 0
|
2月前
|
Java 关系型数据库 MySQL
JSP 教学文档管理系统myeclipse开发mysql数据库bs框架java编程jdbc
JSP 教学文档管理系统是一套完善的web设计系统,对理解JSP java编程开发语言有帮助,系统具有完整的源代码和数据库,开发环境为TOMCAT7.0,Myeclipse8.5开发,数据库为Mysql5.0,使用java语,数据库文件名是jspsjxwd.sql,系统名称jxwd,言开发系统主要采用B/S模式开发。
25 0
|
2月前
|
Java 数据库连接 数据库
JSP奖学金管理系统myeclipse开发sqlserver数据库bs框架java编程jdbc
JSP 奖学金管理系统是一套完善的web设计系统,对理解JSP java编程开发语言有帮助,系统具有完整的源代码和数据库,开发环境为TOMCAT7.0,Myeclipse8.5开发,数据库为SQLSERVER2008,使用java语言开发,系统主要采用B/S模式开发。
21 0
|
2月前
|
Java 关系型数据库 MySQL
JSP居民信息采集系统yeclipse开发mysql数据库bs框架java编程jdbc
JSP 居民信息采集系统是一套完善的web设计系统,对理解JSP java编程开发语言有帮助,系统具有完整的源代码和数据库,开发环境为TOMCAT7.0,Myeclipse8.5开发,数据库为Mysql5.0,使用java语,言开发系统主要采用B/S模式开发。
25 0
|
2月前
|
Java 关系型数据库 MySQL
JSP教师辅助办公软件教学进程管理系统yeclipse开发mysql数据库bs框架java编程jdbc
JSP 教师辅助办公软件教学进程管理系统是一套完善的web设计系统,对理解JSP java编程开发语言有帮助,系统具有完整的源代码和数据库,开发环境为TOMCAT7.0,Myeclipse8.5开发,数据库为Mysql5.0,使用java语言开发,系统主要采用B/S模式开发。
23 0