jdbc心得-2-数据库与java相结合
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相结合相关推荐
- Spring使用JDBC访问MySQL数据库
在Java应用程序开发中,使用JDBC访问MySQL数据库是Java开发者常用的技术.在Spring框架中,Spring对JDBC又进行了封装,简化了程序访问数据库的复杂度.本课主要讨论在Spring ...
- JDBC完成对数据库数据操作(增,删,改,查)
写在前面 虽然在实际开发中关于这些操作都不会让我们去写,但是掌握这代码的逻辑编写对我们使用框架有一定的帮助. 学习JDBC:请关注专栏--JDBC学习--内容详细 相关文章: JDBC总述 JDBC连 ...
- 【JDBC技术】终于知道Java底层是如何连接数据库了!——(1)JDBC概述
JDBC 核心技术解析 JDBC 指 Java 数据库连接,是一种标准Java应用编程接口( JAVA API),用来连接 Java 编程语言和广泛的数据库. 文章目录 JDBC 核心技术解析 JDB ...
- 一、JAVA通过JDBC连接mysql数据库(连接)
JDBC ----JDBC(Java DataBase Connectivity)是Java与数据库的接口规范,JDBC定义了一个支持标准SQL功能的通用低层的应用程序编程接口(API),它由Java ...
- Java使用Jdbc操作MySql数据库(一)
这个示例是Java操作MySql的基本方法. 在这个示例之前,要安装好MySql,并且配置好账户密码,创建一个logininfo数据库,在数据库中创建userinfo数据表.并且在表中添加示例数据. ...
- [原创]java使用JDBC向MySQL数据库批次插入10W条数据测试效率
使用JDBC连接MySQL数据库进行数据插入的时候,特别是大批量数据连续插入(100000),如何提高效率呢? 在JDBC编程接口中Statement 有两个方法特别值得注意: 通过使用addBatc ...
- jaba窗体连接mysql增删改查_知识实现——Java使用jdbc连接MySql数据库,实现增删改查...
Java使用jdbc连接MySql数据库,实现增删改查 首先,导入MySql连接数据库的jar包,我用的是 mysql连接jar包 DB类,用于获得数据库连接 import java.sql.Driv ...
- java启动监听器报错_JAVA通过JDBC连接Oracle数据库详解【转载】
1.注册加载驱动 驱动名:DRIVER="oracle.jdbc.driver.OracleDriver"; Class.forName("驱动类名"); 2. ...
- jdba怎么连接mysql_一、JAVA通过JDBC连接mysql数据库(连接)
JDBC ----JDBC(Java DataBase Connectivity)是Java与数据库的接口规范,JDBC定义了一个支持标准SQL功能的通用低层的应用程序编程接口(API),它由Java ...
- java jdbc 连接mysql数据库,Java 通过JDBC连接Mysql数据库
JDBC(Java Data Base Connectivity,java数据库连接)是一种用于执行SQL语句的Java API,可以为多种关系数据库提供统一访问,它由一组用Java语言编写的类和接口 ...
最新文章
- 【HDU】3308 LCIS
- C++中关键字volatile和mutable用法
- 有了阿里云服务器如何运行Javaweb项目【安转JDK】【安装mysql】【安装Tomcat】【永久运行】
- 行业深度见解•SD-WAN对于企业云的重要性
- git 提交命令_工作总结:Git的学习和使用,最详细的Git教程,从入门到精通
- Ubuntu18.04 MariaDB
- r 保留之前曲线_R简单数据处理和分析
- oracle aced什么资质,ACOUG 中国行—暨Oracle WDP云数据之旅,火热报名中……
- Android注册BroadcastReceiver的两种办法及其区别
- c语言经典编程案例猜数字,用c语言编程猜数字
- C语言ffmpeg合并多个视频,ffmpeg合并多个视频
- html section 布局,section标签的用法
- java字符串最长回文串_Java中的字符串回文程序
- eclipse 项目 链接 oracle 空指针,Eclipse 常用配置技巧
- 【动态规划】计蒜客:蒜头君闯关(最长递增子序列的变体)
- Oracle中的用户创建和权限的分配
- 【Pytorch】谈谈我在PyTorch踩过的12坑
- PHP自动化代码审计工具
- Android源码打patch
- 基于ARM处理器的U-BOOT详细移植总结
热门文章
- (最新)面向科研人员的免费遥感数据集
- pyspark分类算法之随机森林分类器模型实践【randomForestClassifier】
- sublime编辑器修改默认的Tab缩进风格
- 机器学习方法(一)——梯度下降法
- opencv中的merge函数
- matex2已搭载鸿蒙系统了吗,华为MATE40被曝两个版本,有望搭载鸿蒙OS,MATEX2也即将到来...
- FISCO BCOS Failed to connect to nodes: [ ssl hanshake failed:/192.168.64.131:20200]
- kubectl apply -f weave.yaml之后dns没有启动起来 weave-net CrashLoopBackOff
- FISCO BCOS Solidity 智能合约 返回数组
- VMware Ubuntu虚拟机卡顿慢 解决方法大全