PreparedStatement:

是一个预编译对象

是Statement的子接口

允许数据库预编译SQL

执行SQL的时候,无需重新传入SQL语句,它们已经编译SQL语句

执行SQL语句 :executeQuery()或execute Update() 注意:不要在传入SQL语句

可以有效地防止SQL注入

方法:

->setXxxx(int index,Xxx value):传入参数值。

连接/关闭方法

public Connection getConnection() throws Exception {String driver = "com.mysql.jdbc.Driver";String url = "jdbc:mysql://localhost:3307/shijian";String user = "root";String password = "1234";Class.forName(driver);Connection connection = DriverManager.getConnection(url, user, password);return connection;//System.out.println(connection);
    }//关闭public  void Close(ResultSet rs, Statement statement, Connection conn) {if (rs != null) {try {rs.close();} catch (SQLException e) {e.printStackTrace();}}if (statement != null) {try {statement.close();} catch (SQLException e) {e.printStackTrace();}}if (conn != null) {try {conn.close();} catch (SQLException e) {e.printStackTrace();}}}

    @Testpublic void testPreparedStatementjdbc(){Connection connection = null;PreparedStatement preparedStatement = null;try {connection = getConnection();String sql = "insert into student(sname,sclass) values(?,?)"; preparedStatement = (PreparedStatement) connection.prepareStatement(sql); preparedStatement.setString(1, "lisi");preparedStatement.setInt(2, 123456);//不要传入SQL语句
            preparedStatement.executeUpdate();} catch (Exception e) {e.printStackTrace();}finally {Close(null, preparedStatement, connection);}}

ResultSetMetaData
是描述ResuleSet的元数据对象,即从中得到有多少列,列明是什么得到ResultSetMetaData  对象:调用ResultSet 的 getMetaData()方法ResultSetMetaData的好方法
-->int getColumnLabel(int column) 获取指定的列名,缩影从1开始
-->String getColumnCount() SQL语句有哪些列
    @Testpublic void testResultMeteData(){Connection connection = null;PreparedStatement statement  =null;ResultSet resuleset = null;try {String sql = "select * from student where id = ?";connection = testGetConnection();statement = (PreparedStatement) connection.prepareStatement(sql);statement.setInt(1, 2);resuleset = statement.executeQuery();//1.得到ResultSetMetaData对象ResultSetMetaData rsmd = (ResultSetMetaData) resuleset.getMetaData();//2.打印每一列的列名Map<String,Object> values = new HashMap<String,Object>();while(resuleset.next()){for(int i = 0; i < rsmd.getColumnCount();i++){String c = rsmd.getColumnLabel(i +1);Object ovalue = resuleset.getObject(c);//System.out.println(c + "--" + ovalue);
                    values.put(c, ovalue); }Class clazz = Student.class;Object object = clazz.newInstance();for(Map.Entry<String, Object> entry: values.entrySet()){String sid = entry.getKey();String sname = (String) entry.getValue();System.out.println( sid + "--" + sname);}
            }} catch (Exception e) {e.printStackTrace();}finally {Close(resuleset, statement, connection);}}

转载于:https://www.cnblogs.com/Mrchengs/p/9780723.html

JDBC(4)PreparedStatement相关推荐

  1. Java基础(三十二)JDBC(2)连接数据库

    一.连接数据库的过程 连接数据库的过程:加载数据库驱动程序,不过只需在第一次访问数据库时加载一次,然后在每次访问数据库时创建一个Connection实例,然后执行操作数据库的SQL语句,并返回执行结果 ...

  2. 头歌Educoder——Java高级特性 - JDBC(上)

    第1关:JDBC连接数据库 任务描述 本关任务:使用jdbc连接数据库并完成创建数据库和创建表的操作. 相关知识 JDBC API提供以下接口和类: DriverManager:此类管理数据库驱动程序 ...

  3. Spring Cloud config ------ jdbc(mysql)配置库

    在前面文章基础上进行,请参考: Spring Cloud config ------ 基础使用 Spring Cloud config ------ 认证和安全 Spring Cloud config ...

  4. java jdbc jar包_大数据从入门到深入:JavaEE 之 数据库技术 JDBC(1)

    1章 JDBC 1.1 JDBC概述 JDBC(Java DataBase Connectivity,java动态数据 库连接技术)是一种用于执行SQL语句的Java API : Applicatio ...

  5. 五、JDBC(复习)

    目录 一.JDBC核心组件 二.使用步骤 三.连接步骤 1.导包 2.注册JDBC驱动程序: 3.数据库URL配置,创建连接对象 (1)加载驱动 (2)获得链接 (3)定义sql,创建状态通道 (4) ...

  6. Educoder Java高级特性 - JDBC(上)

    第1关:JDBC连接数据库 任务描述 本关任务:使用jdbc连接数据库并完成创建数据库和创建表的操作. 相关知识 JDBC API提供以下接口和类: DriverManager:此类管理数据库驱动程序 ...

  7. 剑指Offer(更新)之数据库 JDBC(三)

    1.数据库三范式是什么 第一范式:每一列属性都是不可再分的属性值,确保每一列的原子性 第二范式:(确保表中每列都和主键相关)一张数据表至少有一个主键 第三范式:(确保每列都和主键列直接相关,而不是间接 ...

  8. JDBC(14)—对DAO进行改进修改

    结构: DAO2_7< T >(接口)->DAOTestImpl< T >(实现类)->CustomerDAO(继承的子类)->CustomerDAOTest ...

  9. Java学习之JDBC(1)

    JDBC是什么? JDBC是一种Java数据库连接,用于执行SQL的JavaAPI.能够为多种数据库提供统一访问. 因为我使用的是Mysql数据库,所以我以下的代码以Mysql为例. 如何通过JDBC ...

  10. 三天学会JDBC(一)基本操作1(给各位道友拜个早年啦)

    目录 一.概述 1.JDBC概述 2.JDBC编写步骤 二.JDBC数据库连接获取方式 传说中你为爱甘心被搁浅~ 以前学过,现在相当于系统复习,加油哦! 一.概述 1.JDBC概述 1.1 数据的持久 ...

最新文章

  1. #HTTP协议学习# (七)代理
  2. zemax图像模拟_zemax2014免费版
  3. Quartz-Spring集成Quartz通过XML配置的方式
  4. Android开源底部导航,一个开源JPTabBar for Android,炫酷的底部导航栏
  5. Java 8陷阱–提防Files.lines()
  6. 拼多多11.11:无定金、不预售,“好牌子、好实惠”底价直降
  7. [非技术参考]C#重写ToString方法
  8. [转载]WebSocket
  9. 解构控制反转(IoC)和依赖注入(DI)
  10. php soapenv:server.userexception,SoapFault - faultcode: 'soap:Server' faultstring
  11. 第15课:JSP动作 Jsp forward动作(JSP教程 JSP入门实战教程 黄菊华Java网站开发系列教程)
  12. iOS开发图片加载的内存问题及优化方案
  13. linux vi恢复文件怎么打开文件,Linux上vi编辑文件非正常退出后文件恢复
  14. FlashFXP连接ftp服务器上传下载
  15. CentOS 7.2 安装Subversion(SVN)
  16. v4l2架构专题模块handler分析 -- handler ctrl的注册2
  17. 高通平台 pmic—gpio修改(2)
  18. 问题1084:搭数字Ⅰ
  19. 先进PID控制Matlab仿真第4版-pdf课本+仿真程序
  20. Android 如何获取视频的总时长

热门文章

  1. Django框架基础之session
  2. iOS UITabBarController
  3. 流程控制语句反汇编(1)(Debug版)
  4. Array类对数组的操作
  5. 【转】Struts2 验证问题:验证失败一次后就连续验证失败
  6. 收集的一些综合功能函数
  7. A Simple Math Problem (矩阵快速幂)
  8. Tarjan在图论中的应用(二)——用Tarjan来求割点与割边
  9. 有shi以来最详细的正则表达式入门教程
  10. win2008 401 - 未授权: 由于凭据无效,访问被拒绝。解决方法