JDBC之数据库操作

JDBC重要界面有:

java.sgl.DriverManager:完成驱动程序的装载和建立新的数据库连接。

java.sgl.Connection:表示对某一指定数据库的连接。

java.sgl.Statement:管理在一指定数据库连接上的SQL语句的执行。

java.sgl.ResultSet:访问一指定语句的原始结果。

java.sgl.CallableStatement:用于执行存储的SQL过程的界面。

java.sgl.Connection: 一个连接表示与某一指定数据库的一个会话。在该连接中可以执行SQL语句和处理返回结果。

java.sql.DataTruncation:当JDBC碰到意外数据截断时,报告一个警告(读数据时)或产生一个异常(写数据时)。

java.sql.Date:是标准java.util.date的一个子集,只表示天数,而不包含时、分、秒。

java.sql.Driver:定义一个在每一个数据库驱动程序中必须实现的驱动程序界面。 java.sql.DriverManager:提供对全局SQL状态的访问。

java.sql.DriverPropertyInto:提供高级程序员与驱动程序之间对连接特性信息进行交互的手段。 java.sql.NullData:当由getXXX或getObiect方法读出一个SQL空值时,产生一个NullData警告。 java.sql.Numeric:是一个任意精度标量数值类,可用作表示SQL定点Numerlc和Decimal类型的数值。 java.sql.PreparedStatement:保存一个预编译的SQL语句的对象,该对象可被高效地执行多次。 java.sql.ResultSet:结果集提供对执行一个SQL语句后产生的结果表的访问。表中数据按行依次取出。为便于移植,建议对每一行数据从左至右按列读出。

java.sql.SQLException:处理数据库访问时的出错信息。

java.sql.SQLWarning:处理数据库访问时的警告信息。

java.sql.Statement:用作执行一条静态的SQL语句并接收产生的结果。

java.sql.Time:用于表示标准java.util.date类的一个信息子集,仅表示时、分、秒。 java.sql.Timestamp:扩展标准java.util.date类,使其能够表示SQL的时间戳,增加了一个以纳秒为单位的时间域。

java.sql.Types:定义区分SQL类型的常量。类常量值与XOPEN中的值相同。

JDBC驱动程序界面:可以通过"Class.forName("com.mysql.jdbc.Driver"); "来获取,(主要用于"java.sql.Connection; "类),它的作用是在访问一个指定的URL时可以查询到相应的驱动程序。

下面,我们来实践操作一个图书信息的添加:

首先,我们先导入名为"mysql_installer_community_V5.6.21.1_setup.1418020972"的程序包(已上传),把它粘贴在Webroot-->WEB-INF文件中,如图所示:

Book类:

package com.caiduping;

public class Book {
    private int id;
    private String name;
    private double price;
    private int bookCount;
    private String author;
    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 double getPrice() {
        return price;
    }
    public void setPrice(double price) {
        this.price = price;
    }
    public int getBookCount() {
        return bookCount;
    }
    public void setBookCount(int bookCount) {
        this.bookCount = bookCount;
    }
    public String getAuthor() {
        return author;
    }
    public void setAuthor(String author) {
        this.author = author;
    }
}

AddBooks类:

package com.caiduping.open;

import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.SQLException;

import com.caiduping.Book;

public class AddBooks {
    public int addbook(Book book) throws SQLException, ClassNotFoundException
    {int a=0;
    OpenConnection c=new OpenConnection();
    Connection conn=c.OpenConnection();
    String sql = "insert into tb_books(name,price,bookCount,author) values(?,?,?,?)";
    // 获取PreparedStatement
    PreparedStatement ps = conn.prepareStatement(sql);
    // 对SQL语句中的第1个参数赋值
    ps.setString(1, book.getName());
    System.out.println("name:"+book.getName());
    // 对SQL语句中的第2个参数赋值
    ps.setDouble(2, book.getPrice());
    // 对SQL语句中的第3个参数赋值
    ps.setInt(3,book.getBookCount());
    // 对SQL语句中的第4个参数赋值
    ps.setString(4, book.getAuthor());
    // 执行更新操作,返回所影响的行数
    int row = ps.executeUpdate();
    // 判断是否更新成功
    return row;
    }
}
OpenConnection类:
package com.caiduping.open;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;

public class OpenConnection {

    public Connection OpenConnection() throws SQLException, ClassNotFoundException {
        // TODO Auto-generated method stub
        Connection c=null;
        //加载驱动
        Class.forName("com.mysql.jdbc.Driver");
        c=DriverManager.getConnection("jdbc:mysql://localhost:3306/db_database10","Book","000000");
        return c;
    }

}

C类:

package com.caiduping.servlet;

import java.io.IOException;

import javax.servlet.Filter;
import javax.servlet.FilterChain;
import javax.servlet.FilterConfig;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;

public class CharFilter implements Filter {

    @Override
    public void destroy() {
        // TODO Auto-generated method stub

    }

    @Override
    public void doFilter(ServletRequest request, ServletResponse response,
            FilterChain chain) throws IOException, ServletException {
        // TODO Auto-generated method stub
        request.setCharacterEncoding("UTF-8");
        response.setCharacterEncoding("UTF-8");
        //System.out.println("cdp");
        chain.doFilter(request, response);
    }

    @Override
    public void init(FilterConfig arg0) throws ServletException {
        // TODO Auto-generated method stub

    }

}

AddBooks.jsp:

<%@page import="java.sql.DriverManager"%>
<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
    <base href="<%=basePath%>">

    <title>My JSP ‘AddBooks.jsp‘ starting page</title>

    <meta http-equiv="pragma" content="no-cache">
    <meta http-equiv="cache-control" content="no-cache">
    <meta http-equiv="expires" content="0">
    <meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
    <meta http-equiv="description" content="This is my page">
    <!--
    <link rel="stylesheet" type="text/css" href="styles.css">
    -->

  </head>

  <body>
  <%request.setCharacterEncoding("utf-8"); %>
  <jsp:useBean id="book" class="com.caiduping.Book"></jsp:useBean>
  <jsp:setProperty property="*" name="book"/>
  <%int n=0;
  n=book.getId();
  if(n>0) {%>书籍添加成功<%} %>
    <a href="index.jsp">返回</a>
  </body>
</html>

indes.jsp:

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
    <base href="<%=basePath%>">

    <title>My JSP ‘index.jsp‘ starting page</title>
    <meta http-equiv="pragma" content="no-cache">
    <meta http-equiv="cache-control" content="no-cache">
    <meta http-equiv="expires" content="0">
    <meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
    <meta http-equiv="description" content="This is my page">
    <!--
    <link rel="stylesheet" type="text/css" href="styles.css">
    -->
  </head>

  <body>
   <form id="book" method="post" action="AddBooks.jsp">
  <table width="600" border="2">
    <tr>
      <td colspan="2"><div align="center">添加图书信息</div></td>
    </tr>
    <tr>
      <td>图书名称:</td>
      <td><label>
        <input name="name" type="text" id="name" />
      </label></td>
    </tr>
    <tr>
      <td>价格:</td>
      <td><label>
        <input name="price" type="text" id="price" />
      </label></td>
    </tr>
    <tr>
      <td>数量:</td>
      <td><label>
        <input name="bookCount" type="text" id="bookCount" />
      </label></td>
    </tr>
    <tr>
      <td>作者:</td>
      <td><label>
        <input name="author" type="text" id="author" />
      </label></td>
    </tr>
    <tr>
      <td colspan="2"><label>
        <div align="center">
          <input type="submit" name="Submit" value="提交" />
        </div>
      </label></td>
    </tr>
  </table>
</form>
  </body>
</html>
时间: 2024-08-28 13:38:19

JDBC之数据库操作的相关文章

二、JAVA通过JDBC连接mysql数据库(操作)

昨天时间限制只是写了如何连接数据库,连接数据库的目的无非就是查询.修改数据,仅仅连接上还是毫无意义的. 对于数据哭的操作就要用到Statement接口(java.sql.Statement)主要方法 int executeUpdate(String sql)throws SQLException 更新数据库 ResultSet executeQuery(String sql)throws SQLException 查询返回ResultSet结果集 代码演示 1 import java.sql.C

Mybatis、JDBC、Habernate、Mybatis+Spring的Mysql数据库操作实例

1.数据库操作实例: public static void JDBCTest() throws Exception { Connection conn = null; String url = "jdbc:mysql://localhost:3306/mysql_learn?" + "user=root&password=123qwe&useUnicode=true&characterEncoding=utf8"; String select

androidj常用数据库操作JDBC Utils

package mypackage; import java.lang.reflect.Field; import java.sql.Connection; import java.sql.DriverManager; import java.sql.ResultSet; import java.sql.ResultSetMetaData; import java.sql.SQLException; import java.text.SimpleDateFormat; import java.u

人事管理系统——数据库操作类

连接数据库类主要代码: 1 package PersonSystem; 2 3 import java.sql.*; 4 /** 5 * 6 * 连接数据库的类 7 * 8 */ 9 public class Database 10 { 11 private Statement stmt = null; 12 ResultSet rs = null; 13 private Connection conn = null; 14 String sql; 15 String strurl = "jdb

Java Web的数据库操作(一)

一.JDBC技术 1.JDBC简介 JDBC是Java程序与数据库系统通信的标准API,它定义在JDK的API中,通过JDBC技术,Java程序可以非常方便地与各种数据库交互,JDBC在Java程序与数据库系统之间假期了一座桥梁. JDBC由一组用Java语言编写的类和接口组成,它对数据库的操作提供了基本方法,但由于数据库种类跟多且多有不同,所以对数据库的细节操作由数据库厂商进行实现,且厂商需要提供数据库的驱动程序,下图为Java程序与数据库相交互的示意图: 2.JDBC连接数据库的过程 l 

javaweb(三十三)——使用JDBC对数据库进行CRUD

一.statement对象介绍 Jdbc中的statement对象用于向数据库发送SQL语句,想完成对数据库的增删改查,只需要通过这个对象向数据库发送增删改查语句即可. Statement对象的executeUpdate方法,用于向数据库发送增.删.改的sql语句,executeUpdate执行完后,将会返回一个整数(即增删改语句导致了数据库几行数据发生了变化). Statement.executeQuery方法用于向数据库发送查询语句,executeQuery方法返回代表查询结果的Result

JDBC实现数据库的增删改查

本文主要讲解: JDBC的概念 JDBC的原理 创建用于测试的数据库 使用JDBC操作数据库 思考与分析 关于JDBC JDBC(Java DataBase Connectivity,java数据库连接)是一种用于执行SQL语句的Java API.JDBC是Java访问数据库的标准规范,可以为不同的关系型数据库提供统一访问,它由一组用Java语言编写的接口和类组成. 2.JDBC原理: JDBC说白了就是一套AIP接口,一套规范.然后各大数据库的驱动都实现并遵守了这套接口. 3.准备数据库: m

使用JDBC向数据库中插入一条数据

原谅我是初学者,这个方法写的很烂,以后不会改进,谢谢 /** * 通过JDBC向数据库中插入一条数据 1.Statement 用于执行SQL语句的对象 1.1 通过Connection 的 * createStatement() 方法来获取 1.2 通过executeUpdate(sql) 的方法来执行SQL 1.3 * 传入的SQL可以是INSERT/UPDATE/DELETE,但不能是SELECT * * 2.Connection和Statement使用后一定要记得关闭 需要在finally

JDBC使用数据库来完成分页功能

本篇讲诉如何在页面中通过操作数据库来完成数据显示的分页功能.当一个操作数据库进行查询的语句返回的结果集内容如果过多,那么内存极有可能溢出,所以在大数据的情况下分页是必须的.当然分页能通过很多种方式来实现,而这里我们采用的是操作数据库的方式,而且在这种方式中,最重要的是带限制条件的查询SQL语句: select name from user limit m,n 其中m与n为数字.n代表需要获取多少行的数据项,而m代表从哪开始(以0为起始),例如我们想从user表中先获取前五行数据项(1-5)的na