- 浏览: 76642 次
文章分类
最新评论
用数据库这么长时了,一些类用的类竟然还没搞明白哎,所以就把代码贴出来吧
执行sql语句的代码
至于PreparedStatement和statement的区别简单的话:
1.PreparedStatement是预编译的,对于批量处理可以大大提高效率. 也叫JDBC存储过程
2.使用 Statement 对象。在对数据库只执行一次性存取的时侯,用 Statement 对象进行处理。PreparedStatement 对象的开销比Statement大,对于一次性操作并不会带来额外的好处。
3.statement每次执行sql语句,相关数据库都要执行sql语句的编译,preparedstatement是预编译得, preparedstatement支持批处理
刚才看到一篇不错的详细讲解,等会再单独转一篇吧
而sm.executeQuery(sql)和sm.exceute(sql)的区别为:
executeQuery(sql)方法在JDK1.6中的解释为:
executeQuery
ResultSet executeQuery(String sql)
throws SQLException执行给定的 SQL 语句,该语句返回单个 ResultSet 对象。
参数:
sql - 要发送给数据库的 SQL 语句,通常为静态 SQL SELECT 语句
返回:
包含给定查询所生成数据的 ResultSet 对象;永远不能为 null
抛出:
SQLException - 如果发生数据库访问错误,在已关闭的 Statement 上调用此方法,或者给定 SQL 语句生成单个 ResultSet 对象之外的任何其他内容
execute(sql)方法在JDK1.6中的解释为:
execute
boolean execute(String sql)
throws SQLException执行给定的 SQL 语句,该语句可能返回多个结果。在某些(不常见)情形下,单个 SQL 语句可能返回多个结果集合和/或更新计数。这一点通常可以忽略,除非正在 (1) 执行已知可能返回多个结果的存储过程或者 (2) 动态执行未知 SQL 字符串。
execute 方法执行 SQL 语句并指示第一个结果的形式。然后,必须使用方法 getResultSet 或 getUpdateCount 来获取结果,使用 getMoreResults 来移动后续结果。
参数:
sql - 任何 SQL 语句
返回:
如果第一个结果为 ResultSet 对象,则返回 true;如果其为更新计数或者不存在任何结果,则返回 false
抛出:
SQLException - 如果发生数据库访问错误,或者在已关闭的 Statement 上调用此方法
另请参见:
getResultSet(), getUpdateCount(), getMoreResults()
关于接口 ResultSet
表示数据库结果集的数据表,通常通过执行查询数据库的语句生成。
ResultSet 对象具有指向其当前数据行的光标。最初,光标被置于第一行之前。next 方法将光标移动到下一行;因为该方法在 ResultSet 对象没有下一行时返回 false,所以可以在 while 循环中使用它来迭代结果集。
默认的 ResultSet 对象不可更新,仅有一个向前移动的光标。因此,只能迭代它一次,并且只能按从第一行到最后一行的顺序进行。可以生成可滚动和/或可更新的 ResultSet 对象。以下代码片段(其中 con 为有效的 Connection 对象)演示了如何生成可滚动且不受其他更新影响的可更新结果集。有关其他选项,请参见 ResultSet 字段。
Statement stmt = con.createStatement(
ResultSet.TYPE_SCROLL_INSENSITIVE,
ResultSet.CONCUR_UPDATABLE);
ResultSet rs = stmt.executeQuery("SELECT a, b FROM TABLE2");
// rs will be scrollable, will not show changes made by others,
// and will be updatable
public class DBUtils { Connection conn = null; // 定义MySQL的数据库驱动程序 public static final String DBDRIVER = "com.mysql.jdbc.Driver"; // 定义MySQL数据库的连接地址 public static final String DBURL = "jdbc:mysql://localhost:3306/t" ; //和本机mysql中名为t的数据库取得连接 // MySQL数据库的连接用户名 public static final String DBUSER = "root" ; // MySQL数据库的连接密码 public static final String DBPASS = "tian" ; public Connection getConnection() { try { //加载驱动 Class.forName(DBDRIVER); //取得连接 conn = DriverManager.getConnection(DBURL,DBUSER,DBPASS) ; } catch (Exception e){ e.printStackTrace(); } return conn; } }
执行sql语句的代码
//向数据库中插入数据 Connection conn = new DBUtils().getConnection(); String sql = "INSERT into t (name,sex,age) values ('"+user+"',"+sex+","+age+")"; java.sql.Statement sm = conn.createStatement(); // ResultSet rs = sm.executeQuery(sql);// 查询结果存入rs sm.execute(sql);//执行
至于PreparedStatement和statement的区别简单的话:
1.PreparedStatement是预编译的,对于批量处理可以大大提高效率. 也叫JDBC存储过程
2.使用 Statement 对象。在对数据库只执行一次性存取的时侯,用 Statement 对象进行处理。PreparedStatement 对象的开销比Statement大,对于一次性操作并不会带来额外的好处。
3.statement每次执行sql语句,相关数据库都要执行sql语句的编译,preparedstatement是预编译得, preparedstatement支持批处理
刚才看到一篇不错的详细讲解,等会再单独转一篇吧
而sm.executeQuery(sql)和sm.exceute(sql)的区别为:
executeQuery(sql)方法在JDK1.6中的解释为:
executeQuery
ResultSet executeQuery(String sql)
throws SQLException执行给定的 SQL 语句,该语句返回单个 ResultSet 对象。
参数:
sql - 要发送给数据库的 SQL 语句,通常为静态 SQL SELECT 语句
返回:
包含给定查询所生成数据的 ResultSet 对象;永远不能为 null
抛出:
SQLException - 如果发生数据库访问错误,在已关闭的 Statement 上调用此方法,或者给定 SQL 语句生成单个 ResultSet 对象之外的任何其他内容
execute(sql)方法在JDK1.6中的解释为:
execute
boolean execute(String sql)
throws SQLException执行给定的 SQL 语句,该语句可能返回多个结果。在某些(不常见)情形下,单个 SQL 语句可能返回多个结果集合和/或更新计数。这一点通常可以忽略,除非正在 (1) 执行已知可能返回多个结果的存储过程或者 (2) 动态执行未知 SQL 字符串。
execute 方法执行 SQL 语句并指示第一个结果的形式。然后,必须使用方法 getResultSet 或 getUpdateCount 来获取结果,使用 getMoreResults 来移动后续结果。
参数:
sql - 任何 SQL 语句
返回:
如果第一个结果为 ResultSet 对象,则返回 true;如果其为更新计数或者不存在任何结果,则返回 false
抛出:
SQLException - 如果发生数据库访问错误,或者在已关闭的 Statement 上调用此方法
另请参见:
getResultSet(), getUpdateCount(), getMoreResults()
关于接口 ResultSet
表示数据库结果集的数据表,通常通过执行查询数据库的语句生成。
ResultSet 对象具有指向其当前数据行的光标。最初,光标被置于第一行之前。next 方法将光标移动到下一行;因为该方法在 ResultSet 对象没有下一行时返回 false,所以可以在 while 循环中使用它来迭代结果集。
默认的 ResultSet 对象不可更新,仅有一个向前移动的光标。因此,只能迭代它一次,并且只能按从第一行到最后一行的顺序进行。可以生成可滚动和/或可更新的 ResultSet 对象。以下代码片段(其中 con 为有效的 Connection 对象)演示了如何生成可滚动且不受其他更新影响的可更新结果集。有关其他选项,请参见 ResultSet 字段。
Statement stmt = con.createStatement(
ResultSet.TYPE_SCROLL_INSENSITIVE,
ResultSet.CONCUR_UPDATABLE);
ResultSet rs = stmt.executeQuery("SELECT a, b FROM TABLE2");
// rs will be scrollable, will not show changes made by others,
// and will be updatable
发表评论
-
动态设置spring定时器的间隔时间
2015-05-21 16:42 9782.Quartz在Spring中动态设置cronTrigger ... -
使用eclipse调试maven项目
2014-02-13 10:21 753进行如下设置 1、项目-Debug As-Debug Co ... -
CentOS 32位安装mysql5.5
2013-11-04 23:08 2207在linux下安装mysql一直没成功过。网上的教程一个比 ... -
tomcat的j_security_check验证机制
2013-04-27 09:45 3911tomcat的j_security_check验证机制 是利 ... -
struts2 文件的上传和下载
2013-02-27 15:48 707struts2 文件的上传和下载 -
jsp到action用get方法相互传中文时乱码的解决方案
2012-11-09 13:12 687jsp->action: ... -
jquery插件实现ajax异步上传并预览文件
2012-11-02 11:42 1029jquery插件实现ajax异步上传并预览文件 -
(转)struts2中的jsp值传到后台action接收的三种方法
2012-09-16 14:38 990struts2中的jsp值传到后台action接收 ... -
javascript向后台全传值后中文乱码解决方法
2012-01-21 15:43 1129javascript中向后台传值 中文是乱码解决方法, ... -
Struts2中的action利用Ajax向页面返回数据,及解决返回的中文乱码
2012-01-13 20:21 29911,在action中的代码 HttpServlet ... -
解决使用ajax时浏览器的缓存问题
2011-11-18 00:40 1329前几天在做东西的时候老是出现一人解决不了的问题,一直找不到原因 ... -
验证码的的生成
2011-11-10 22:00 1411[size=medium] 这个类是暑假在实验室的时候老师让我 ... -
深入 理解 Statement 和 PreparedStatement 【转】
2011-11-05 01:24 834一、使用Statement而不是PreparedStateme ... -
利用javascript忽略文本框的空格
2011-11-04 00:47 1343呵呵,这是前几天考核的时候临时到网上搜的,当时也没想到它有去空 ... -
利用java解压.zip的压缩文件
2011-11-04 00:37 1107这段代码是我从网上直接复制下来的,写的真的很不错,可以直接运 ... -
利用POI将excel表格中的内容导入到数据库中
2011-11-04 00:22 5745我实现的功能是将excel中的数据导入到Mysql数据库中, ... -
jsp实现文件的上传及javascript对上传文件的简单验证
2011-11-04 00:09 3757前两天做OJ的时候,我做的两个功能都涉及到了文件的上传这 ...
相关推荐
java操作mysql数据库,不写sql语句版
JAVA操作MYSQL数据库可查看插入删除数据.pdf
JAVA 操作MYSQL数据库 可查看,插入,删除 数据.doc
浅谈Java中Mysql数据库的连接与操作.pdf
Java基于MySQL数据库的学生管理系统源码 Java基于MySQL数据库的学生管理系统源码 Java基于MySQL数据库的学生管理系统源码 Java基于MySQL数据库的学生管理系统源码 Java基于MySQL数据库的学生管理系统...
JAVA操作MYSQL数据库可查看,插入,删除数据[参考].pdf
java连接mysql数据库用到的jar包
Java链接mysql数据库代码,从链接到关闭,注释详细,一目了然
java实现mysql数据库的表导出到excel文件,已经基本的demo包含jar包,可以导入的eclipse里面。比较好用吧
MySQL的基础运用,通过一些小案例来掌握Java操作数据库,包括DQL查询数据、事务、索引、JDBC等,跟博客文章-MySQL配套
基于JAVA与MySQL数据库的移动端题库练习系统的设计与实现.pdf基于JAVA与MySQL数据库的移动端题库练习系统的设计与实现.pdf基于JAVA与MySQL数据库的移动端题库练习系统的设计与实现.pdf基于JAVA与MySQL数据库的移动端...
Java连接mysql数据库的具体代码,已经过测试
commons-dbutils-1.7.jar mysql-connector-j-8.0.31.jar druid-1.1.21.jar
图解eclipse附加Mysql数据库,Mysql数据库的应用
java连接mysql数据库实例框架,eclipse编辑器,mysql数据库,使用JDBC写的一个java操作数据库的登录注册框架
JAVA连接MySQL数据库的一篇技术文献
Java连接MySql数据库,并且实现插入、删除、更新、选择操作.pdf
java备份mysql、可执行jar文件、配置文件可修改、xml解析,执行sql语句,jdbc访问数据库,jdbc配置文件可修改
java语言对MySQL数据库内容进行插入、查找、删除等一系列操作代码及运行结果
Java连接Mysql数据库代码,可以直接连接数据库,返回数据表内的数据以及相关的内容。