1. 连接数据库

1.1 下载安装驱动

  java通过JDBC(Java Database Connectivity,Java数据库连接)来访问MySQL数据库。JDBC的编程接口提供的接口和类与MySQL数据库建立连接,然后将SQL语句的执行结果进行处理。

1)下载MySQL Connector/J驱动

  http://dev.mysql.com/downloads/file/?id=460363

2)MyEclipse导入JDBC驱动

  Window|Perference  Path|User Libraries  New 新建库文件:MySQL-JDBC   Add JARs

  右击工程名 Build Path, Add Library, User Library , Next, 选择MySQL-JDBC

1.2 连接MySQL数据库

java.sql 包中存在 DriverManager类, Connection接口,Statement接口,ResultSet接口

DriverManager类:管理驱动程序和连接数据库

Connection接口:管理建立好的数据库连接

Statement接口:执行SQL语句

ResultSet接口: 存储数据库返回的记录

1)使用java.lang.Class类中的forName()指定JDBC驱动的类型

2)使用DriverManager类和Connection接口连接数据库

2. 操纵数据库

1)创建Statement对象

2)使用SELECT语句查询数据

3)插入更新或删除数据

4)执行任意SQL语句

5)关闭创建的对象

3.备份和还原数据库

1)备份

2)还原

实例:

1. 编写DB.java类

1)通过DB.java类连接MySQL数据库,然后操作test数据库下的sorce表

2)在DB.java类中查询sorce表中的所有记录,SELECT语句如下: SELECT * FROM sorce

3)向sorce表中插入一条新记录,INSERT语句如下: INSERT INTO sorce VALUES(25,905, 'English', 95);

4)更新id为25的记录,将grade字段的值设为80,UPDATE语句为:UPDATE score SET grade=80 WHERE id=25;

5)关闭打开的所有数据库对象

2. 编写DB_backup_load.java类

1)该类中定义backup()方法,通过backup()方法备份test数据库

2)该类中定义load()方法,通过load()方法还原test数据库

import.java.sql.Connection;
import.java.sql.DriverManager;
import.java.sql.ResultSet;
import.java.sql.SQLException;
import.java.sql.Statement; //执行SELECT INSERT UPDATE语句 public class DB{
public static void main (String args[]){ //将JDBC的协议 主机名 端口号 需要连接的数据库等信息复制给字符串变量url
String url="jdbc:mysql://localhost:3306/test";
String user="root";
String passwd="huang";
String sql1="SELECT * FROM score";
String sql2="INSERT INTO score VALUES(25,905,'English',95)";
String sql3="UPDATE score SET grade=80 WHERE id=25";
try{
Class.forname("com.mysql.jdbc.Driver"); //指定MySQL驱动
Connection con=DriverManager.getConnection(url,user,passwd);
System.out.println("连接数据库服务器成功");
Statement stat=con.createStatement();
ResultSet rs=stat.executeQuery(sql1); //执行SELECT
//SELECT语句的查询结果存储在rs中,按顺序读取rs中的每一条记录
while(rs.next()){
int id=rs.getInt("id");
int stu_id=rs.getInt("stu_id");
String couse=rs.getString("c.name");
int grade=rs.getInt("grade");
System.out.println(id+" "+stu_id+" "+couse+" "+grade);
} //通过executeUpdate()方法执行INSERT语句,执行完成后返回插入的记录
int i=stat.executeUpdate(sql2);
if(i!=0)
{
System.out.println("INSERT 语句执行成功");
}
//通过executeUpdate()执行UPDATE语句 完成后返回更新的记录数
int j=stat.executeUpdate(sql3);
if(j!=0){
System.out.println("UPDATE 语句执行成功");
} //如果ResultSet对象不为空,那么调用close()关闭ResultSet对象
if(rs!=null){
rs.close();
rs.null;
} //如果Statement对象不为空,那么调用close()关闭Statement对象
if(stat!=null){
stat.close();
stat.null;
} //如果Connection对象不为空,那么调用close()关闭Connection对象
if(con!=null){
con.close();
con.null;
}
}catch(ClassNotFoundException e){
System.out.print("没有找到MySQL驱动")
}catch(SQLException e){
System.out.print("连接数据库服务器失败")
} }
}
import java.io.IOException;
public class DB_backup_load{
private static String str=null;
public static void backup(){ str="mysqldump -u root -phuang --opt test >c:/test.sql";
try{
//使用exec()函数执行mysqldump命令
//该代码在windows下运行,需要加上"cmd \c"
Runtime rt=Runtime.getRuntime();
rt.exec("cmd/c"+str);
System.out.println("备份成功");
}catch(IOException e){
e.printStackTrace();
System.out.println("备份失败");
}
} public static void load(){
str="mysql -u root -phuang test <c:/test.sql";
try{
RunTime rt=RunTime.getRuntime();
rt.exec("cmd/c"+str);
System.out.println("还原成功");
}catch(IOException e){
e.printStackTrace();
System.out.println("还原失败");
}
} publ static void main(String args[]){
DB_backup_load db=new DB_backup_load();
db.backup();
db.load();
}
}

MySQL入门很简单: 15 java访问MySQL数据库的更多相关文章

  1. 《Mysql 入门很简单》(读后感①)

    下载完整版<Mysql 入门很简单>,点击这里~: http://files.cnblogs.com/files/zhengyeye/MySQL%E5%85%A5%E9%97%A8%E5% ...

  2. MySQL入门很简单: 12 MYSQL 用户管理

    1. 权限表 安装MySQL会自动安装一个名为mysql的数据库,存储权限表: user表, db表,host表,table_priv表,columns_priv表,proc_priv表等. 1)us ...

  3. MySQL入门很简单: 1 数据库概述

    1. 数据库概述 1.1 数据存储方式: 1)人工管理阶段 2)文件系统阶段: 文件系统通过文件的存储路径和文件名称访问文件中的数据 3)数据库系统阶段:Oracle, SQL Server, MyS ...

  4. MySQL入门很简单-触发器

    1.触发器是由事件来触发某个操作,这些事件包括insert语句.update语句和delete语句.当数据库系统执行这些事件时,会激活触发器执行相应操作.MySQL从5.0.2开始支持触发器.使用触发 ...

  5. MySQL入门很简单: 14MySQL日志

    二进制日志: 以二进制文件的形式记录了数据库中的操作,但不记录查询语句 错误日志: 记录MySQL服务器的启动,关闭和运行错误等信息 通用查询日志: 记录用户登录和记录查询的信息 慢查询日志: 记录执 ...

  6. MySQL入门很简单: 13 数据备份和还原

    1. 数据备份 1)使用mysqldump命令备份 第一种:备份一个数据库 mysqldump -u username -p dbname table1 table2 ... > BackupN ...

  7. MySQL入门很简单: 8查询数据

    1. 查询语句语法 SELECT 属性列表 FROM 表名和视图列表 [WHERE 条件表达式1] [GROUP BY 属性名1 [HAVING t条件表达式2]] [ORDER BY 属性名2 [A ...

  8. MySQL入门很简单: 2 MySQL数据类型

    2. MySQL数据类型 2.1 整数类型 后面的是默认显示宽度: tinyint(4) smallint(6) mediumint(9) int(11) bigint(20) 2.2 浮点型和定点数 ...

  9. MySQL入门很简单: 6 视图

    1. 视图含义作用 视图是虚拟的表,是从数据率中一个或多个表中导出来的表:  数据库中只存放了视图的定义,没有存放视图中的数据,数据在原先的表中:  一旦表中的数据发生变化,显示在视图中的数据也会发生 ...

随机推荐

  1. Linux下Redis安装使用,主从模式,哨兵模式与PHP扩展(PHP7适用)

    一,软件准备 #redis wget http://download.redis.io/releases/redis-3.0.7.tar.gz #phpredis 非php7使用 下载后文件名为:ph ...

  2. hdu2068 RPG的错排

    RPG的错排 时间限制:1000/1000 MS(Java / Others)内存限制:32768/32768 K(Java / Others)总提交内容:16421接受的提交内容:6670 问题描述 ...

  3. python3 发送QQ邮件

    from email.header import Headerfrom email.mime.text import MIMETextfrom smtplib import SMTP_SSL emai ...

  4. python 格式化时间含中文报错: 'locale' codec can't encode character '\u5e74'

    执行下面代码报错: UnicodeEncodeError: 'locale' codec can't encode character '\u5e74' in position 2: Illegal ...

  5. junit使用中的一些问题

    之前开发过程中的测试,不是使用main方法,就是启动项目调用地址,尤其是后者,测试起来非常不方便,今天配置了下junit,中间遇到些问题,记录如下. 首先下载spring-test.jar包和juni ...

  6. Tab 插件(一)

    前言 使用Jquery封装插件,使代码复用不需要每个功能重新编写代码只需修改传入参数. jQuery 插件常见到有类开发 和对象开发模式, 在下边介绍两种模式使用,初次编写,有误拍砖. jQuery ...

  7. java多线程(一)

    一.进程,线程,并发,并行 1.1 进程和线程的区别       进程是指:一个内存中运行的应用程序,每个进程都有自己独立的一块内存空间,一个进程中可以启动多个线程.比如在Windows系统中,一个运 ...

  8. Linux平台命令挂载U盘——实现数据共享

    废话少说,一一道来,Linux中按照步骤来做就可以啦.(嵌入式平台) 1.先看看本地的mount信息 # mountrootfs on / type rootfs (rw)/dev/root on / ...

  9. python的变量命名及其使用

    以下内容皆从书本自学 ,归纳. 1. 变量名只能包含字母.数字和下划线.变量名可以字母或下划线打头,但不能以数字打头,例如,可将变量命名为message_1,但不能将其命名为1_message. 2. ...

  10. autofac 一个接口多个实现的顺序执行

    接口: namespace AutofacTest.Interface { public interface IUserInfo { string GetUserINfo(int uid); int ...