前端页面+ servlet基础

一、servlet本质:java代码 所有的数据存储在数据库。

怎么链接数据库,有一套行为规范叫jdbc。确定了到底怎么链接的。

有几套常用的数据库

如果没有行为规范,要编写一套链接程序。每个都会给一套链接程序,不利于计算机的更新替代,比如先用sqlServer,然后想换Oeacle,那整个编程逻辑都要重新写一遍,改动量太大。

Oeacle 全套产品,一个java应用程序,一个Oeacle,还有mysql.

一个java应用程序一开始属于Sum公司 , 想到了jdbc:行为规范(相当于双方达成有效的一个协议) ,规范了我们用户,编程程序员的一个使用(面向应用

给自己的驱动程序写一套驱动包,做一个链接使用的一个过程,每个厂商都写一个驱动包。 驱动包是由应用厂商实现的。

面向应用行为规范(jdbc)不需要做一个大型改动,只需要调整行为的参数,比如现在做一个更改,从sqlServer变成Oracle,只需要在行为规范把驱动包的加载稍微改变一下,密码甚至不用变,对于程序员来说只需要关心行为规范里怎么去写,而不用去关心驱动包怎么去写,如果没有驱动包、行为规范,意味着各写各的逻辑,逻辑也要修改。

解题流程:套路——即行为规范

解题流程:套路 -----jdc

管理驱动

面向应用行为规范定义了这四个类:操作这几个类

  • DriverManager:驱动管理 注册jdc
  • Connection :链接类 简历数据库的链接
  • Statement : SQL编译器 向数据库发送并执行sql语句
  • ResultSet: 查询结果集 处理返回的结果

 

 

链接哪个数据库就导入哪个驱动包,下一步执行DriverManager,加载并注册JDBC,注册完成之后,创建Connection对象,主要目的做链接,下一步创建

Statment对象 ,执行SQL语句(本身在Statment对象里面完成),如果是使用的查询的话,就需要使用使用ResultSet接收,不是查询,是增删改是没有返回数据的,直接下一步关闭链接。

开始----> 导入驱动包------> 加载并注册JDBC ------> 创建Connection ----->创建Statement对象 ------->执行SQL ——> (查询)使用ResultSet接收...

 创建对象本质上就是创建一个内存空间,那内存空间怎么回收?

如果使用java自定义的回收机制,那对象回收本质上比较慢,如果我们不关闭Statement对象(就意味着没有清空这个Statment对象),再次查询的时候,又创建一个Statement对象,没有关闭就意味着可能会创建很多个对象,那内存迟早支撑不住。

ResultSet怎么处理,主要是做查询,做完之后 外:(处理查询结果)

下一步关闭Connection对象然后结束。

 这些对象在完成自己工作之后,将不会再被重新使用,所以需要把内存清空掉。

 

 先导入驱动。

首先第一步找到src,建一个包,建一个class——JDBC.java

 做一个查询,写一个search方法,封装逻辑,用反射(用来加载jar包,也是DriverManager的体现)实现,抛出异常,选择try/catch.解决异常。

 然后创建Connection对象,通过getConnection来返回,jdbc协议

 

 创建Statement对象

执行sql语句

然后ResultSet接受

调用close

 

 打开Navicat,新建数据库,设置好点击确定

 然后新建表:

 

 然后点击保存,表名叫student

 

然后创建好

每个主机:

url:统一资源定位符

本地IP地址:localhost

端口号:3306 通过端口号发送

项目名称:数据库名

后面包含的是字符集。

数据库用户名 跟密码



 import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;

import com.mysql.jdbc.Connection;

public class Jdbc {
	public static void search() {
		search();
		try {
			//1.加载驱动
			Class.forName("com.mysql.jdbc.Driver");
			//创建connection对象 链接数据库
			//url:统一资源定位符 :http://www.baidu.com/
			Connection connection = (Connection) DriverManager.getConnection("jdbc:maysql://localhost:3306/weiyang?useUnicode=true&characterEncoding=utf-8","root","2020");
			Statement statement = (Statement) connection.createStatement();
			//sql语句
			String sql = "select * from student";
			ResultSet re = statement.executeQuery(sql);
			//处理数据
			while(re.next()) {
				String idString = re.getString("id");
				String name = re.getString("name");
				String height = re.getString("height");
				String age = re.getString("age");
				System.out.println(idString + " " + name + " " + height + " " + age);
			}
			if (re != null) {
				re.close();
			}
			
			if (connection != null) {
				statement.close();
			}
			
			if (connection !=null) {
				connection.close();
			}
		} catch (ClassNotFoundException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		} catch (SQLException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
	}
}
package com.sql;

import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;

import com.mysql.jdbc.Connection;

public class Jdbc {
		static final String URL = "jdbc:mysql://localhost:3306/weiyang?useUnicode=true&characterEncoding=utf-8";
		static final String ROOT = "root";
		static final String PASSWORD = "2020";
	public static void main(String[] args){
//		insert();
//		update();
		delete();
		
	}
	public static void search() {
		
		try {
			//1.加载驱动
			Class.forName("com.mysql.jdbc.Driver");
			//创建connection对象 链接数据库
			//url:统一资源定位符 :
			Connection connection = (Connection) DriverManager.getConnection("jdbc:mysql://localhost:3306/weiyang?useUnicode=true&characterEncoding=utf-8","root","2020");
			Statement statement = (Statement) connection.createStatement();
			//sql语句
			String sql = "select * from student";
			ResultSet re = statement.executeQuery(sql);
			//处理数据
			while(re.next()) {
				String idString = re.getString("id");
				String name = re.getString("name");
				String height = re.getString("height");
				String age = re.getString("age");
				System.out.println(idString + " " + name + " " + height + " " + age);
			}
			if (re != null) {
				re.close();
			}
			
			if (connection != null) {
				statement.close();
			}
			
			if (connection !=null) {
				connection.close();
			}
		} catch (ClassNotFoundException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		} catch (SQLException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
	}
	
	public static int insert() {
		int temp = 0;
		try {
			Class.forName("com.mysql.jdbc.Driver");
			Connection connection = (Connection) DriverManager.getConnection(URL,ROOT,PASSWORD);
			Statement statement = (Statement) connection.createStatement();
			String sql = "insert into student(name,height,age) values ('小风',186,23)";
			statement.executeUpdate(sql);
			temp++;
			
			if(statement != null) {
				statement.close();
			}
			
			if(connection != null) {
				connection.close();
			}
			
		}catch (ClassNotFoundException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		} catch (SQLException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		return temp;
	}
	
	public static int update() {
		int temp = 0;
		try {
			Class.forName("com.mysql.jdbc.Driver");
			Connection connection = (Connection) DriverManager.getConnection(URL,ROOT,PASSWORD);
			Statement statement = (Statement) connection.createStatement();
			String sql = "update student set name ='小黑',height=186,age = 18 where id = 1";
			statement.executeUpdate(sql);
			temp++;
			
			if(statement != null) {
				statement.close();
			}
			
			if(connection != null) {
				connection.close();
			}
		}catch (ClassNotFoundException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		} catch (SQLException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		return temp;
	}
	
	public static int delete() {
		int temp = 0;
		try {
			Class.forName("com.mysql.jdbc.Driver");
			Connection connection = (Connection) DriverManager.getConnection(URL,ROOT,PASSWORD);
			Statement statement = (Statement) connection.createStatement();
			String sql = "delete from student where id = 3";
			statement.executeUpdate(sql);
			temp++;
			
			if(statement != null) {
				statement.close();
			}
			
			if(connection != null) {
				connection.close();
			}
		}catch (ClassNotFoundException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		} catch (SQLException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		return temp;
			
	}
	
}

 

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
图书管理系统是一个用来管理图书馆馆藏书籍、读者信息和借还书流程的软件系统。基于Eclipse、JSP、Servlet和MySQL开发的图书管理系统充分利用了这些技术的优势,以实现功能完备、性能稳定和易于维护的系统。 该系统的主要功能包括图书的录入、分类管理、借还书管理、读者信息管理和统计报表生成等。通过使用Eclipse进行开发,系统可以利用Eclipse提供的丰富插件和调试工具来提高开发效率和代码质量。JSP和Servlet作为前端和后端的开发框架,可以便于实现动态网页展示和与后台数据库的交互。而MySQL作为数据库,提供稳定可靠的数据存储和查询支持。 图书管理系统通过JSP和Servlet将用户的请求转发到相应的后台处理程序,然后通过对MySQL数据库的增、删、改、查操作来实现相应功能。比如,在图书录入模块中,管理员可以通过界面填写书籍的信息,然后将信息传送到后台,通过SQL语句将书籍信息存储到MySQL数据库中。在借还书管理模块中,系统可以查询图书的借阅记录,并更新图书的状态。 总之,图书管理系统基于Eclipse、JSP、Servlet和MySQL源码,利用这些技术的特点和优势,能够提供一个功能完善、性能稳定、易于维护的图书管理系统。通过这个系统,图书管理员可以更方便地管理图书馆的馆藏书籍和读者信息,提高图书馆的服务质量和效率。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值