MySQL与Java+Python的JDBC操作(代码+解说)

目录

JDBC概述

Java操作

 JDBC基础案例

 Python操作

每文一语


JDBC概述

JDBCJava DataBase Connectivity,java数据库连接)是一种用于执行SQL语句的Java APIJDBCJava访问数据库的标准规范,可以为不同的关系型数据库提供统一访问,它由一组用Java语言编写的接口和类组成。

JDBC需要连接驱动,驱动是两个设备要进行通信,满足一定通信数据格式,数据格式由设备提供商规定,设备提供商为设备提供驱动软件,通过软件可以与该设备进行通信。

Java操作

 JDBC基础案例

JDBC核心类和接口


DriverManager:用于注册驱动

Connection: 表示与数据库创建的连接
Statement/PrepareStatement: 操作数据库sql语句的对象
ResultSet: 结果集或一张虚拟表

public class JdbcDemo1 {
    public static void main(String[] args) throws Exception {
        // 注意:使用JDBC规范,采用都是 java.sql包下的内容
        //1 注册驱动
        Class.forName("com.mysql.jdbc.Driver");
        //2 获得连接
        String url = "jdbc:mysql://localhost:3306/mydb16_jdbc";
        Connection conn = DriverManager.getConnection(url, "root", "123456");
        //3获得执行sql语句的对象
        Statement stmt = conn.createStatement();
        //4执行SQL语句
        ResultSet rs = stmt.executeQuery("select * from student");
 
        //5处理结果集
        while(rs.next()){
            // 获得一行数据
            Integer cid = rs.getInt("sid");
            String cname = rs.getString("sname");
            Integer age = rs.getInt("age");
            System.out.println(cid + " , " + cname);
        }
        //6释放资源
        rs.close();
        stmt.close();
        conn.close();
 
 
    }

SQL注入:用户输入的内容作为了SQL语句语法的一部分,改变了原有SQL真正的意义

 Python操作

PyMySQL 是一个纯 Python 实现的 MySQL 客户端库,支持兼容 Python 3,用于代MySQLdb

import pymysql
 
conn = pymysql.connect(host='localhost', port=3306, user='root',password='123456',database='mydb17_pymysql', charset='utf8')
# 获取游标
cursor = conn.cursor()
 
# 执行SQL语句 返回值就是SQL语句在执行过程中影响的行数
sql = "select * from student;"
 
row_count = cursor.execute(sql)
print("SQL语句执行影响的行数%d" % row_count)
# 取出结果集中一行  返回的结果是一行
# print(cursor.fetchone())
 
# 取出结果集中的所有数据  返回一行数据
for line in cursor.fetchall():
    print(line)
# 关闭游标
cursor.close()
# 关闭连接
conn.close()
import pymysql
 
#获取MySQL连接
conn = pymysql.connect(host='localhost', port=3306, user='root',password='123456',database='mydb17_pymysql', charset='utf8')
# 获取游标
cursor = conn.cursor()
 
# 执行SQL语句 返回值就是SQL语句在执行过程中影响的行数
sql = "select * from student;"
 
row_count = cursor.execute(sql)
print("SQL语句执行影响的行数%d" % row_count)
 
# 取出结果集中一行  返回的结果是一行
# print(cursor.fetchone())
 
# 取出结果集中的所有数据  返回一行数据
for line in cursor.fetchall():
    print(line)
# 关闭游标
cursor.close()
# 关闭连接
conn.close()
import pymysql
 
#获取MySQL连接
conn = pymysql.connect(host='localhost', port=3306, user='root',password='123456',database='mydb17_pymysql', charset='utf8')
# 获取游标
cursor = conn.cursor()
 
 
#插入数据
# sql = "insert into student values(%s,%s,%s)"
# data = (4, '晁盖', 34)
# cursor.execute(sql, data)  #sql和data之间以","隔开
 
# 修改数据
# sql = "update student set sname=%s where sid=%s"
# data = ('李逵', 4)
# cursor.execute(sql, data)
 

 
# 删除数据
sql = "delete from student where sid=%s"
data = (4)
cursor.execute(sql, data)
 
 
conn.commit()   # 提交,不然无法保存插入或者修改的数据(这个一定不要忘记加上)
# 关闭游标
cursor.close()
# 关闭连接
conn.close()

 文末资源推荐

基于Word2Vec构建多种主题分类模型(贝叶斯、KNN、随机森林、决策树、支持向量机、SGD、逻辑回归、XGBoost...)-Python文档类资源-CSDN下载

每文一语

熟能生巧

猜你喜欢

转载自blog.csdn.net/weixin_47723732/article/details/125002064