zoukankan      html  css  js  c++  java
  • MySQL入门很简单: 15 java访问MySQL数据库

    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 8.0.18 mgr节点状态长时间处于RECOVERING 状态
    mgr安装 加入第二个节点报错-[ERROR] [MY-011526] [Repl] Plugin group_replication reported: 'This member has more executed transactions than those present in the grou
    mgr安装-启动主节点报错-[ERROR] [MY-011735] [Repl] Plugin group_replication reported: '[GCS] Unable to announce tcp port
    sqlserver维护计划无法删除处理
    ERROR 1290 (HY000): The MySQL server is running with the --secure-file-priv option so it cannot execute this statement
    keepalived-2.0.15 编译安装报错
    论自由与素质
    乘法表
    python函数和方法
    python三引号的用法
  • 原文地址:https://www.cnblogs.com/zxqstrong/p/5411882.html
Copyright © 2011-2022 走看看