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>mysqlgroupId>
   <artifactId>mysql-connector-javaartifactId>
   <version>5.1.38version>
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
将会在控制台输出:
java--连接数据库--mysql--介绍_第1张图片

你可能感兴趣的:(Java)