一、介绍

C#定义了ADO.Net接口来实现对SQLServer、Oracel等数据库的访问,那Java定义了JDBC接口实现对数据库的访问,数据库提供商只要实现这些接口,Java语言就能访问数据库。

二、工作流程

1、驱动引入

数据库提供商实现了JDBC接口,可好几种数据库,Java知道是哪一种呢,于是乎得注册不同的驱动来操作对应的数据库,注册驱动也得要有驱动才是,所以首先是将驱动引入项目,这里用Mysql举例,之前也用C#操作过Mysql数据库,今天用Java操作,驱动下载地址:https://dev.mysql.com/downloads/file/?id=468319,将下载的文件解压,会找到mysql-connector-java-5.1.41-bin.jar文件,把该文件放入web-Info/lib下,这样就完成了驱动的引入。

2、注册驱动

引入驱动之后Java也不知道是用的什么数据库,所以得注册一下才知道是谁,注册之后会返回对应的驱动管理对象,就和入职一样,你到公司了但不报到那也不知道来了没来,报到了才会有针对个人的流程。

3、创建连接

数据库可能存放在远程,那怎么和数据库搭上呢,这就需要连接。

4、执行操作

连接上之后要干嘛呢,不能一直连着不干事情啊,所以连接之后执行数据库的操作,增删改查等。

5、返回结果

增删改查完了,总要有个回信吧,不然怎么知道成功与否,查询的话会返回查询的数据,增加、删除、修改会返回影响的行数。

6、释放

把结果也返回了,但不能老连着数据库啊,这样也占用资源,创建的对象也没释放,还占空间,所以用完了就把它关掉。

上面大致把操作数据库的流程列了下,下面通过实验来操作一下。

7、验证

这里先在本地数据库创建一个数据库testdb,然后在表中创建一个users表,有id、name、age、birthday字段,代表着不同的数据类型。

JavaWeb之JDBC

 

<%@page import="com.mysql.jdbc.Driver"%>
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%@ page import="java.sql.*" %>
<%@ page import="java.util.*"  %>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
</head>
<body>
<%

    Connection conn=null;
    Statement stmt=null;
    ResultSet rs=null;
    try{   
    //注册驱动
    DriverManager.registerDriver(new com.mysql.jdbc.Driver());
    //通过注册的驱动获得连接对象Connection
    conn=DriverManager.getConnection("jdbc:mysql://localhost:3306/testdb","root","123456");
    //通过Statement对象执行操作 返回结果ResultSet
    stmt=conn.createStatement();
    //返回结果 
    rs=stmt.executeQuery("select * from users");
    
    while(rs.next())
    {
        out.println("姓名:"+rs.getString("name")+"  年龄:"+rs.getInt("age") +"  出生日期:"+rs.getDate("birthday"));
    }
}
catch(SQLException e)
{
    out.println(e.getMessage());
    e.printStackTrace();
}
finally
{
    //释放资源
    if(conn!=null)
    {
        conn.close();
    }
    if(stmt!=null)
    {
        stmt.close();
    }
    if(rs!=null)
    {
        rs.close();
    }
}  
%>
</body>
</html>
View Code

相关文章:

  • 2021-05-23
  • 2021-10-06
  • 2021-11-19
  • 2021-11-17
  • 2022-12-23
  • 2021-09-16
  • 2021-12-16
  • 2022-03-04
猜你喜欢
  • 2021-06-07
  • 2021-05-17
  • 2021-11-18
  • 2022-01-06
  • 2021-06-06
  • 2022-12-23
  • 2022-12-23
相关资源
相似解决方案