• Java使用jdbc操作Mysql数据库


    Java使用jdbc操作mysql数据库

    一、连接数据库

    1.     加载驱动,首先应该引入jar包,如果你使用shell(如cmd命令下的javac)来编译的话,你应该确保classpath中加入了jar包的路径。如果你使用eclipse的话,你要在项目中配置jar包。

    2.     使用jdbc加载驱动:

    Class.forName(驱动类);

    Mysql的驱动类:org.gjt.mm.mysql.Driver

    3.     建立Connection对象:

    Connection conn=null;

    conn=DriverManager.getConnection(DBURL,DBUSER,DBPWD);

    mysql的连接ULR形如: jdbc:mysql://localhost:3306/test

    4.     连接完成,当操作完成后,应确保conn关闭:

    conn.close();

    二、读取数据

    1.     建立Connection对象

    2.     使用Connection对象的createStatement方法建立Statement对象

    Statement st=conn.CreateStatement();

    3.     使用ResultSet保存Statement的executeQuery方法返回的数据:

    ResultSet rs=null;

    rs=st.executeQuery(sql);

    4.     使用ResultSet的next方法来判断数据是否存在,使用ResultSet的getXXX(字段名|索引)方法来获取数据(注意,如果使用索引,索引从1开始)

    while(rs.next()){

          System.out.println(rs.getInt(1));

    }

    5.依次关闭ResultSet

    关闭Statement

    关闭Connection

    三、更新数据

    1.建立Connection对象

    2.使用Connection对象的preparedStatement的方法建立PreparedStatement对象

    PreparedStatemnet pre=conn.PreparedStatement(“insert into table(name) values(?)”);

    3.使用PreparedStatement对象的setXXX方法,附加值

    pre.SetString(1,”hi”);

    5.     使用pre对象的executeUpdate方法更新数据

    pre.executeUpdate();

    6.     依次关闭PreparedStatement对象和Connection对象

    四、使用Statement更新固定数据

    Connection conn=null;

    Class.forName(DBDRIVER);

    conn=DriverManager.getConnection(DBURL,DBUSER,DBPWD);

    Statement statement=conn.createStatement();

    String sql="delete from test where id=1974";

    statement.executeUpdate(sql);

    statement.close();

    conn.close();

    五、批处理

    使用PreparedStatement的addBatch方法增加批处理,使用PreparedStatement的executeBatch()来更新数据。示例代码如下:

    Connection conn=null;

         Class.forName(DBDRIVER);

          conn=DriverManager.getConnection(DBURL,DBUSER,DBPWD);

         PreparedStatement pre=conn.prepareStatement("insert into test"+

              "(name,age) values(?,?)");

         for(int i=1;i<10;i++){

            pre.setString(1, "guoxu"+i);

            pre.setInt(2, 100+i);

            pre.addBatch();

         }

         int[] t=pre.executeBatch();

         System.out.println(t.length);

         pre.close();

         conn.close();

    六、事务处理

    事务处理是指提交一批数据,如果成功,则提交,如果失败则可以回滚。事物处理首先需要将自动提交设为false.如:conn.setAutoCommit(false);然后try,如果成功,则conn.commit();如果失败,则conn.rollback();

    但需要注意的是,对事务的处理同样需要数据表的支持,mysql的myisam不支持事务,innodb支持事务。所以需要将数据表类型改为InnoDB才可以支持事务。

    示例代码如下:

    Connection conn=null;

         Class.forName(DBDRIVER);

          conn=DriverManager.getConnection(DBURL,DBUSER,DBPWD);

         conn.setAutoCommit(false);

         Statement pre=conn.createStatement();

         try{

            pre.addBatch("insert into test(name,age) values('guoxu',25)");

            pre.addBatch("insert into test(name,age) values('lisi',25)");

            pre.addBatch("insert into test(name,age) values('wagnwu',25)");

            pre.addBatch("insert into test(name,age) values('zhaoliu',25)");

            int[] l=pre.executeBatch();

            System.out.println(l.length);

            conn.commit();

         }catch(Exception e){

            conn.rollback();

         }

         pre.close();

         conn.close();

  • 相关阅读:
    access数据库
    备份
    本机测试三级域名
    xp共享
    An error occurred on the server when processing the URL解决方法
    GridView导出Excel研究
    SQL触发器实例讲解1
    谈不上喜悦,算得上疲劳作战
    架构讨论
    梦——软件问题最终用硬件方式解决——跳出思维怪圈(原创)
  • 原文地址:https://www.cnblogs.com/itfenqing/p/4429539.html
Copyright © 2020-2023  润新知