MySQL系列-Java应用MySQL连接实现

1.JDBC连接数据库介绍

创建一个以JDBC连接数据库的程序,包含7个步骤:
1.1.加载JDBC驱动程序:
在连接数据库之前,首先要加载想要连接的数据库的驱动到JVM(Java虚拟机),
这通过java.lang.Class类的静态方法forName(String className)实现。
成功加载后,会将Driver类的实例注册到DriverManager类中。
1.2.提供JDBC连接的URL
连接URL定义了连接数据库时的协议、子协议、数据源标识。
书写形式:协议:子协议:数据源标识
协议:在JDBC中总是以jdbc开始
子协议:是桥连接的驱动程序或是数据库管理系统名称。
数据源标识:标记找到数据库来源的地址与连接端口。
1.3.创建数据库的连接
要连接数据库,需要向java.sql.DriverManager请求并获得Connection对象,该对象就代表一个数据库的连接。使用DriverManager的getConnectin(String url , String username , String password )方法传入指定的欲连接的数据库的路径、数据库的用户名和密码来获得。
1.4.创建一个Statement
要执行SQL语句,必须获得java.sql.Statement实例,Statement实例分为以下3种类型:

  • 1、执行静态SQL语句。通常通过Statement实例实现。
  • 2、执行动态SQL语句。通常通过PreparedStatement实例实现。
  • 3、执行数据库存储过程。通常通过CallableStatement实例实现。

1.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):用于执行返回多个结果集、多个更新计数或二者组合的语句。

1.6.处理结果
两种情况:

  • 1、执行更新返回的是本次操作影响到的记录数。
  • 2、执行查询返回的结果是一个ResultSet对象。

ResultSet包含符合SQL语句中条件的所有行,并且它通过一套get方法提供了对这些行中数据的访问。使用结果集(ResultSet)对象的访问方法获取数据:
1.7.关闭JDBC对象
操作完成以后要把所有使用的JDBC对象全都关闭,以释放JDBC资源,关闭顺序和声明顺序相反:

  • 1、关闭记录集
  • 2、关闭声明
  • 3、关闭连接对象

2.java例子

2.1.引入jar包
因为前面介绍过用maven工程,所以这里采用maven的引用jar模式
在pom.xml里面加入

<dependency>
   <groupId>mysql</groupId>
   <artifactId>mysql-connector-java</artifactId>
   <version>5.1.38</version>
</dependency>

备注:也可以在lib下面直接加入jar

2.2.创建jdbc的基础连接

/**********************************************************      
 
 * 项目名称:vote   
 * 类名称:DBHelper   
 * 类描述:   
 * 创建人:七夜琉璃
 * 创建时间:2016年4月8日 下午4:49:24   
 * 修改备注:     
 **********************************************************/
package com.vote.db;

import java.sql.Connection;  
import java.sql.DriverManager;  
import java.sql.PreparedStatement;  
import java.sql.SQLException;  
public class DBHelper {
	public static final String url = "jdbc:mysql://127.0.0.1/vote";  
    public static final String name = "com.mysql.jdbc.Driver";  
    public static final String user = "root";  
    public static final String password = "root";  
  
    public Connection conn = null;  
    public PreparedStatement pst = null;  
  
    public DBHelper(String sql) {  
        try {  
            Class.forName(name);//指定连接类型  
            conn = DriverManager.getConnection(url, user, password);//获取连接  
            pst = conn.prepareStatement(sql);//准备执行语句  
        } catch (Exception e) {  
            e.printStackTrace();  
        }  
    }  
  
    public void close() {  
        try {  
            this.conn.close();  
            this.pst.close();  
        } catch (SQLException e) {  
            e.printStackTrace();  
        }  
    }  
}

2.3.访问数据库,输出语句

/**********************************************************      
 
 * 项目名称:vote   
 * 类名称:Demo   
 * 类描述:   
 * 创建人:七夜琉璃
 * 创建时间:2016年4月8日 下午4:50:39   
 * 修改备注:     
 **********************************************************/
package com.vote.db;

import java.sql.ResultSet;
import java.sql.SQLException;

public class Demo {
	 static String sql = null;  
	    static DBHelper db1 = null;  
	    static ResultSet ret = null;  
	  
	    public static void main(String[] args) {  
	        sql = "select * from test";//SQL语句  
	        db1 = new DBHelper(sql);//创建DBHelper对象  
	  
	        try {  
	            ret = db1.pst.executeQuery();//执行语句,得到结果集  
	            while (ret.next()) {  
	                String uid = ret.getString(1);  
	                String ufname = ret.getString(2);  	                
	                System.out.println(uid + "\t" + ufname );  
	            }//显示数据  
	            ret.close();  
	            db1.close();//关闭连接  
	        } catch (SQLException e) {  
	            e.printStackTrace();  
	        }  
	    }  
}

2.4.数据库语句

这里写图片描述

2.5.测试

运行Demo.java
将会在控制台输出:
这里写图片描述

  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值