executeQuery、executeUpdate、execute

jdbc.properties内容如下,放src下面

#ORACLE

driver=oracle.jdbc.driver.OracleDriver

url=jdbc:oracle:thin:@127.0.0.1:1521:orcl

userName=ZHAOYANG

password=ZHAOYANG

 

package study;

 

import java.io.IOException;

import java.sql.Connection;

import java.sql.DriverManager;

import java.sql.SQLException;

import java.util.Properties;

import org.apache.tomcat.dbcp.dbcp2.ConnectionFactory;

 

public class ConnectFactory {

   private static Connection connection=null;

  

   static {

       try {

         Properties p=new Properties();

         p.load(ConnectionFactory.class.getClassLoader().getResourceAsStream("jdbc.properties"));

         String driver=p.getProperty("driver");

         String url=p.getProperty("url");

         String userName=p.getProperty("userName");

         String password=p.getProperty("password");

         System.out.println(driver);

        

          Class.forName(driver);

         connection=DriverManager.getConnection(url,userName,password);

       } catch (IOException e) {

           e.printStackTrace();

       } catch (ClassNotFoundException e) {

           e.printStackTrace();

       } catch (SQLException e) {

           e.printStackTrace();

       }

   }

  

   public static Connection getConnection() {

       return connection;

   }

  

   public static void main(String[] args) {

      System.out.println(connection);

   }

}

executeQuery

package study;

 

import java.sql.ResultSet;

import java.sql.SQLException;

import java.sql.Statement;

 

public class QueryData {

    public static void main(String[] args) {

       query();

    }

   

    public static void query() {

       try {

           Statement state=ConnectFactory.getConnection().createStatement();

           String sql="SELECT * FROM AA_EMP";

           ResultSet rs=state.executeQuery(sql);

           String name="";

           while(rs.next()) {

              name+=rs.getString("ENAME")+",";

           }

           System.out.println(name);

           ConnectFactory.getConnection().close();

       } catch (SQLException e) {

           e.printStackTrace();

       }

    }

}

 

executeUpdate

package study;

 

import java.sql.Connection;

import java.sql.SQLException;

import java.sql.Statement;

 

public class INUPDEData {

    public static void main(String[] args) {

       changeData();

    }

   

    public static void changeData() {

        try {

           Connection connection=ConnectFactory.getConnection();

           Statement state=connection.createStatement();

           String sql="DELETE FROM AA_EMP WHERE ENAME='1'";

           int num=state.executeUpdate(sql);

           System.out.println(num);

          

           connection.close();

       } catch (SQLException e) {

           // TODO Auto-generated catch block

           e.printStackTrace();

       }

       

    }

}

 

execute

返回值为true时,表示执行的是查询语句,可以通过getResultSet方法获取结果;

返回值为false时,执行的是更新语句或DDL语句。

package study;

 

import java.sql.Connection;

import java.sql.ResultSet;

import java.sql.SQLException;

import java.sql.Statement;

 

public class QUINUPDEData {

    public static void main(String[] args) {

       queryChangeData();

    }

   

    public static void queryChangeData() {

       try {

           Connection connection=ConnectFactory.getConnection();

           Statement state=connection.createStatement();

           String sql1="SELECT * FROM AA_EMP";

           boolean judge1=state.execute(sql1);

           System.out.println(judge1);//true

          

           if(judge1) {

              ResultSet rs=state.getResultSet();

              while(rs.next()) {

                  System.out.println(rs.getString("ENAME"));

              }

           }

          

           String sql2="UPDATE AA_EMP SET ENAME='666'";

           boolean judge2=state.execute(sql2);

           System.out.println(judge2);//false

          

           connection.close();

       } catch (SQLException e) {

           // TODO Auto-generated catch block

           e.printStackTrace();

       }

      

    }

 

}

 

PreparedStatement防止sql注入

         //采用PrepareStatement

         @Test //不会被黑:如输入name值为: a' or '1'='1

         public void login2() throws Exception{

                   Connection con=ConnectionFactory.getConnection();

                   Scanner input=new Scanner(System.in);

                   String id = input.nextLine();

                   String name = input.nextLine();

                   int age = Integer.parseInt(input.nextLine());

                  

                   //创建预处理语句对象

                   String sql= "select count(*) from stud where id=? and name=?";//凡是用户输入的地方,用“?”号(称占位符)填入

                   PreparedStatement ps=con.prepareStatement(sql);

                   //给占位设置值---设置参数

                   ps.setString(1, id);

                   ps.setString(2, name);

                  

                   ResultSet rs=ps.executeQuery();//这里不能传参数sql

                  

                   rs.next();

                   int n=rs.getInt(1);

                   if (n<=0){

                            System.out.println("登录失败!");

                   } else {

                            System.out.println("登陆成功!");

                   }

                   con.close();

}

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值