JDBC

ODBC:
开放式数据库连接(ODBC,Open DataBase Connectivity)是Microsoft提供的应用程序程序(Appliction Programming Interface,API),用于访问数据库

JDBC:
JDBC(Java Database Connectivity,Java数据库连接)是一种可用于执行SQL语句的Java API(Appoliation Programming Interface,应用程序设计接口)

JDBC的发展:
第一个版本(JDBC-ODBC):
JDBC-ODBC,java程序去连接ODBC,完成数据库操作(桥接)

第二个版本(JDBC本地API):
本地API连接(利用数据库本身的一组API)

第三个版本(JDBC-NET 纯java驱动):
网络API连接(利用中间接技术,操作数据库

第四个版本(本地协议纯java驱动):
纯java驱动(全部由java程序,完成操作)

数据查询步骤:

//步骤1:加载驱动(mysql)
	Class.forName("com.mysql.jdbc.Driver");
//SQL Server 连接:com.microsoft.sqlserver.jdbc.SQLServerDriver
//Oracle 连接:oracle.jdbc.driver.OracleDriver

//步骤2:得到连接
	 Connection conn =DriverManager.getConnection("连接字符串", "用户名","密码");
	//连接字符串:	
	/*	jdbc:mysql://localhost:3306/数据库名?characterEncoding=UTF-8
	解释:
		jdbc:mysql:使用jdbc连接mysql数据库
		localhost: 表示本机
		3306:表示端品号
		characterEncoding=UTF-8:表示解决mysql乱码的问题
*/
//步骤3:得到执行sql语句的对象(Statement有sql漏洞的问题)
	PreparedStatement pstmt =  conn.prepareStatement("sql语句");		//参数的地方用?号表示
	//设置参数
	pstmt.setxxxx(序号,);						//xxx是具体的数据类型,如设置字符串参数用setString()

//步骤4:执行查询
	ResultSet rs = pstmt.executeQuery();
	//取多行数据
	while(rs.next()){	//移动到下一条数据
	      //取具体列的数据
	      rs.getxxxx("字段名"或下标);						//xxx是具体的数据类型,如取字符串用getString()
	}

	//取一条数据或判断是否有数据
	if(rs.next()){
		//有查询到数据......取rs.getxxxx()
	}else{
		//没有查询到数据....
	}

//步骤5:关闭
	rs.close();
	pstmt.close();
	conn.close();

增、删、改步骤:

//步骤1:加载驱动
	Class.forName("com.mysql.jdbc.Driver");
//步骤2:得到连接
	Connection conn =DriverManager.getConnection("连接字符串", "用户名","密码");
//步骤3:得到执行sql语句的对象
	PreparedStatement pstmt =  conn.prepareStatement("sql语句");		
	//设置参数
	pstmt.setxxxx(序号,);						

//步骤4:执行 insert update delete
	int 变量名 = pstmt.executeUpdate();					//返回受影响的行数(int)

//步骤5:关闭
	pstmt.close();
	conn.close();

if(row>=1){
	//成功....
}else{
	//失败.........
}

数据库帮助类

import java.sql.*;

/**
 * mysql帮助类
 */
public class ConnDB {
    /**
     * 打开连接
     * @return
     */
    public static Connection getConn(){
        Connection conn = null;
        try {
            Class.forName("com.mysql.jdbc.Driver");
            conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/BookDB?characterEncoding=UTF-8","root","123456");
        } catch (Exception e) {
            e.printStackTrace();
        }
        return conn;
    }

    /**
     * 关闭连接
     */
    public static void closeDB(ResultSet rs, PreparedStatement pstmt,Connection conn){
        try {
            if(rs != null){
                rs.close();
            }
        } catch (SQLException throwables) {
            throwables.printStackTrace();
        }

        try {
            if(pstmt != null){
                pstmt.close();
            }
        } catch (SQLException throwables) {
            throwables.printStackTrace();
        }

        try {
            if(conn != null){
                conn.close();
            }
        } catch (SQLException throwables) {
            throwables.printStackTrace();
        }
    }
}

导入驱动jar包

注:加载驱动之前应先导入驱动jar包
点击下载

如图所示:
在这里插入图片描述

在这里插入图片描述
解压如图所示:
在这里插入图片描述
在项目中新建文件夹lib将上面的jar包复制到lib中
在这里插入图片描述
lib --> 右键 --> add as Library…
在这里插入图片描述
jar包导入成功!

可结合 demo 一起更方便理解

jdbc连接mysql demo



Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐