1.使用JDBC对数据库进行CRUD

l    Jdbc中的statement对象用于向数据库发送SQL语句,想完成对数据库的增删改查,只需要通过这个对象向数据库发送增删改查语句即可。

l    Statement对象的executeUpdate方法,用于向数据库发送增、删、改的sql语句,executeUpdate执行完后,将会返回一个整数(即增删改语句导致了数据库几行数据发生了变化)。

l    Statement.executeQuery方法用于向数据库发送查询语句,executeQuery方法返回代表查询结果的ResultSet对象。

2.模板代码

Connection conn = null;

Statement st=null;

ResultSet rs = null;

try {

   //获得Connection

   //创建Statement

   //处理查询结果ResultSet

} finally {

   //释放资源ResultSet, Statement,Connection

}

3.使用executeUpdate(String sql)方法完成数据添加操作

示例操作:

   Statementst = conn.createStatement();

   Stringsql = "insert into user(….) values(…..) ";

   int num =st.executeUpdate(sql);

   if(num>0){

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

   }

  修改(update)、删除(delete)操作类似以上的插入操作。

4.使用executeQuery(String sql)方法完成数据查询操作

示例操作:

   Statementst = conn.createStatement();

   Stringsql = “select * from user where id=1;

   ResultSet rs = st.executeUpdate(sql);

   while(rs.next()){

     //根据获取列的数据类型,分别调用rs的相应方法

     //映射到java对象中

   }

l    增、删、改用Statement.executeUpdate来完成,返回整数(匹配的记录数),这类操作相对简单。

l    查询用Statement.executeQuery来完成,返回的是ResultSet对象,ResultSet中包含了查询的结果;查询相对与增、删、改要复杂一些,因为有查询结果要处理。

5.SQL 注入是用户利用某些系统没有对输入数据进行充分的检查,从而进行恶意破坏的行为。

1、statement存在sql注入攻击问题,例如登陆用户名采用' or 1=1 or username=‘

2、对于防范SQL 注入,可以采用PreparedStatement取代Statement。

l    PreperedStatement是Statement的子类,它的实例对象可以通过调用Connection.preparedStatement()方法获得,相对于Statement对象而言:

•       PreperedStatement可以避免SQL注入的问题。

•       Statement会使数据库频繁编译SQL,可能造成数据库缓冲区溢出。PreparedStatement 可对SQL进行预编译,从而提高数据库的执行效率。

•       并且PreperedStatement对于sql中的参数,允许使用占位符的形式进行替换,简化sql语句的编写。

6.编写存储过程(参看mysql文档)

•       得到CallableStatement,并调用存储过程:CallableStatementcs = conn.prepareCall("{call demoSp(?, ?)}");

•       设置参数,注册返回值,得到输出

cs.setString(1, "abcdefg");

cs.registerOutParameter(2, Types.VARCHAR);

cs.execute();

System.out.println(cs.getString(2));

 

 

转载于:https://www.cnblogs.com/yangkai-cn/archive/2012/06/19/4017139.html

jdbc心得-2-数据库与java相结合相关推荐

  1. Spring使用JDBC访问MySQL数据库

    在Java应用程序开发中,使用JDBC访问MySQL数据库是Java开发者常用的技术.在Spring框架中,Spring对JDBC又进行了封装,简化了程序访问数据库的复杂度.本课主要讨论在Spring ...

  2. JDBC完成对数据库数据操作(增,删,改,查)

    写在前面 虽然在实际开发中关于这些操作都不会让我们去写,但是掌握这代码的逻辑编写对我们使用框架有一定的帮助. 学习JDBC:请关注专栏--JDBC学习--内容详细 相关文章: JDBC总述 JDBC连 ...

  3. 【JDBC技术】终于知道Java底层是如何连接数据库了!——(1)JDBC概述

    JDBC 核心技术解析 JDBC 指 Java 数据库连接,是一种标准Java应用编程接口( JAVA API),用来连接 Java 编程语言和广泛的数据库. 文章目录 JDBC 核心技术解析 JDB ...

  4. 一、JAVA通过JDBC连接mysql数据库(连接)

    JDBC ----JDBC(Java DataBase Connectivity)是Java与数据库的接口规范,JDBC定义了一个支持标准SQL功能的通用低层的应用程序编程接口(API),它由Java ...

  5. Java使用Jdbc操作MySql数据库(一)

    这个示例是Java操作MySql的基本方法. 在这个示例之前,要安装好MySql,并且配置好账户密码,创建一个logininfo数据库,在数据库中创建userinfo数据表.并且在表中添加示例数据. ...

  6. [原创]java使用JDBC向MySQL数据库批次插入10W条数据测试效率

    使用JDBC连接MySQL数据库进行数据插入的时候,特别是大批量数据连续插入(100000),如何提高效率呢? 在JDBC编程接口中Statement 有两个方法特别值得注意: 通过使用addBatc ...

  7. jaba窗体连接mysql增删改查_知识实现——Java使用jdbc连接MySql数据库,实现增删改查...

    Java使用jdbc连接MySql数据库,实现增删改查 首先,导入MySql连接数据库的jar包,我用的是 mysql连接jar包 DB类,用于获得数据库连接 import java.sql.Driv ...

  8. java启动监听器报错_JAVA通过JDBC连接Oracle数据库详解【转载】

    1.注册加载驱动 驱动名:DRIVER="oracle.jdbc.driver.OracleDriver"; Class.forName("驱动类名"); 2. ...

  9. jdba怎么连接mysql_一、JAVA通过JDBC连接mysql数据库(连接)

    JDBC ----JDBC(Java DataBase Connectivity)是Java与数据库的接口规范,JDBC定义了一个支持标准SQL功能的通用低层的应用程序编程接口(API),它由Java ...

  10. java jdbc 连接mysql数据库,Java 通过JDBC连接Mysql数据库

    JDBC(Java Data Base Connectivity,java数据库连接)是一种用于执行SQL语句的Java API,可以为多种关系数据库提供统一访问,它由一组用Java语言编写的类和接口 ...

最新文章

  1. 【HDU】3308 LCIS
  2. C++中关键字volatile和mutable用法
  3. 有了阿里云服务器如何运行Javaweb项目【安转JDK】【安装mysql】【安装Tomcat】【永久运行】
  4. 行业深度见解•SD-WAN对于企业云的重要性
  5. git 提交命令_工作总结:Git的学习和使用,最详细的Git教程,从入门到精通
  6. Ubuntu18.04 MariaDB
  7. r 保留之前曲线_R简单数据处理和分析
  8. oracle aced什么资质,ACOUG 中国行—暨Oracle WDP云数据之旅,火热报名中……
  9. Android注册BroadcastReceiver的两种办法及其区别
  10. c语言经典编程案例猜数字,用c语言编程猜数字
  11. C语言ffmpeg合并多个视频,ffmpeg合并多个视频
  12. html section 布局,section标签的用法
  13. java字符串最长回文串_Java中的字符串回文程序
  14. eclipse 项目 链接 oracle 空指针,Eclipse 常用配置技巧
  15. 【动态规划】计蒜客:蒜头君闯关(最长递增子序列的变体)
  16. Oracle中的用户创建和权限的分配
  17. 【Pytorch】谈谈我在PyTorch踩过的12坑
  18. PHP自动化代码审计工具
  19. Android源码打patch
  20. 基于ARM处理器的U-BOOT详细移植总结

热门文章

  1. (最新)面向科研人员的免费遥感数据集
  2. pyspark分类算法之随机森林分类器模型实践【randomForestClassifier】
  3. sublime编辑器修改默认的Tab缩进风格
  4. 机器学习方法(一)——梯度下降法
  5. opencv中的merge函数
  6. matex2已搭载鸿蒙系统了吗,华为MATE40被曝两个版本,有望搭载鸿蒙OS,MATEX2也即将到来...
  7. FISCO BCOS Failed to connect to nodes: [ ssl hanshake failed:/192.168.64.131:20200]
  8. kubectl apply -f weave.yaml之后dns没有启动起来 weave-net CrashLoopBackOff
  9. FISCO BCOS Solidity 智能合约 返回数组
  10. VMware Ubuntu虚拟机卡顿慢 解决方法大全