Java 项目开发中数据库操作是很重要的一个方面,对于初学者来说,MySql是比较容易熟悉的一种常见数据库,这篇文章记录了如何用Java来操作MySql数据库。

第一章 JDBC的概念

JDBC(Java Database Connectivity)是连接Java和数据库的纽带,简单的说,就是Java利用JDBC API屏蔽掉了底层数据库具体实现的差异。对于不同的数据库,Java的操作方式是不同的,这样有两个优点:

  • 简化了访问数据库的程序代码,无须涉及与底层数据库实现相关的细节
  • 可以在同一个Java程序中使用多种数据库

对于不同的数据库,加载不同的驱动即可,比如,对于MySql数据库,需在工程中加入Externel Lib(如下图1.1所示),在程序中加入加载语句Class.forName("com.mysql.jdbc.Driver");即可。

               图1.1

JDBC API是固定的,由Sun公司制定,所有第三方数据库供应商的数据库要提供给Java访问,必须实现这个API,我们称之为JDBC驱动。JDBC驱动管理器(java.sql.DriverManager)类也是由Sun公司实现的,负责注册特定的JDBC驱动,根据特定的数据库的JDBC驱动建立数据库连接。比如,对于MySql,一个典型的注册语句就是:DriverManager.registerDriver(new  com.mysql.jdbc.Driver());

第二章 一个java连接MySql数据库的实例

JDBC API是固定的,由Sun公司制定,所有第三方数据库供应商的数据库要提供给Java访问,必须实现这个API,我们称之为JDBC驱动。JDBC驱动管理器(java.sql.DriverManager)类也是由Sun公司实现的,负责注册特定的JDBC驱动,根据特定的数据库的JDBC驱动建立数据库连接。比如,对于MySql,一个典型的注册语句就是:DriverManager.registerDriver(new  com.mysql.jdbc.Driver());

package databasetest;

import java.sql.*;
import java.util.*;
import java.io.*;
public class JDBCTest {
public static void main(String[] args) throws ClassNotFoundException,SQLException{
// TODO Auto-generated method stub
Connection con;
Statement stmt;
ResultSet rs;
//加载驱动程序,下面的代码加载MySQL驱动程序
Class.forName("com.mysql.jdbc.Driver");
String dbUrl = "jdbc:mysql://localhost:3306/BookDB?useUnicode=true&characterEncoding=UTF8";
String dbUser="root";
String dbPwd="miwusenlin";
//注册MySQL驱动程序
DriverManager.registerDriver(new com.mysql.jdbc.Driver());
//用适当的驱动程序连接到数据库,建立数据库连接
con = java.sql.DriverManager.getConnection(dbUrl,dbUser,dbPwd);
//创建一个SQL声明
stmt = con.createStatement();
//增加新记录
stmt.executeQuery("SET NAMES UTF8");
stmt.executeUpdate("insert into BOOKS (ID,NAME,TITLE,PRICE) values('999','汤姆','Tomcat Bible',44.5)");
//查询记录
rs = stmt.executeQuery("select ID,NAME,TITLE,PRICE from BOOKS");
//打印所显示的数据
while (rs.next()){
String col1 = rs.getString(1);
String col2 = rs.getString(2);
String col3 = rs.getString(3);
float col4 = rs.getFloat(4);
//输出查询结果
System.out.println(col1+" "+col2+" "+col3+" "+col4 );
}
stmt.executeUpdate("delete from BOOKS where ID='999'"); //关闭数据库连接
rs.close();
stmt.close();
con.close();
} }

在上述代码中需要注意的是:String dbUrl = "jdbc:mysql://localhost:3306/BookDB?useUnicode=true&characterEncoding=UTF8"; 中字符编码设定要和数据库中表的格式一致。

第三章 java.sql包中的接口和类

针对于MySql数据库的JDBC API主要位于java.sql包中,其中关键的接口如下:

  • DriverManager类:主要是用来注册数据库驱动
  • Connection接口:表示数据库连接
  • Statement接口:负责执行SQL语句
  • PreparedStatement接口:负责执行预准备的SQL语句
  • CallableStatement接口:负责执行SQL存储过程
  • ResultSet接口:表示SQL查询结果的返回值


参考:

维基百科:java数据库连接

Java.sql包官方文档

Java数据库连接池

Java 操作MySql数据库的更多相关文章

  1. java操作MySQL数据库(插入、删除、修改、查询、获取所有行数)

    插播一段广告哈:我之前共享了两个自己写的小应用,见这篇博客百度地图开发的两个应用源码共享(Android版),没 想到有人找我来做毕设了,年前交付,时间不是很紧,大概了解了下就接下了,主要用到的就是和 ...

  2. JAVA操作Mysql数据库

    String driver = "com.mysql.jdbc.Driver"; String url = "jdbc:mysql://127.0.0.1:3306/ph ...

  3. python,java操作mysql数据库,数据引擎设置为myisam时能够插入数据,转为innodb时无法插入数据

    今天想给数据库换一个数据引擎,mysiam转为 innodb 结果 python 插入数据时失败,但是自增id值是存在的, 换回mysiam后,又可以插入了~~ 想换php插入试试,结果php数据引擎 ...

  4. Java连接MySQL数据库及操作

    Java操作MySQL数据库,需要驱动mysql-connector-java 来进行操作,去下载对应的jar包   一.导入需要的jar包 我用的是maven对包进行管理,在maven中添加如下内容 ...

  5. 总结java操作MySQL 即JDBC的使用

    java.sql包中存在DriverManager类,Connection接口,Statement接口和ResultSet接口.类和接口作用如下: DriverManager:主要用于管理驱动程序和连 ...

  6. Java使用Jdbc操作MySql数据库(一)

    这个示例是Java操作MySql的基本方法. 在这个示例之前,要安装好MySql,并且配置好账户密码,创建一个logininfo数据库,在数据库中创建userinfo数据表.并且在表中添加示例数据. ...

  7. Java连接MySQL数据库及简单操作代码

    1.Java连接MySQL数据库 Java连接MySql需要下载JDBC驱动MySQL-connector-java-5.0.5.zip(举例,现有新版本).然后将其解压缩到任一目录.我是解压到D盘, ...

  8. java数据库 JDBC操作MySQL数据库常用API 部门表和员工表 创建表 添加数据 查询数据

    package com.swift.department; import java.sql.Connection; import java.sql.PreparedStatement; import ...

  9. JAVA操作mysql(如何更加面向对象的操作数据库)

    既然谈到面向对象,所以,先把连接信息给搞个对象出来: public class DBInfo { private String driver; private String host; private ...

随机推荐

  1. hdu - 2102 A计划 (简单bfs)

    http://acm.hdu.edu.cn/showproblem.php?pid=2102 题目还是不难,注意起点一定是(0,0,0),然后到达P点时间<=t都可以. 用一个3维字符数组存储图 ...

  2. MTK android flash配置

    关于6573集成MCP nandflash的方法,driver_allinone 和Memory Customer Document pdf的说明里面漏了很多细节.在此补上. 1.首先确认flash型 ...

  3. 【HDOJ】5446 Unknown Treasure

    1. 题目描述题目很简单,就是求$C(n,m) % M$. 2. 基本思路这是一道应用了众多初等数论定理的题目,因为数据范围较大因此使用Lucas求$C(n,m) % P$.而M较大,因此通过$a[i ...

  4. Linux 下安装python软件包(pip、nose、virtualenv、distribute )

    新手刚开始学习Python,目前学习<笨方法学python>ing- 在学习习题46时需要安装几个软件包:pip.nose.virtualenv.distribute !在此记录Linux ...

  5. 【笨嘴拙舌WINDOWS】GDI对象之位图

    GDI对象在windows中可以描述成为一次绘画操作时可使用的抽象工具.包括(画笔.画刷.字体.区域.调色板.位图等) GDI对象里的对象概念和在编程领域中面向对象编程的对象概念是不一样的! GDI对 ...

  6. PHP常见框架

    PHP是一种在国内外都比较流行的开源服务器端脚本开发语言.能够适应大中小型项目的开发需求.我们将在这篇文章中向大家介绍几款主流PHP框架及其相关优缺点评比,作为一个参考分享给朋友们. 主要参考的PHP ...

  7. ui/ue设计师应该了解的原型设计软件

    前段实践整理过一些原型设计用的软件,这里分享一下,喜欢对更多的PM战线的童鞋有所裨益.(因为交互原型工具Axure ui设计师都很常用了,文中就不专门介绍了) 首先分下类: •1.交互原型(产品能做什 ...

  8. [xUnix 开发环境--01] MAMP mac os 10.10 配置经历、要点——01. phpmyadmin连不上

    Mac OS 10.10已经自带了apache2和php(php的路径我至今还没不知道,太懒没去找) 用brew安装mysql, 在官网上下载了phpmyadmin,按官方方式配置完后,登录不上,也不 ...

  9. (C#基础) byte[] 之初始化, 赋值,转换。

    byte[] 之初始化赋值 用for loop 赋值当然是最基本的方法,不过在C#里面还有其他的便捷方法. 1. 创建一个长度为10的byte数组,并且其中每个byte的值为0. byte[] myB ...

  10. [原创] Ubuntu Linux 安装Eclipse

    一 安装JDK 1.下载 JDK 7从http://www.oracle.com/technetwork/java/javasebusiness/downloads/选择下载JDK的最新版本 JDK ...