JDBC(2)Statement
Statement:
用于执行SQL语句的对象
通过Connection的createStatement()方法得到一个Statement对象
只有在获得了Statement对象之后才能执行SQL对象
Statement常用的方法:
->ResultSet executeQuery() throws SQLException:用于执行查询语句,并返回查询结果对应的ResultSet,该方法只能用于执行查询语句。
->int executeUpdate(String sql) throws SQLException:用于执行DML语句,返回首影响的行数。
->Boolean execute(String sql) throws SQLException:可以执行任何SQL语句。
在执行结束之后必须要关闭Statement对象
executeUpdate:可以执行的SQL语句,可以是insert,update,delete,不可以是select。
执行SQL一般使用executeUpdate,execute使用的次数相对比较少
现在代码跑起来:
主要用于获取数据库的连接方法:
public Connection getConnection() throws Exception{
Properties properties = new Properties();
InputStream in =
getClass().getClassLoader().getResourceAsStream("jdbc.properties");
properties.load(in);
String user = properties.getProperty("user");
String password = properties.getProperty("password");
String jdbcUrl = properties.getProperty("jdbcUrl");
String driver = properties.getProperty("driver");
Class.forName(driver);
Connection connection = DriverManager.getConnection(jdbcUrl, user, password);
System.out.println(connection);
return connection;
}
执行executeUpdate(sql)方法
@Test
public void InsertStatementTestJdbc() throws Exception{ //1.获取数据库的连接
Connection conn = getConnection();
//2.准备的sql语句
String sql = "insert into student(sname,sclass)" +
"values('MrChengs','1111')"//3.执行插入操作
//4.获取操作SQL语句的Statement对象
//调用Connection的createStatement()方法来获取
Statement statement = (Statement) conn.createStatement();
//5.调用Statement对象的executeUpdate(sql)执行SQL语句的插入
statement.executeUpdate(sql); //6.关闭Statement对象
statement.close();
//7.关闭连接
conn.close();
}
会发现这个程序有点问题,关闭是不是应该放在finally?
此时程序会更加完美一点
@Test
public void StatementTestInSert() throws Exception{
Connection conn = null;
Statement statement = null;
try {
conn = null;
conn = getConnection();
String sql = "insert into student(sname,sclass)" + "values('MrChengs','1111');";
statement = null;
statement = (Statement) conn.createStatement();
statement.executeUpdate(sql);
} catch (Exception e) {
e.printStackTrace();
}finally {
try {
if(statement !=null){
statement.close();
}
} catch (Exception e) {
e.printStackTrace();
}finally {
if(conn != null){
conn.close();
}
}
}
}
一般使用到的insert/delete/update
使用这个方法,我们一般要进行拼串
在拼串的时候,我们需要注意拼串的一些规范
防止在拼串的时候出错
//插入
//String sql = "insert into student(sname,sclass)" + "values('MrChengs','1111')"; //删除
//String sql = "DELETE From student where id=1"; //修改
String sql = "update student set sname = 'MrChengs' where id = 3";
statement = null;
简单的说一下:
execute()方法几乎可以执行所有的SQL语句,但是执行SQL语句时比较麻烦
所以一般不使用该方法。
这里基本上讲完了。
JDBC(2)Statement的更多相关文章
- JDBC(2)—Statement
介绍: 获取到数据库连接之后,就可以对数据库进行一些增.删.改操作,但是却不能进行查询操作. 增删改操作是程序到数据库的一个操作过程,但是查询是程序到数据库--数据库返回到程序的一个过程. 步骤: 步 ...
- Java基础(三十二)JDBC(2)连接数据库
一.连接数据库的过程 连接数据库的过程:加载数据库驱动程序,不过只需在第一次访问数据库时加载一次,然后在每次访问数据库时创建一个Connection实例,然后执行操作数据库的SQL语句,并返回执行结果 ...
- 跟着刚哥学习Spring框架--JDBC(六)
Spring的JDBC框架 Spring JDBC提供了一套JDBC抽象框架,用于简化JDBC开发. Spring主要提供JDBC模板方式.关系数据库对象化方式.SimpleJdbc方式.事务管理来简 ...
- JDBC(一)之细说JDBC
Properties info = new Properties();//要参考数据库文档 info.setProperty("user", "root"); ...
- JDBC(三)数据库连接池(DBCP、C3P0)
前言 这段时间状态有一点浮躁,希望自己静下心来.还有特别多的东西还没有学懂.需要学习的东西非常的多,加油! 一.JDBC复习 Java Data Base Connectivity,java数据库连接 ...
- JAVA基础-JDBC(一)
一.JDBC的简介 JDBC(Java Data Base Connectivity,java数据库连接)是一种用于执行SQL语句的Java API,由与各种数据库都有着一套自己的规范,JAVA对其操 ...
- JDBC(四)
1 Apache DBUtils框架 1.1 DBUtils简介 commons-dbutils是Apache组织提供的一个开源JDBC工具类库,它是对JDBC的简单封装,学习成本非常低,并且使用db ...
- JDBC (三)
1 数据库连接池的原理 应用程序直接获取Connection的缺点: 缺点:用户每次请求都需要向数据库获取连接,而数据库创建连接通常需要消耗相对较大的资源,创建的时间较长.如果一个网站一天访问量是10 ...
- JDBC (二)
1 使用JDBC进行批处理 当需要向数据库发送一批SQL语句的时候,应该避免向数据库一条条的发送执行,而应该采用JDBC的批处理机制,以提高执行效率. 实现批处理的方式一: Statement.add ...
随机推荐
- Linux下剪切拷贝命令
Linux下剪切拷贝命令 命令格式: mv source dest mv: 命令字 source: 源文件 dest: 目的地址 Linux下拷贝命令 命令格式:cp ...
- 基数排序——Java实现
一.基数排序思想 相比其它排序,主要是利用比较和交换,而基数排序则是利用分配和收集两种基本操作.基数 排序是一种按记录关键字的各位值逐步进行排序的方法.此种排序一般适用于记录的关键字为整数类型的情况. ...
- MyBatis入门篇
一.什么是MyBatis MyBatis 本是apache的一个开源项目iBatis, 2010年这个项目由apache software foundation 迁移到了google code,并且改 ...
- poj3260 平衡问题(二维01背包)
http://www.cnblogs.com/ziyi--caolu/p/3228090.html http://blog.csdn.net/lyy289065406/article/details/ ...
- db缓存设计
http://www.cnblogs.com/herm/archive/2012/11/11/2773887.html
- <Android 应用 之路> 百度地图API使用(3)
前言 上一篇讲解并实践了百度地图基本显示,地图类型,实时交通图,热力图,地图控制和手势控制,今天看下在地图上添加view和覆盖物. 地图Logo不允许遮挡,可通过mBaiduMap.setPaddin ...
- ASP.NET 页面之间传递值的几种方式
1.使用QueryString, 如....?id=1; response. Redirect().... 2.使用Session变量 3.使用Server.Transfer4.Applicatio ...
- How to Build MySQL from Source Code on Windows & compile MySQL on win7+vs2010
Not counting obtaining the source code, and once you have the prerequisites satisfied, [Windows] use ...
- JAVA程序编写入门
在任意文件夹下创建一个文本,然后重命名,把文本后缀名改为.java.然后用eclipse打开此文件编写程序内容. public class nihao{ public static void main ...
- Netty入门4之----如何实现长连接
前面三章介绍了Netty的一些基本用法,这一章介绍怎么使用Netty来实现一个简单的长连接demo. 关于长连接的背景知识,可以参考<如何使用Socket实现长连接> 一个简单的长 ...