JDBC概述
JDBC(Java DataBase Connectivity,java数据库连接)是一种用于执行SQL语句的Java API。JDBC是Java访问数据库的标准规范,可以为不同的关系型数据库提供统一访问,它由一组用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()