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-connector-java-5.1.18的程序包(已上传),把它粘贴在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=;
- 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(, book.getName());
- System.out.println("name:"+book.getName());
- // 对SQL语句中的第2个参数赋值
- ps.setDouble(, book.getPrice());
- // 对SQL语句中的第3个参数赋值
- ps.setInt(,book.getBookCount());
- // 对SQL语句中的第4个参数赋值
- ps.setString(, 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","");
- 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="">
- <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=;
- n=book.getId();
- if(n>) {%>书籍添加成功<%} %>
- <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="">
- <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="" border="">
- <tr>
- <td colspan=""><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=""><label>
- <div align="center">
- <input type="submit" name="Submit" value="提交" />
- </div>
- </label></td>
- </tr>
- </table>
- </form>
- </body>
- </html>
JDBC之数据库操作的更多相关文章
- [总结] JDBC数据库操作
1.加载驱动--告诉驱动管理将使用哪一个数据库的驱动包. class.forName("com.mysql.jdbc.Driver"); 2.操作JDBC ADI完成数据库动作 D ...
- Java数据库——JDBC 2.0操作
可滚动的结果集 让结果集滚动起来 //================================================= // File Name : JDBC20_demo //-- ...
- 使用JdbcTemplate简化JDBC操作 实现数据库操作
使用Spring JDBC框架方遍简单的完成JDBC操作,满足性能的需求且灵活性高. Spring JDBC框架由4个部分组成,即core.datasource.object.support. org ...
- 使用JDBC进行数据库的事务操作(2)
本篇将讲诉如何使用JDBC进行数据库有关事务的操作.在上一篇博客中已经介绍了事务的概念,和在MySQL命令行窗口进行开启事务,提交事务以及回滚事务的操作. 似乎事务和批处理都可以一次同时执行多条SQL ...
- 使用JDBC进行数据库的事务操作(1)
本篇讲述数据库中非常重要的事务概念和如何使用MySQL命令行窗口来进行数据库的事务操作.下一篇会讲述如何使用JDBC进行数据库的事务操作. 事务是指数据库中的一组逻辑操作,这个操作的特点就是在该组逻辑 ...
- 使用JDBC对数据库实现批处理操作
本篇讲述如何使用JDBC对数据库实现批处理操作.很多时候单条SQL命令不能满足我们的需求,我们需要对数据库一次实现很多操作,需要发送一批SQL命令给数据库执行. 而JDBC也提供了相应的方法给我们实现 ...
- Java数据库连接--JDBC基础知识(操作数据库:增删改查)
一.JDBC简介 JDBC是连接java应用程序和数据库之间的桥梁. 什么是JDBC? Java语言访问数据库的一种规范,是一套API. JDBC (Java Database Connectivit ...
- JDBC数据库操作
JDBC: 创建SQL语句对象 Statement statement = (Statement) con.createStatement() ; 调用执行 statement. ...
- Java通过JDBC 进行MySQL数据库操作
转自: http://blog.csdn.net/tobetheender/article/details/52772157 Java通过JDBC 进行MySQL数据库操作 原创 2016年10月10 ...
随机推荐
- poj 3501 Escape from Enemy Territory 二分+bfs
水题,不解释. #include<stdio.h> #include<math.h> #include<cstring> #include<algorithm ...
- nginx缓存优先级(缓存问题者必看)
接触nginx的兄弟或多或少都有遇到缓存问题,要么是nginx为什么不缓存,要么就是nginx缓存很快就失效等等问题,在网上找了一遍nginx缓存优先级的文章,大家可以参考下. 架构图client端 ...
- C#获得和发送网站Session
request = (HttpWebRequest)WebRequest.Create(url); if (Const. ...
- zoj 3511 Cake Robbery(线段树)
problemCode=3511" target="_blank" style="">题目链接:zoj 3511 Cake Robbery 题目 ...
- Windows下载Android源代码
下载msysgit,安装 官方下载:http://code.google.com/p/msysgit/downloads/list, 打开Git Bash,运行命令 cd D: git clone h ...
- Linux rsync 同步实践
目录[-] 1. rsync 同步的大致思路 2. rsync的安装 3. rsync的配置 4. rsync的基本操作 服务器端启动 注2. 实时同步 注3. rsync通过linux防火墙 公司网 ...
- [Javascript] Functor law
Functor laws: 1. Identity: map(id) == id 2. Composition: compose(map(f), map(g)) == map(compose(f,g) ...
- mysqldump原理0
- 《Maven_孔浩》Maven依赖
项目目录结构如下: pom.xml src main\java\zttc\itat\maven\ch02 target pom.xml文件说明 groupId:项目id(如:zt ...
- Windows下用Git下载android源码 转载
http://my.oschina.net/jiadebin/blog/52631 1.首先你的电脑要安装好git,这个请参考git官网. 2.打开git命令窗口输入git clone http:// ...