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(); } }