连接Mysql数据库
JDBC连接数据库
创建一个以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开始
- 子协议:是桥连接的驱动程序或是数据库管理系统名称。
- 数据源标识:标记找到数据库来源的地址与连接端口。
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
种类型:
- 执行静态SQL语句。通常通过Statement实例实现。
- 执行动态SQL语句。通常通过PreparedStatement实例实现。
- 执行数据库存储过程。通常通过CallableStatement实例实现。
具体的实现方式:
   Statement stmt = con.createStatement() ;
   PreparedStatement pstmt = con.prepareStatement(sql) ;
   CallableStatement cstmt = con.prepareCall("{CALL demoSp(? , ?)}") ;
5、执行SQL语句
- Statement接口提供了三种执行SQL语句的方法:executeQuery 、executeUpdate和execute
- ResultSet executeQuery(String sqlString):执行查询数据库的SQL语句,返回一个结果集(ResultSet)对象。
- int executeUpdate(String sqlString):用于执行INSERT、UPDATE或
DELETE语句以及SQL DDL语句,如:CREATE TABLE和DROP TABLE等- execute(sqlString):用于执行返回多个结果集、多个更新计数或二者组合的
语句。
  ResultSet rs = stmt.executeQuery("SELECT * FROM ...") ;
  int rows = stmt.executeUpdate("INSERT INTO ...") ;
  boolean flag = stmt.execute(String sql) ;   6、处理结果
- 两种情况:
- 执行更新返回的是本次操作影响到的记录数。
- 执行查询返回的结果是一个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、关闭声明
      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() ;
     }
      }
连接Mysql数据库的更多相关文章
- nodejs进阶(6)—连接MySQL数据库
		1. 建库连库 连接MySQL数据库需要安装支持 npm install mysql 我们需要提前安装按mysql sever端 建一个数据库mydb1 mysql> CREATE DATABA ... 
- PDO连接mysql数据库
		1.PDO简介 PDO(PHP Data Object) 是PHP 5 中加入的东西,是PHP 5新加入的一个重大功能,因为在PHP 5以前的php4/php3都是一堆的数据库扩展来跟各个数据库的连接 ... 
- Windows操作系统下远程连接MySQL数据库
		用Eclipse做一个后台项目,但是数据库不想放在本地电脑,于是买了一个腾讯云服务器(学生有优惠,挺便宜的),装上MySQL数据库,但是测试连接的时候,发现总是连接不是上,但是本地数据库可以连接,于是 ... 
- java 通过jdbc连接MySQL数据库
		先了解下JDBC的常用接口 1.驱动程序接口Driver 每种数据库的驱动程序都应该提供一个实现java.sql.Driver接口的类,简称Driver类.通常情况下,通过java.lang.Clas ... 
- JDBC连接MySQL数据库代码模板
		下面这个例子是最简单的JDBC连接MySQL数据库的例子. 一般步骤: 1.注册驱动: 2.建立连接: 3.创建语句: 4.处理结果: 5.释放资源. 注意: 1.软件开发环境:MyEclipse 8 ... 
- PHP如何连接MySQL数据库
		* PHP连接MySQL数据库 * 准备工作 * 在XAMPP软件的安装目录/php/ext目录中 * php_mysql.dll和php_mysqli.dll文件必须存在 * 在XAMPP软件的安装 ... 
- JSP连接MySQL数据库问题
		之前写了一大段,还说了一下具体JDBC连接数据库API的具体包的基本知识,哪知道自己手残不小心按了删除按钮.结果去看自动保存记录时,就只剩下下面这段了.好吧,其实最主要最核心的也就是下面这点了.具体如 ... 
- java连接mysql数据库详细步骤解析
		java连接mysql数据库详细步骤解析 第一步:下载一个JDBC驱动包,例如我用的是:mysql-connector-java-5.1.17-bin.jar 第二步:导入下载的J ... 
- Java连接MySQL数据库——含步骤和代码
		工具:eclipse MySQL5.6 MySQL连接驱动:mysql-connector-java-5.1.27.jar 加载驱动: 1. 在工程目录中创建lib文件夹,将下载好的JDBC放到该文件 ... 
- Navicat for mysql 远程连接 mySql数据库10061、1045错误
		原文地址:http://www.111cn.net/database/mysql/46377.htm 有朋友可能会碰到使用Navicat for mysql 远程连接 mySql数据库会提示10061 ... 
随机推荐
- java模拟http请求
			java模拟http发送请求,第一种是HttpURLConnection发送post请求,第二种是使用httpclient模拟post请求, 方法一: package main.utils; impo ... 
- 【Unity3d】MenuItem修饰的方法无法触发的可能原因
			遇到了MenuItem修饰的方法无法触发的情况,顺利解决. 类放在Editor目录下,该类下其他方法被MenuItem修饰可以触发. 后来发现我修饰的方法和该类下另一个方法重名了. 改方法名,问题解决 ... 
- 基于MapReduce的(用户、物品、内容)的协同过滤推荐算法
			1.基于用户的协同过滤推荐算法 利用相似度矩阵*评分矩阵得到推荐列表 已经推荐过的置零 2.基于物品的协同过滤推荐算法 3.基于内容的推荐 算法思想:给用户推荐和他们之前喜欢的物品在内容上相似的物品 ... 
- Python单元测试--unittest(一)
			unittest模块是Python中自带的一个单元测试模块,我们可以用来做代码级的单元测试. 在unittest模块中,我们主要用到的有四个子模块,他们分别是: 1)TestCase:用来写编写逐条的 ... 
- Lua学习笔记(5): 表
			表的初始化方式 表的索引类型一般有两种,一种是通过标识符访问,一种是通过数字访问 --通过标识符访问的表的初始化 table1 = {key_1 = "haha", key_2 = ... 
- Vue 编程之路(一)——父子组件之间的数据传递
			最近公司的一个项目中使用 Vue 2.0 + element UI 实现一个后台管理系统的前端部分,属于商城类型.其中部分页面是数据管理页,所以有很多可以复用的表格,故引入自定义组件.在这里分享一下开 ... 
- 合并SQL 调优
			SELECT le.equipcode,sum(case when wo.ordertype=0 then 1 else 0 END) as wxcount,sum(case when wo.orde ... 
- Python 3 利用 Dlib 实现摄像头人脸检测特征点标定
			0. 引言 利用 Python 开发,借助 Dlib 库捕获摄像头中的人脸,进行实时人脸 68 个特征点标定: 支持多张人脸: 有截图功能: 图 1 工程效果示例( gif ) 图 2 工程效果示例( ... 
- 如何通俗理解贝叶斯推断与beta分布?
			有一枚硬币(不知道它是否公平),假如抛了三次,三次都是“花”: 能够说明它两面都是“花”吗? 1 贝叶斯推断 按照传统的算法,抛了三次得到三次“花”,那么“花”的概率应该是: 但是抛三次实在太少了,完 ... 
- Maven私有仓库搭建以及使用
			一.使用Docker安装Nexus Docker search nexus docker pull docker.io/sonatype/nexus3 mkdir -p /usr/local/nexu ... 
