使用纯 Java 数据库驱动程序连接数据库 jdbc,并查询数据表 goods 中的数据

一、前言

在JSP 页面中访同数据库,首先要与数据库建立连接,通过连接向数据库发送指令获得返回的结果。JDBC 连接数据库有两种营用方式: 建立DBC-ODBC 桥接器和加载纯Java驱动程序。 

JDBC_(Java DataBase Connectivity)是Java 平台核心类库的一部分,它由一组标准接口与类组成。经常使用JDBC 完成三件事:

1.与指定的数据库建立连接;
2.向己连接的数据库发送 SQL 命令:
3 处理SQL命令返回的结果。
ODBC(Open DataBase Connectivity)是由Microsof 主导的数据库连接标准,提供了通用的数据库访问平台。但是,(使用 ODBC 连接数据库的应用程序移植性较差,因为应用程序所在的计算机必须提供 ODBC)所以,本章仅介绍了使用纯 Java 动程序连接数据库使用纯Java 数据库驱动程序连接数据库需要两不步:注册纯Java 数据库驱动程序:2和指定的数据库建立连接。
 

二、MySQL创建一个表 

 这段代码在软件的新建查询中使用有错误,所以我选择手动的创建一个表。

DROP TABLE IF EXISTS 'goods';
CREATE TABLE 'goods'(
	'id' int(11) NOT NULL AUTO_INCREMENT,
	'gname' varchar(50) CHARACTER SET utf8 COLLATE utf8_nuicode_ci DEFAULT NULL,
-- 	最大长度为 50,字符集为 utf8,校对规则为 utf8_nuicode_ci,默认值为 NULL
--  数据库的校对规则(Collation)是一组定义如何比较和排序字符的规则。在数据库中,校对规则非常重要,因为它们决定了字符串的比较行为,包括大小写敏感性、特殊字符的处理、以及排序顺序等。校对规则通常与字符集(Character Set)一起使用,用于确保文本数据的正确存储、比较和检索。
-- 校对规则的主要作用包括: 
-- 字符比较:确定如何在查询和排序操作中比较字符串。不同的校对规则可能对大小写敏感或不敏感。
-- 排序顺序:定义字符串在结果集中的排序方式,例如,按照字母顺序或数字顺序。
-- 文本搜索:影响文本搜索操作的结果,如 LIKE 或 REGEXP 查询。
-- 国际化支持:不同的校对规则可以支持不同的语言和地区设置,有助于处理多语言环境。
-- 文本处理:在进行文本处理时,如大小写转换、截断、填充等,校对规则会起到关键作用。
-- 常见的校对规则示例:
-- utf8_general_ci:基于 UTF-8 字符集,不区分大小写的比较。
-- utf8_bin:基于 UTF-8 字符集,进行二进制比较,区分大小写。
-- latin1_swedish_ci:适用于拉丁字符集,瑞典语环境,不区分大小写。
	'gprice' double DEFAULT NULL,
-- 	DEFAULT NULL默认值为null
	PRIMARY HEY('id')
) ENGINT=INNODB AUTO_INCREMENT=1 DEFAULT CHARSET=latinl;
-- 用于定义表的属性和列的默认设置。具体来说:
-- ENGINE=InnoDB:这指定了表使用的存储引擎是 InnoDB。InnoDB 是 MySQL 默认的存储引擎,它支持事务处理、外键约束、行级锁定和崩溃恢复等功能。
-- 
-- AUTO_INCREMENT=1:这指定了表中某个列(通常是主键)的自增属性从 1 开始。每当向表中插入新行时,如果该列没有指定值,它将自动递增。这通常用于生成唯一的记录标识符。
-- 
-- DEFAULT CHARSET=latin1:这指定了表的默认字符集是 latin1。latin1 字符集是 ISO 8859-1 的同义词,它支持西欧语言,包括英语、德语、法语等。然而,latin1 字符集并不支持多语言字符,如中文、日文等

三、代码 

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
   <%@ page import="java.sql.*" %>
   <!-- <%@ page %> 是一个非常重要的指令,用于定义JSP页面的配置和属性。
   位于JSP页面的顶部,用来指定页面相关的指令和属性 ,如导入包、设置页面编码、定义会话管理等。 -->
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>使用纯java驱动程序连接MySQL,并访问数据</title>
</head>
<body>
<%
	Connection con = null;
	Statement st = null;
	ResultSet rs=null;

	//加载驱动
	//使用Class类(java.lang 包)中的方法 forNameO
	//来加载该驱动程序的类定义com.mysqljdbc.Driver,
	//从而创建了该驱动程序的一个实例
	try {
		Class.forName("com.mysql.jdbc.Driver");
		System.out.println("加载驱动成功!");
	} catch (ClassNotFoundException e) {
		e.printStackTrace();
	 	System.out.println("加载驱动失败!");
	}
	try{
		//建立连接
		///创建 Connection 的一个实例,并使用DriverManager 的方法getConnection0米尝试连接指定的数据库
		con=DriverManager.getConnection("jdbc:mysql://localhost:3306/jdbc?characterEncoding=utf-8&useSSL=false","root","root");
		System.out.println("连接数据库成功!");
		
		//首先用Connection的createStatement0方法从指定的数据库连接得到一个Statement实例,
		//然后该Statement实例调用executeQuery0方法来执行一条SQL 语句
		st = con.createStatement();
		rs=st.executeQuery("select * from goods");

		//ResultSet 对象是JDBC 中比较重要的一个对象,几乎所有的查询操作都将数据作为ResultSet 对象返回
		while(rs.next()){
			out.print ("<table border=\"1\">");
			out.print("<tr>");
			out.print ("<td>" + rs.getString ("id") + "</td>");
			out.print ("<td>" + rs.getString ("gname") + "</td>");
			out.print ("<td>" + rs.getString ("gprice") + "</td>");
			out.print("</tr>");
			out.print ("</table>");
		}
	}catch(SQLException e){
		e.printStackTrace();
		System.out.print("SQL Server连接失败!");
	}finally{
		try{
			if(rs!= null){
				//对数据库的操作完成之后,要及时关团 ResultSet 对象、Statement 对象和 Connection对象,从而释放占用的资源
				rs.close();
				st.close();
				con.close();
			}
		}catch(Exception e){
			e.printStackTrace();
		}
		
	}
%>
</body>
</html>

  • 6
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值