zoukankan      html  css  js  c++  java
  • JAVA连接数据库后,对数据库进行增删改查

    1.Statement

    增删改:

    方法:execute(String SQL)

        String url="jdbc:Access:///E://A//shop.mdb";

        Connection con=null; //数据库连接对象

        Statement st = null;//数据库操作对象

        //SQL语句

        //String sql="insert into goods values('7','鬼王','男','鬼王宗','伏龙鼎')";

        String sql="update goods set 门派='青云门' where 姓名='张小凡'";

        Class.forName("com.hxtt.sql.access.AccessDriver");

        con = DriverManager.getConnection(url,"","");

        System.out.println("连接成功");

        //为数据库创建一个操作对象          

        st=con.createStatement();//作用为,将数据库连接对象与数据库操作对象连接           

          st.execute(sql);  //此方法用于执行insert  update delete语句

        System.out.println("插入操作成功");

    查找:

    方法:executeQuery(String  SQL)返回ResultSet对象

        String url="jdbc:Access:///E://A//shop.mdb";

        Connection con=null;

        Statement st = null;//执行查询的对象

        String sql="select * from goods";

        Class.forName("com.hxtt.sql.access.AccessDriver");

        con = DriverManager.getConnection(url,"","");

        System.out.println("连接成功");

        st = con.createStatement();//创建查询对象

        ResultSet rs;

        rs = st.executeQuery(sql);//执行查询语句,并返回一个结果

         //查询结果是以指针的形式出现的,指针指向第一条记录,通过移动指针来查看结果

        while(rs.next()){//通过循环依次读取查询结果

        //与数据库访问有关的索引都是从1开始

                 System.out.println(rs.getString(2)+":"+rs.getString(3)+":"+rs.getString(4));

                    }

    2. 预编译方式PreparedStatement 

    预编译(PreparedStatement)与Statement的不同点

     

    1.预编译在与数据库连接对象建立连接时,就将SQL语句传入对象中,再次调用时就不需要传入SQL

     

    2.预编译可以在SQL中传入参数

    查询:executeQuery()

    Connection con=null;

    String url="jdbc:Access:///E://A//shop.mdb";

    PreparedStatement ps = null;

    //?就是设置的未知参数,方便传入参数

     

    String sql = "select name,性别,门派,武器  from goods where name=?" ;

    ResultSet rs = null;         

    Class.forName("com.hxtt.sql.access.AccessDriver");

    con = DriverManager.getConnection(url);

    System.out.println("连接成功!");

    ps = con.prepareStatement(sql);

    //通过setString来传入参数“1”表示未知数处于SQL语句中的位置

     

     ps.setString(1, "鬼王");

     

    rs=ps.executeQuery();   

     

    while(rs.next()){ System.out.println(rs.getString(1)+":"+rs.getString(2)+":"+rs.getString(3)+":"+rs.getString(4));

     

               }

     

    增删改:executeUpdate()

    Connection con=null;

           String url="jdbc:Access:///E://A//shop.mdb";

           PreparedStatement ps = null;

           String sql="insert into goods values(?,?,?,?,?)";

            Class.forName("com.hxtt.sql.access.AccessDriver");

            con = DriverManager.getConnection(url);

            System.out.println("连接成功!");

            //将prepareStatement与数据库连接对象建立连接

               ps = con.prepareStatement(sql);

               ps.setInt(1, 9);

     

               ps.setString(2, "金铃儿");

     

               ps.setString(3, "女");

     

               ps.setString(4, "合欢派");

     

               ps.setString(5, "不详");

     

               //用于执行insert delete update语句

     

               //返回一个int的值,代表通过此方法修改的数据库的行数

               int i = ps.executeUpdate();

     

               if(i>0)System.out.println("操作成功");

     

               else System.out.println("操作失败");

     

    3. 存储方式连接CallableStatement

     

    区别:只有调用的接口方式不同,其他操作均相同

    无参

    Connection con=null;

           //调用存储函数的接口

           CallableStatement cs = null;

           ResultSet rs;

           String url="jdbc:Access:///E://A//shop.mdb";

           try {

               Class.forName("com.hxtt.sql.access.AccessDriver");

               con = DriverManager.getConnection(url);

               System.out.println("Connected!");

               //输入要执行的存储过程的名称

               cs =  con.prepareCall("{call proPlayFilm}");

               rs = cs.executeQuery();

               while(rs.next()){

               System.out.println(rs.getString(1)+":"+rs.getString(2)+":"+rs.getString(3)+":"+rs.getString(4));

               }

     带参

    ?就是存储过程的参数

  • 相关阅读:
    L3-015. 球队“食物链”【DFS + 剪枝】
    L3-002. 堆栈【主席树 or 线段树 or 分块】
    PTA L1-006 连续因子【暴力模拟】
    【路由和交换之H3C自导自演】
    【ospf-stub区域配置】
    【ospf-链路验证】
    【ospf-vlink虚拟连接】
    【c学习-14】
    【c学习-13】
    【php学习-5】
  • 原文地址:https://www.cnblogs.com/tangwanzun/p/5823459.html
Copyright © 2011-2022 走看看