package cn.zhouzhou;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.Statement; import com.mysql.jdbc.PreparedStatement; /*一、接口的概念和想相关静态方法?--------建议自己去查手册!
*
* 1.connection?
* 接口
* 与特定数据库的连接(会话)。 执行SQL语句并在连接的上下文中返回结果。
该信息是用getMetaData方法获得的。 *2. Driver?
* 每个驱动程序类必须实现的接口。
* 每个驱动程序都应该提供一个实现Driver接口的类。
*
*5.DriverManager?
* 用于管理一组JDBC驱动程序的基本服务。
* DriverManager将尝试加载尽可能多的驱动程序,然后对于任何给定的连接请求,它会依次要求每个驱动程序尝试连接到目标URL。 3. Connection?
* 与特定数据库的连接(会话)。 执行SQL语句并在连接的上下文中返回结果。
*
4.getConnection?
* 尝试建立与给定数据库URL的连接。DriverManager的静态方法 返回值类型 Connection
*
*6.Statement?
* 创建一个 Statement对象,将产生 ResultSet对象具有给定类型,并发性和可保存性。
* 返回值类型是statement;
* execute方法查找名称与 methodName属性相同的方法,并调用目标方法。
*
*7.ResultSet?
* 表示数据库结果集的数据表,通常通过执行查询数据库的语句生成。
* ResultSet对象保持一个光标指向其当前的数据行。
* getInt?
* 将此 ResultSet对象的当前行中指定列的值作为Java编程语言中的 Array对象检索。
*
*8.设置SQL语句的执行平台?
* Connection con= DriverManager.getConnection(url,use,password)
* Statement star=con.createStatemtn();
*
*9.对数据库的操作?
* 1.int ------------->适用于 增删改! insert update delete
* int i= star.executeUpdate("");
*
* 2.String -------------用于SQL查询语句 select
* String s="";
* ResultSet rs= star.excuteQuery(s); 执行SQL中的select查询
* while(rs.next()){----------------------->处理结果集,并获取每列数据。
* System.out.println(rs.getInt("id")+""+rs.getString("name")+" "+rs.getDouble("price")); *}
*10.结束资源?
*
*
*二、SQL注入攻击简单的案
* 换个接口,解决风险!preparestatement
* 使用Statement接口 容易容易被注入攻击。
* Statement接口实现类,作用执行SQL语句,返回结果集
* 有一个子接口PreparedStatement (SQL预编译存储,多次高效的执行SQL)
*
* 记着!使用PrepareStatement接口
* 方法?
* PreparedStatement xx=con.prepareStatement(String sql)
*
*
*
*/
public class JdbcDmo {
public static void main(String[] args) throws Exception {
// run(); //数据库的注册、连接、设置语句执行平台、执行SQL语句、处理结果、结束资源。
show(); } private static void show() throws Exception {
Class.forName("com.mysql.jdbc.Driver"); String url="jdbc:mysql://localhost:3306/qy66";
String use="root";
String password="root";
Connection con01=DriverManager.getConnection(url, use, password); // Statement star01=con01.createStatement(); 之前的statement接口 String s="select * from shop"; java.sql.PreparedStatement star01=con01.prepareStatement(s); //换个接口preparestatement ResultSet rs=star01.executeQuery(s);
while (rs.next()) {
System.out.println(rs.getInt(1)+" "+rs.getString(2));
}
rs.close();
star01.close();
con01.close(); } private static void run() throws Exception{
Class.forName("com.mysql.jdbc.Driver"); //1.注册 5.0版本后可以省略不写 String url="jdbc:mysql://localhost:3306/qy66"; //定义各自的 连接地址 用户名 密码
String use="root";
String password="root"; Connection con=DriverManager.getConnection(url, use, password); //2.连接数据库
System.out.println(con); //3.打印的是地址! Statement a1=con.createStatement();
System.out.println(a1); //获得语句执行平台 String a3="select * from shop"; //执行SQL中的select查询 【注意String】查询sql语句 ResultSet rs= a1.executeQuery(a3);
//while 可以获取数据库表格中的每一列数据!
while (rs.next()) {
System.out.println(rs.getInt("id")+""+rs.getString("name")+" "+rs.getDouble("price"));
} // insert update delete
int a2=a1.executeUpdate("insert into shop(id,name,price)values (101,'003',5000)");//执行sql语句 int 适用于增删改
System.out.println(a2); con.close();
a1.close();
rs.close(); } }

jdbc 接口的用法 Statement和PreparedStatement的区别!的更多相关文章

  1. JDBC中的Statement和PreparedStatement的区别

    JDBC中的Statement和PreparedStatement的区别  

  2. Statement与PreparedStatement的区别

    Statement与PreparedStatement的区别   PreparedStatement预编译SQL语句,性能好. PreparedStatement无序拼接SQL语句,编程更简单. Pr ...

  3. Statement和PreparedStatement的区别; 什么是SQL注入,怎么防止SQL注入?

    问题一:Statement和PreparedStatement的区别 先来说说,什么是java中的Statement:Statement是java执行数据库操作的一个重要方法,用于在已经建立数据库连接 ...

  4. Statement和PreparedStatement的区别; 什么是SQL注入,怎么防止SQL注入? (转)

    问题一:Statement和PreparedStatement的区别 先来说说,什么是java中的Statement:Statement是java执行数据库操作的一个重要方法,用于在已经建立数据库连接 ...

  5. 浅析Statement和PreparedStatement的区别

    当我们使用java程序来操作sql server时会使用到Statement和PreparedStatement,俩者都可以用于把sql语句从java程序中发送到指定数据库,并执行sql语句.那么如何 ...

  6. JDBC与Statement和PreparedStatement的区别

    一.先来说说,什么是java中的Statement:Statement是java执行数据库操作的一个重要方法,用于在已经建立数据库连接的基础上,向数据库发送要执行的SQL语句.具体步骤: 1.首先导入 ...

  7. [转] JDBC中的Statement和PreparedStatement的区别

    以Oracle为例吧 Statement为一条Sql语句生成执行计划,如果要执行两条sql语句select colume from table where colume=1;select colume ...

  8. 【Java编程】建立一个简单的JDBC连接-Drivers, Connection, Statement and PreparedStatement

    本blog提供了一个简单的通过JDBC驱动建立JDBC连接例程.并分别通过Statement和PreparedStatement实现对数据库的查询. 在下一篇blog中将重点比較Statement与P ...

  9. JDBC中的Statement 和PreparedStatement的区别?

    PreparedStatement是预编译的SQL语句,效率高于Statement. PreparedStatement支持操作符,相对于Statement更加灵活. PreparedStatemen ...

随机推荐

  1. 联想Y700安装显卡驱动和CUDA8.0

    一显卡驱动安装 1 安装驱动安装软件 2 自动检测下载对应版本驱动 3下载完成后,点击开始,解压出来临时安装文件 由于是临时安装文件,退出就会关闭 4所以在没有关闭情况下,打开重新打开一次setup, ...

  2. (二 -3-1) 天猫精灵接入Home Assistant-自动发现Mqtt设备--灯系列 实战

    #本片教程介绍了具体如何实现天猫精灵控制一个灯. 前提: HASS平台 你已经搭建一个可以在公网IP访问到的HASS平台--- 我用的是租了阿里云服务器,买了个域名,ubuntu1604系统 你已经搭 ...

  3. eclipse如何设置断点&断点处运行快捷键

    第一步: 设置断点:在该行最前面边框双击  或快捷键:Ctrl+Shift+B   第二步: Debug 运行启动   第三部: 运行到断点后: 使用快捷键F5,F6,F7单步执行. F5:Step ...

  4. 负载(Load)分析及问题排查

    平常的工作中,在衡量服务器的性能时,经常会涉及到几个指标,load.cpu.mem.qps.rt等.每个指标都有其独特的意义,很多时候在线上出现问题时,往往会伴随着某些指标的异常.大部分情况下,在问题 ...

  5. linux学习问题总结

    目录 一.环境变量和普通变量的区别 二.rsyslog和logrotate会不会丢记录的问题 三.为什么有些文件夹大小不是4096的整数倍 四.reboot和shutdown等软链接实现原理 五.sy ...

  6. python中join()函数的使用方法

    函数:string.join() Python中有join()和os.path.join()两个函数,具体作用如下:    join():    连接字符串数组.将字符串.元组.列表中的元素以指定的字 ...

  7. JAVABEAN递归转MAP实现

    之前想找这么一个方法,找到的都不是递归实现的,列表.MAP里面的都没转,就自己折腾了个.——YOYO public class ObjectToMap{ public static Map objec ...

  8. 作为一个.NET开发者,怎么看待和选择层出不穷的新技术,新架构?

    经常在一些技术社区看到这些的问题,一个.NET开发者去求职,看到应聘的公司的技术栈还是比较老的ASP.NET WEBFORM的时候,希望了解未来会否使用ASP.NET MVC的时候,没有获得肯定答复, ...

  9. pycharm 常用快捷键操作

    #最重要的快捷键 1. ctrl+shift+A:万能命令行 2. shift两次:查看资源文件 #新建工程第一步操作 1. module设置把空包分层去掉,compact empty middle ...

  10. 我的微信小程序第一篇(入门)

    前言 微信小程序出来已经有一段时间了,已经有很多大牛都写过相关教程了,那么我为啥还要写这篇文章呢?其实仅仅是个人对微信开发的一个兴趣吧,觉得是个很有意思的事情,后面有时间可能会发更多关于小程序的文章, ...