Java 操作MySql数据库
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 操作MySql数据库的更多相关文章
- java操作MySQL数据库(插入、删除、修改、查询、获取所有行数)
插播一段广告哈:我之前共享了两个自己写的小应用,见这篇博客百度地图开发的两个应用源码共享(Android版),没 想到有人找我来做毕设了,年前交付,时间不是很紧,大概了解了下就接下了,主要用到的就是和 ...
- JAVA操作Mysql数据库
String driver = "com.mysql.jdbc.Driver"; String url = "jdbc:mysql://127.0.0.1:3306/ph ...
- python,java操作mysql数据库,数据引擎设置为myisam时能够插入数据,转为innodb时无法插入数据
今天想给数据库换一个数据引擎,mysiam转为 innodb 结果 python 插入数据时失败,但是自增id值是存在的, 换回mysiam后,又可以插入了~~ 想换php插入试试,结果php数据引擎 ...
- Java连接MySQL数据库及操作
Java操作MySQL数据库,需要驱动mysql-connector-java 来进行操作,去下载对应的jar包 一.导入需要的jar包 我用的是maven对包进行管理,在maven中添加如下内容 ...
- 总结java操作MySQL 即JDBC的使用
java.sql包中存在DriverManager类,Connection接口,Statement接口和ResultSet接口.类和接口作用如下: DriverManager:主要用于管理驱动程序和连 ...
- Java使用Jdbc操作MySql数据库(一)
这个示例是Java操作MySql的基本方法. 在这个示例之前,要安装好MySql,并且配置好账户密码,创建一个logininfo数据库,在数据库中创建userinfo数据表.并且在表中添加示例数据. ...
- Java连接MySQL数据库及简单操作代码
1.Java连接MySQL数据库 Java连接MySql需要下载JDBC驱动MySQL-connector-java-5.0.5.zip(举例,现有新版本).然后将其解压缩到任一目录.我是解压到D盘, ...
- java数据库 JDBC操作MySQL数据库常用API 部门表和员工表 创建表 添加数据 查询数据
package com.swift.department; import java.sql.Connection; import java.sql.PreparedStatement; import ...
- JAVA操作mysql(如何更加面向对象的操作数据库)
既然谈到面向对象,所以,先把连接信息给搞个对象出来: public class DBInfo { private String driver; private String host; private ...
随机推荐
- Eclipse集成Tomcat的配置步骤实例
使用Eclipse开发B/S结构Web应用时,必须使用Web应用服务器,常见的应用服务器有Tomcat, Jboss, WebLogic, WebSphere, SUN System Applicat ...
- hdu - 1829 A Bug's Life (并查集)&&poj - 2492 A Bug's Life && poj 1703 Find them, Catch them
http://acm.hdu.edu.cn/showproblem.php?pid=1829 http://poj.org/problem?id=2492 臭虫有两种性别,并且只有异性相吸,给定n条臭 ...
- SQLServer2008 行转列2
with a as ( select numb,name,row_number() over( partition by numb order by name desc) rowid from fen ...
- html_表单
一.表单框架简介 表单是提供让读者在网页上输入,勾选和选取数据,以便提交给服务器数据库的工具.(用于将信息提交给服务器) <form>...</form>标记 作用:用于创建一 ...
- 使用 github.io 免费建站
/*************************************************************************** * 使用 github.io 免费建站 * 说 ...
- HDU 5328 Problem Killer(水题)
题意: 给一个序列,要找一个等差或等比的连续子序列,求其最长的长度. 思路: 扫两遍,判断等差或等比即可.从左往右扫,维护一个滑动窗口,考虑新加进来的数,如果满足了要求,则更新长度,否则只留最后两个数 ...
- typedef 深入剖析
typedef是一个我们常常会用到的关键字,而这个关键字有许多陷阱或者说许多不为我们深入理解的地方.很多书上都是很简单地一笔代过,并没有真正地让我们理解这个关键字.本文对其进行详细地说明.综合网络上找 ...
- c++ vector 释放内存
1.释放单个指针 关于Vector中存放指针的问题,在进行清空的时候比较安全的一种做法是: std::vector<ClassName *> ClassNameVec; ... ...
- windows下mysql 数据库的导入导出
1.以.sql方式方式导入导出 http://www.360doc.com/content/11/0114/11/2905268_86441355.shtml 2.以.txt方式导入导出 http:/ ...
- CSS打造三级下拉菜单
<html><head><meta http-equiv="Content-Type" content="text/html; charse ...