• 总结java操作MySQL 即JDBC的使用


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

  • 相关阅读:
    20080408 VS2003 中 Jscript 文件中文乱码问题
    20080330 single process memory on Windows and Windows virtual memory
    20080331 Corillian's product is a Component Container Name at least 3 component containers that ship now with the Windows Server Family
    20080330 the difference between an EXE and a DLL
    20080408 Javascript中的字符串替换replaceG
    20080501 修复Windows Update 自动更新
    20080331 How many processes can listen on a single TCPIP port
    20080329 What is a Windows Service and how does its lifecycle differ from a standard EXE
    20080407 Fire in the hole
    20080328 Adobe Launches Webbased Photoshop Express
  • 原文地址:https://www.cnblogs.com/kisty/p/4974793.html
Copyright © 2020-2023  润新知