程序员

JDBC连接Mysql

作者:admin 2021-05-07 我要评论

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

在说正事之前,我要推荐一个福利:你还在原价购买阿里云、腾讯云、华为云服务器吗?那太亏啦!来这里,新购、升级、续费都打折,能够为您省60%的钱呢!2核4G企业级云服务器低至69元/年,点击进去看看吧>>>)

文章目录

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:加载驱动
	Class.forName("com.mysql.jdbc.Driver");

//步骤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();
        }
    }
}
;原文链接:https://blog.csdn.net/weixin_51008360/article/details/115379995

版权声明:本文转载自网络,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。本站转载出于传播更多优秀技术知识之目的,如有侵权请联系QQ/微信:153890879删除

相关文章
  • JDBC连接Mysql

    JDBC连接Mysql

  • 微信小程序用户授权之最佳实践

    微信小程序用户授权之最佳实践

  • 2021-04-05

    2021-04-05

  • arcgis图层数据查询

    arcgis图层数据查询

腾讯云代理商
海外云服务器