首页 技术 正文
技术 2022年11月15日
0 收藏 570 点赞 5,122 浏览 3211 个字

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驱动的类型

MySQL入门很简单:  15 java访问MySQL数据库

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

MySQL入门很简单:  15 java访问MySQL数据库MySQL入门很简单:  15 java访问MySQL数据库

2. 操纵数据库

1)创建Statement对象

MySQL入门很简单:  15 java访问MySQL数据库

2)使用SELECT语句查询数据

MySQL入门很简单:  15 java访问MySQL数据库MySQL入门很简单:  15 java访问MySQL数据库

3)插入更新或删除数据

MySQL入门很简单:  15 java访问MySQL数据库

4)执行任意SQL语句

MySQL入门很简单:  15 java访问MySQL数据库MySQL入门很简单:  15 java访问MySQL数据库

5)关闭创建的对象

MySQL入门很简单:  15 java访问MySQL数据库

3.备份和还原数据库

1)备份

MySQL入门很简单:  15 java访问MySQL数据库MySQL入门很简单:  15 java访问MySQL数据库

2)还原

MySQL入门很简单:  15 java访问MySQL数据库

实例:

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();
}
}
相关推荐
python开发_常用的python模块及安装方法
adodb:我们领导推荐的数据库连接组件bsddb3:BerkeleyDB的连接组件Cheetah-1.0:我比较喜欢这个版本的cheeta…
日期:2022-11-24 点赞:878 阅读:9,028
Educational Codeforces Round 11 C. Hard Process 二分
C. Hard Process题目连接:http://www.codeforces.com/contest/660/problem/CDes…
日期:2022-11-24 点赞:807 阅读:5,518
下载Ubuntn 17.04 内核源代码
zengkefu@server1:/usr/src$ uname -aLinux server1 4.10.0-19-generic #21…
日期:2022-11-24 点赞:569 阅读:6,365
可用Active Desktop Calendar V7.86 注册码序列号
可用Active Desktop Calendar V7.86 注册码序列号Name: www.greendown.cn Code: &nb…
日期:2022-11-24 点赞:733 阅读:6,146
Android调用系统相机、自定义相机、处理大图片
Android调用系统相机和自定义相机实例本博文主要是介绍了android上使用相机进行拍照并显示的两种方式,并且由于涉及到要把拍到的照片显…
日期:2022-11-24 点赞:512 阅读:7,780
Struts的使用
一、Struts2的获取  Struts的官方网站为:http://struts.apache.org/  下载完Struts2的jar包,…
日期:2022-11-24 点赞:671 阅读:4,857