mysql cstmt_MySQL

创建一个以JDBC连接数据库的程序,包含7个步骤:

1、加载JDBC驱动程序:

在连接数据库之前,首先要加载想要连接的数据库的驱动到JVM(Java虚拟机),

这通过java.lang.Class类的静态方法forName(String className)实现。

例如:

try{

//加载MySql的驱动类

Class.forName("com.mysql.jdbc.Driver") ;

}catch(ClassNotFoundException e){

System.out.println("找不到驱动程序类 ,加载驱动失败!");

e.printStackTrace() ;

}

成功加载后,会将Driver类的实例注册到DriverManager类中。

2、提供JDBC连接的URL

•连接URL定义了连接数据库时的协议、子协议、数据源标识。

•书写形式:协议:子协议:数据源标识

协议:在JDBC中总是以jdbc开始

子协议:是桥连接的驱动程序或是数据库管理系统名称。

数据源标识:标记找到数据库来源的地址与连接端口。

例如:(MySql的连接URL)

jdbc:mysql:

//localhost:3306/test?useUnicode=true&characterEncoding=gbk ;

useUnicode=true:表示使用Unicode字符集。如果characterEncoding设置为

gb2312或GBK,本参数必须设置为true 。characterEncoding=gbk:字符编码方式。

3、创建数据库的连接

•要连接数据库,需要向java.sql.DriverManager请求并获得Connection对象,

该对象就代表一个数据库的连接。

•使用DriverManager的getConnectin(String url , String username ,

String password )方法传入指定的欲连接的数据库的路径、数据库的用户名和

密码来获得。

例如:

//连接MySql数据库,用户名和密码都是root

String url = "jdbc:mysql://localhost:3306/test" ;

String username = "root" ;

String password = "root" ;

try{

Connection con =

DriverManager.getConnection(url , username , password ) ;

}catch(SQLException se){

System.out.println("数据库连接失败!");

se.printStackTrace() ;

}

4、创建一个Statement

•要执行SQL语句,必须获得java.sql.Statement实例,Statement实例分为以下3

种类型:

1、执行静态SQL语句。通常通过Statement实例实现。

2、执行动态SQL语句。通常通过PreparedStatement实例实现。

3、执行数据库存储过程。通常通过CallableStatement实例实现。

具体的实现方式:

Statement stmt = con.createStatement() ;

PreparedStatement pstmt = con.prepareStatement(sql) ;

CallableStatement cstmt =

con.prepareCall("{CALL demoSp(? , ?)}") ;

5、执行SQL语句

Statement接口提供了三种执行SQL语句的方法:executeQuery 、executeUpdate

和execute

1、ResultSet executeQuery(String sqlString):执行查询数据库的SQL语句

,返回一个结果集(ResultSet)对象。

2、int executeUpdate(String sqlString):用于执行INSERT、UPDATE或

DELETE语句以及SQL DDL语句,如:CREATE TABLE和DROP TABLE等

3、execute(sqlString):用于执行返回多个结果集、多个更新计数或二者组合的

语句。

具体实现的代码:

ResultSet rs = stmt.executeQuery("SELECT * FROM ...") ;

int rows = stmt.executeUpdate("INSERT INTO ...") ;

boolean flag = stmt.execute(String sql) ;

6、处理结果

两种情况:

1、执行更新返回的是本次操作影响到的记录数。

2、执行查询返回的结果是一个ResultSet对象。

• ResultSet包含符合SQL语句中条件的所有行,并且它通过一套get方法提供了对这些

行中数据的访问。

• 使用结果集(ResultSet)对象的访问方法获取数据:

while(rs.next()){

String name = rs.getString("name") ;

String pass = rs.getString(1) ; // 此方法比较高效

}

(列是从左到右编号的,并且从列1开始)

7、关闭JDBC对象

操作完成以后要把所有使用的JDBC对象全都关闭,以释放JDBC资源,关闭顺序和声

明顺序相反:

1、关闭记录集

2、关闭声明

3、关闭连接对象

if(rs != null){ // 关闭记录集

try{

rs.close() ;

}catch(SQLException e){

e.printStackTrace() ;

}

}

if(stmt != null){ // 关闭声明

try{

stmt.close() ;

}catch(SQLException e){

e.printStackTrace() ;

}

}

if(conn != null){ // 关闭连接对象

try{

conn.close() ;

}catch(SQLException e){

e.printStackTrace() ;

}

}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/461227.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

mkv210_image.c文件详解(为BL1添加校验头)

以下内容源于朱有鹏嵌入式课程的学习与整理,如有侵权请告知删除。 1、mkv210_image.c的使用演示 裸机程序中的Makefile是把程序的编译和链接过程分开的。实际上真正的项目的Makefile也是这样的,只是平时我们用gcc a.c -o exe这种方式编译时,把…

和菜鸟一起学linux之bluez学习记录2

这里主要摘取对于hci,l2cap,sdp和rfcomm的一些应用编程。 关于hci 一、HCI层协议概述 1、HCI Command Packets 详见bluez源码:lib/hci.h /* Link Control */ #define OGF_LINK_CTL 0x01 #define OCF_INQUIRY 0x0001 #define OCF_…

AppDelegate.h

2019独角兽企业重金招聘Python工程师标准>>> #ifndef __APP_DELEGATE_H__ #define __APP_DELEGATE_H__#include "CCApplication.h" //CCApplication.h能根据平台打开对应的平台头文件 /** brief The cocos2d Application.The reason for implement as …

wamp替换mysql_将wamp集成的mysql替换成安装版的

替换原因:wamp集成的mysql错误提示乱码。修改文件:路径C:\wamp下的wampmanager.conf,wampmanager.ini,uninstall_services.bat路径C:\wamp\bin\mysql\mysql5.6.17下的wampserver.conf步骤:1.安装wamp和mysql&#xff0…

关于uboot的简介——uboot的一些常识介绍

以下内容源于朱有鹏嵌入式课程的学习与整理,如有侵权请告知删除。 一、uboot的由来 1、uboot从哪里来的? uboot是SourceForge上的开源项目。uboot项目的作者:一个德国人最早发起的项目。uboot就是由一个人发起,然后由整个网络上所…

有目标

生活就是每一天都有一个目标,不管大或者小,只要很好的完成了,都会觉得很有成就感!转载于:https://www.cnblogs.com/jackychua/archive/2013/04/01/2994434.html

虚拟机上网以及互ping问题

以下内容源于网络资源的学习与整理,如有侵权请告知删除。 虚拟机设置静态IP和上网问题 (1)在“虚拟机——设置——网络适配器”中选择桥接模式; (2)在“编辑——虚拟网络编辑器”中,选择桥接到有…

php定时执行原理

即使关掉浏览器也能继续执行 ignore_user_abort(); //即使Client断开(如关掉浏览器),PHP脚本也可以继续执行. set_time_limit(0); // 执行时间为无限制,php默认的执行时间是30秒,通过set_time_limit(0)可以让程序无限制的执行下去 转载于:htt…

php递归无限极分类

递归无限级分类有几种形式&#xff0c;我这里仅仅举例比較经常使用的三种&#xff1a; 第一种&#xff1a;返回有排序的数组&#xff1a; <?php$data array(1 > array(id > 1,pid > 0,user_name > one,),2 > array(id > 2,pid > 1,user_name > tw…

qt 飞扬青云_R语言学习——实例标识符

> patientID> age> diabetes> status> patientdata> #在上述创建的病例数据框中&#xff0c;病人编号(patientID)用于区分数据中的不同个体&#xff0c;在R中实例标识符(case identifier)可以通过数据框操作函数中的rowname选项指定&#xff0c;如下代码&…

Makefile中的赋值符号:=、:=、?=、+=

参考博客&#xff1a; Makefile赋值符号的使用——"" ":" "?" ""_秦伟H的博客-CSDN博客 1、“”&#xff0c;是最基本的赋值 make将整个Makefile展开后再决定变量的值&#xff0c;变量的值等于Makefile中最后给这个变量所指定的值&am…

fck java_FCkjava三种调用方法

测试FCK方法一:toolbarSet "Default" >默认内容测试方法二:FCKeditor oFCKeditor ;oFCKeditor new FCKeditor(request,"content") ;oFCKeditor.setBasePath( "/db/fckeditor/" ) ;oFCKeditor.setWidth("600");oFCKeditor.setHeig…

Spring 容器(Spring 的上下文)

为什么80%的码农都做不了架构师&#xff1f;>>> 最近在做项目时牵扯到有关父子上下文的概念。 何为父子上下文呢&#xff1f; 父上下文&#xff1a; 使用listener监听器来加载配置文件&#xff0c;如下&#xff1a; <listener> <listener-class>org.…

file_operations结构体

以下读书笔记内容摘自宋宝华《Linux设备驱动开发详解》一书。 file_operations结构体在字符设备驱动的地位 file_operations结构体的定义 此结构体定义在x210kernel/include/linux/fs.h文件中。 struct file_operations {struct module *owner;loff_t (*llseek) (struct file …

FlashCC学习札记

前段时间项目中有一个功能模块用到了FlashCC&#xff0c;将C的代码编译成swc文件&#xff0c;以便在Flash工程中使用。开发过程中遇到一些问题&#xff0c;现在记录下来&#xff0c;以便日后查阅。 一、开发环境搭建 说明:本文所使用的FlashCC版本为1.0.1&#xff0c; 操作系统…

Java制作报表系统流程_基于JAVA报表生成系统设计与实现.doc

基于JAVA报表生成系统设计与实现摘 要现在是信息社会&#xff0c;各种信息都需要处理并直观展现&#xff0c;如股票&#xff0c;物价等信息都需要通过数据报表来展现、分析&#xff0c;因此高质量报表软件系统具有重要的实际意义。本论文课题研究探索了报表系统的开发方法与技术…

”凉凉“ 的故事

某一天&#xff0c;我在给数据匹配编码的时候发现一个数据匹配不到编码&#xff0c;我怀疑是码表问题&#xff0c;终于发现一个非常奇妙的事情&#xff1a;两个一模一样的字符串竟然不相等&#xff1f;&#xff1f;&#xff1f; 屌爆了&#xff0c;我上下左右看遍了也没看出这2…

struct file 结构体

该结构体在x210kernel/include/linux/fs.h文件中定义。 struct file {/** fu_list becomes invalid after file_free is called and queued via* fu_rcuhead for RCU freeing*/union {struct list_head fu_list;struct rcu_head fu_rcuhead;} f_u;struct path f_path; #def…

左右替换循环

$i1; while($i<5){$i;if(($i%2)0){echo 文字在左&#xff0c;<img src"img/logo_sports.png"><br /><br />;}else{echo <img src"logo_sports.png">&#xff0c;文字在右<br /><br />;} } 转载于:https://www.cnbl…

面向对象理论概述

2019独角兽企业重金招聘Python工程师标准>>> 转载自&#xff1a;http://my.oschina.net/brucelee80/blog 面向对象与面向过程的区别 面向过程就是分析出解决问题所需要的步骤&#xff0c;然后用函数把这些步骤一步一步实现&#xff0c;使用的时候一个一个依次调用就…