java.sql包中存在DriverManager类,Connection接口,Statement接口和ResultSet接口。类和接口作用如下:

DriverManager:主要用于管理驱动程序和连接数据库;

Connection接口:主要用于管理建立好的数据库连接;

Statement接口:主要用于执行SQL语句;

ResultSet接口:主要用于存储数据库返回的记录。

  1. 1.      连接MYSQL数据库

首先使用java.lang.Class类中forName( )方法指定JDBC驱动的类型。forname()方法指定MYSQL驱动的语句如下:

Class.forName(“com.mysql.jdbc.Driver”);

使用forName()方法需要抛出ClassNotFountException异常。

指定了MYSQL驱动程序后,就可以使用DriverManager类和Connection接口来连接数据库。在DriverManager类中提供了getConnection()方法,此方法有三参数,分别为:url,user,password。

url:指定JDBC的数据源。基本形式是“jdbc:mysql:数据源”。数据源中包括了IP或主机名,端口号和数据库名。例:jdbc:mysql://localhost:3306/hjh.

localhost表示本地计算机;3306是MYSQL端口号;hjh是数据库名。

user:MYSQL数据库的用户名

password:指定用户名的密码

例:下面为连接本地计算机的MYSQL数据库。MYSQL使用默认端口3306,连接的数据库是hjh,同户名‘root’,密码’huang’

Connection connection=DriverManager.getConnection(

“jdbc:mysql://localhost:3306/hjh”,”root”,”huang”);

这个语句要调用java.sql包下面的DriverManager类和Connection接口。Connection接口是在JDBC驱动中实现的。

  1. 2.      java操作MySQL数据库

Statement接口主要用来执行SQL语句,其中定义一些执行SQL语句的方法。SQL语句执行后返回结果由ResultSet接口管理。

Connection对象调用createStatement()方法创建Statement对象

Statement  statement =connection.createStatement();

Statement对象可以调用executeQuery()方法执行SELECT语句,select语句查询返回给Result对象。

ResultSet  result =statement.executeQuery(“SELECT语句”);

插入,更新或者删除数据

executeQuery()方法只能执行select语句。

如果需要进行插入,更新或者删除操作,需要Statement对象调用executeUpdate()方法实现,executeUpdate()方法执行完毕后,返回影响表的行数。

int  result =statement.executeUpdate(sql);

其中,sql参数必须是insert语句,update语句或delete语句,该方法返回结果为数字

例:score表插入一条新纪录

Statement  statement=connection.createStatement();

String  sql =”insert  into  score  values(21,902,’英语’,85)”;

int  result=statement.executeUpdate(sql);

System.out.println(result);         //输出插入的记录数

执行任意SQL语句

无法确定要执行的SQL语句是查询还是更新时,可以使用execute()函数。该函数返回结果是boolean类型值,返回true表示执行查询语句,false表示执行更新语句。

boolean  result=statement.execute(sql);

如要获取select语句的查询结果,需要调用getResultSet()方法

如果要获取insert语句,update语句或者delete语句影响表的行数getUpdateCount()方法。

Result  result1=statement.getResultSet();

int  result2 = statement.getUpdateSet();

例:调用execute()函数执行SQL语句,部分代码:

Statement  statement=connection.createStatement();

sql=”select  stu_id,c_name,grade from score”;

boolean  st=statement.execute(sql);

if(st==true){

ResultSet  result=statement.getResultSet();

while(result.next()){

String  id=result.getString(“stu_id”);

String  course = result.getString(“c_name”);

String  grade = result.getString(“grade”);

System.out.println(id+”  “ + “  “+grade);

}

}

else{

int  i=statement.getUpdateCount();

System.out.println(“The number is” + i);

关闭创建的对象

所有SQL语句执行完毕后,需要关闭所创建的Connection对象,Statement对象和ResultSet对象。关闭对象的顺序与创建对象的顺序相反,关闭的顺序为ResultSet对象,Statement对象,Connection对象。

例:关闭的部分代码

if(result!=null){

result.close();

result=null;

}

if(statement!=null){

statement.close();

statement=null;

}

if(connection!=null){

connection.close();

connection=null;

}

JAVA备份与还原MySQL数据库

java语言中可以执行mysqldump命令来备份MySQL数据库,也可以执行mysql命令还原MySQL数据库。

通常使用mysqldump命令来备份MySQL数据库。语句如下:

mysqldump  -u  username  -pPassword  dbname  table1  table2…>backupname.sql

username参数表示登陆数据库的用户名;password参数表示用户的密码,其与-p之间不能用空格隔开;dbname参数表示数据库的名称;table1和table2参数表示表的名称,没有该参数时将备份整个数据库;backupname.sql参数表示备份文件的名称,文件名前面可以加上一个绝对路径。通常将数据库被分成一个后缀名为sql的文件。

java语言的runtime类中的exec()方法可以运行外部命令。调用exec()方法的代码如下:Runtime  rt=Runtime.getRuntime();

rt.exec(“命令语句”);

例:下面是windows操作系统下java备份MySQL数据库

String  str=”mysqldump  -u  root  -phuang  --opt  test>c:/test.sql”;

Runtime  rt =Runtime.getRuntime();

rt.exec(“cmd/c”+str);

“--opt”选项可以提高备份的速度;“cmd”表示要使用cmd命令来打开dos窗口;

“/c”表示执行完命令后关闭命令窗口。

注:windows操作系统下一定要加上cmd/c。因为windows操作系统中,mysqldump命令是在dos窗口中运行的。

通常使用mysql命令来还原MySQL数据库。

mysql  -u username  -pPassword  [dbname]<backupName.sql;

dbname参数表示数据库名称。该参数是可选参数,可以指定数据库名,也可不指定

例:windows系统下java还原MySQL数据库

String  str=”mysql  -u  root  -phuang  test  <c:/test.sql”;

Runtime  rt=Runtime.getRuntime();

rt.exec(“cmd/c” +str);

总结java操作MySQL 即JDBC的使用的更多相关文章

  1. Java操作数据库——使用JDBC连接数据库

    Java操作数据库——使用JDBC连接数据库 摘要:本文主要学习了如何使用JDBC连接数据库. 背景 数据持久化 数据持久化就是把数据保存到可掉电式存储设备中以供之后使用.大多数情况下,特别是企业级应 ...

  2. Java操作数据库——在JDBC里使用事务

    Java操作数据库——在JDBC里使用事务 摘要:本文主要学习了如何在JDBC里使用事务. 使用Connection的事务控制方法 当JDBC程序向数据库获得一个Connection对象时,默认情况下 ...

  3. Java操作Sqlite数据库-jdbc连接

    Java操作Sqlite数据库步骤: 1. 导入Sqlite jdbc 本文使用sqlite-jdbc-3.7.2.jar,下载地址 http://pan.baidu.com/s/1kVHAGdD 2 ...

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

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

  5. Java 操作MySql数据库

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

  6. Java操作数据库之JDBC增删改查

    1.java连接MySql数据库 代码区域: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 ...

  7. Java操作SQL数据库(JDBC)

    0.引入驱动jar包 使用jdbc进行具体操作前,需要引入相关数据库的jar包, 或者使用mave管理依赖 <!-- https://mvnrepository.com/artifact/mys ...

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

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

  9. eclipse环境下,java操作MySQL的简单演示

    首先先通过power shell 进入MySQL 查看现在数据库的状态(博主是win10系统) 右键开始,选择Windows powershell ,输入MySQL -u用户名 -p密码 选择数据库( ...

随机推荐

  1. android中cursor对象的使用

    cursor对象是使用行来存储数据的,你要使用它获得数据,就必须知道每一列的数据名称以及他的数据类型才能获得对象数据 常见的方法: .close()关闭资源:记住,所有的资源对象使用完成后都要主动关闭 ...

  2. CRS

    CRS是集群就绪服务(cluster ready service)的简称,主要负责集群中的资源管理以及OCR管理.为了与10gR2集群管理软件名称crs区分,这里用CRSD代替CRS.相关概念:--资 ...

  3. Angularjs基础(八)

    AngularJS Bootstrap AngularJS 的首选样式表是 Twitter Bootstrap ,Twitter Bootstrap 是目前最受欢迎的前端框架 Bootstrap 你可 ...

  4. Angularjs基础(六)

    AngularJS HTML DOM AngularJS为HTML DOM 元素的属性提供了绑定应用数据的指令. ng-disabled指令 ng-disabled指令直接绑定应用数据到HTML的di ...

  5. JAVA面向对象思想理解分析

    1.面向对象是面向过程而言.两者都是一种思想.面向过程:强调的是功能行为.(强调过程.动作)面向对象:将功能封装进对象,强调了具备了功能的对象.(强调对象.事物)面向对象是基于面向过程的.将复杂的事情 ...

  6. PHP大数组,大文件的处理

     [原文来自于转载, 但他的结论不太正确, 尤其对foreach的判断这块上,  我拎过来进行修理 ]   在做数据统计时,难免会遇到大数组,而处理大数据经常会发生内存溢出,这篇文章中,我们聊聊如何处 ...

  7. poj_3256_Cow Picnic

    The cows are having a picnic! Each of Farmer John's K (1 ≤ K ≤ 100) cows is grazing in one of N (1 ≤ ...

  8. linux 2.6升级Python2.7 ./configure 报错问题

    升级2.7.3使用命令./configure --prefix=/usr/local/python2.7.3时,出现以下错误:checking build system type... x86_64- ...

  9. http状态码(status_codes)

    首先:1XX 接受的请求正在处理,2XX请求正常处理完毕,3XX需要进行附加操作以完成请求(重定向?),4XX服务器无法处理请求(也就是客户端请求错误),5XX服务器处理请求出错. 当然不仅仅是一张图 ...

  10. ECSHOP和SHOPEX快递单号查询德邦插件V8.6专版

    发布ECSHOP说明: ECSHOP快递物流单号查询插件特色 本ECSHOP快递物流单号跟踪插件提供国内外近2000家快递物流订单单号查询服务例如申通快递.顺丰快递.圆通快递.EMS快递.汇通快递.宅 ...