1、使用下面Connection 的哪个方法可以建立一个PreparedStatement对象()
    ○A. createPrepareStatement()
    ○B. prepareStatement() // 这是建立对象,例如 PreparedStatement pstat = conn.prepareStatement(sql)
    ○C. createPreparedStatement()
    ●D. preparedStatement() // 这是对象的类型
    回答错误(+0分)
    正确答案:
    B. prepareStatement()
    2.有一个变量name=”杰克”,以下哪个sql无法达到预期查询效果() 分值5分
    ○A. “SELECT FROM EMP WHERE ENAME = ?” ;
    ○B. “SELECT
    FROM EMP WHERE ENAME = ”+name+” ;
    // sql 对于mysql来讲本身就是一个字符串,而这个字段里面有三个 双引号,就多余了一个就会报错。
    ●C. “SELECT FROM EMP WHERE ENAME = ‘”+name+”’”;
    ○D. “SELECT
    FROM EMP WHERE ENAME = ‘杰克’ “ ;
    回答错误(+0分)
    正确答案:
    B. “SELECT FROM EMP WHERE ENAME = ”+name+” ;
    3. 已知对象数据student 包含3个属性(sno,sname,sex)编写sql代码和jdbc代码,将对象中的数据存储到同名表的同名字段中。使用Statement对象执行sql 分值5分
    String className = “com.mysql.jdbc.Driver”;String url = “jdbc:mysql://localhost:3306/student”;String user = “root”;String password = “0000”;Class.forName(className);Connection conn = DriverManager.getConnection(url,user,password);Statement stat = conn.createStatement();String sql = “ insert into student(sno,sname,sex) values(‘“+student.getSno+”‘,’”+studnet.getSname+”‘,’”+student.getSex+”‘)”;ResultSet rs = stat.executeQuery(sql);
    需要人工判分(待判分)
    答案解析:
    String sql = “insert into student(sno,sname,sex) “+values(”+student.getSno()+”,’”+student.getSname()+”’,’”+student.getSex()+”’)”;try{Connection conn = DriverManager.getConnection(“jdbc:mysql:///test?characterEncoding=utf8”,”root”,”root”);Statement stmt = conn.createStatement();stmt.executeUpdate(sql);stmt.close()conn.close();}catch(Exception e){e.printStackTrace()}
    // JDBC连接msyql时,增删改查用 executeUpdate(sql),并且要注意是否有异常有则抛出异常。
    4.已知STUDENT表有3个字段(SNO,SNAME,SEX), java中定义了条件变量sex编写sql代码和jdbc代码,将表中与sex变量相同的数据全部取出,并输出在控制台。使用PreparedStatement对象执行sql 分值5分
    String className = “com.mysql.jdbc.Driver”String url = “jdbc:mysql://localhost:3306/student”;String user = “root”;String password = “0000”;Class.forName(className);Connection conn = DriverManager.getConnection(url,user,password);String sql = “select
    from student where sex = ?”;PreparedStatement pstat = conn.prepareStatement(sql);pstat.setString(1,sex);ResultSet rs = pstat.executeQuery();if(rs.next()){System.out.println(rs.getString(“SNO”));System.out.println(rs.getString(“SNAME”));System.out.println(rs.getString(“SEX”))}
    需要人工判分(待判分)
    答案解析:
    String sql = “select sno,sname,sex from student where sex = ?” ;try{Connection conn = DriverManager.getConnection(“jdbc:mysql:///test?characterEncoding=utf8”,”root”,”root”);PreparedStatement stmt = conn.prepareStatement(sql);stmt.setString(1,sex);ResultSet rs = stmt.executeQuery();while(rs.next){System.out.print(rs.getInt(“sno”)+”,”);System.out.print(rs.getString(“sname”)+”,”);System.out.print(rs.getString(“sex”));System.out.println();}rs.close();stmt.close();conn.close();}catch(Excepiton e){e.printStackTrace()}
    // 创建了对象,有的对象用了需要关闭 close()。异常有异常要抛出异常。
    5.已知STUDENT表有3个字段(SNO,SNAME,SEX) 其中SNO PRIMARY KEY AUTO_INCREMENT已知待执行sql=”INSERT INTO STUDENT(SNAME,SEX) VALUES(‘zzt’,’male’)” ;编写statement部分代码执行sql,并获得数据库表中自动生成的主键值 分值5分
    ResultSet rs = stat.getGeneratedKeys();if (rs.next()){id = rs.getInt(1);}
    需要人工判分(待判分)
    答案解析:
    try{Connection conn = DriverManager.getConnection(“jdbc:mysql:///test?characterEncoding=utf8”,”root”,”root”);PreparedStatement stmt = conn.prepareStatement(sql);stmt.executeUpdate();ResultSet rs = stmt.getGeneratedKeys ();while(rs.next){int sno = rs.getInt(1) ;}rs.close();stmt.close();conn.close();}catch(Excepiton e){e.printStackTrace()}
    // 创建了对象,有的对象用了需要关闭 close()。异常有异常要抛出异常。
    ==============================错题总结======================
    1.PreparedStatement 和 prepareStatement是有区别的,两个单词一眼看着是一样的,但前面PreparedStatement多了个d,就多了个d两个作用就不一样。这里就说明了以后看题要仔细仔细仔细。
    2.在JDBC中创建了对象资源,使用后就要关闭close()。
    3.JDBC中会发生很多异常,有的话,就要抛出异常