jdbc: java database connection (Java数据库连接)定义了一套Java操作数据库的规范,称之为JDBC
定义了一套JDBC接口,这套接口由数据库厂商去实现,这样,开发人员只需要学习JDBC接口,并通过JDBC加载具体的驱动,就可以操作数据库。
1.链接
1在程序中加载数据库驱动(称为注册驱动)
DriverManager.registerDriver(Driver driver);
2建立连接( Connection)
Connection conn = DriverManager.getConnection(ur1,user,psw);
3创建用于向数据库发送SQL的statement对象,并发送SQL
statement st = conn.createstatement(;Resu7 tset rs = st.executeQuery(sq1);
4从代表结果集的Resu1tset中取出数据,打印到命令行窗口
5断开与数据库的连接,并释放相关资源。
rs.close();
st.close();
con.close();
import java.sql.*;
public class JDBC {
public static void main(String[] args) throws SQLException, ClassNotFoundException {
//注册驱动
Class.forName("com.mysql.jdbc.Driver");
//获取链接对象
Connection connection = DriverManager.getConnection
("jdbc:mysql://localhost:3306/mydatabase","root","123456");
//sql语句
Statement statement = connection.createStatement();
String sql ="selet * from user";
ResultSet rs = statement.executeQuery(sql);
//遍历结果
while (rs.next()){
String username=rs.getString("Username");
System.out.println(username);
}
//释放
rs.close();
statement.close();
connection.close();
}
}
2.SQL语句
SQL(Structured Query Language)是一种用于管理关系数据库管理系统的标准编程语言。增删改查(CRUD)是数据库管理中的基本操作,分别对应创建(Create)、读取(Read)、更新(Update)和删除(Delete)。
下面我将给出一些具体的SQL语句例子,假设我们有一个名为students
的表,该表有id
、name
、age
和class
四个字段。
查询
-- 查询所有学生信息
SELECT * FROM students;-- 查询指定班级的学生信息
SELECT * FROM students WHERE class = '计算机一班';-- 查询年龄大于20岁的学生信息
SELECT * FROM students WHERE age > 20;-- 查询学生信息,并按年龄排序
SELECT * FROM students ORDER BY age ASC;
新增
-- 插入单个数据行
INSERT INTO students (id, name, age, class) VALUES (1, '张三', 20, '计算机一班');-- 插入多个数据行
INSERT INTO students (id, name, age, class) VALUES
(2, '李四', 19, '计算机一班'),
(3, '王五', 21, '计算机二班');
删除
-- 删除指定学生信息
DELETE FROM students WHERE name = '张三';-- 删除所有年龄小于20岁的学生信息
DELETE FROM students WHERE age < 20;
更新
-- 更新指定学生的年龄
UPDATE students SET age = 22 WHERE name = '张三';-- 更新指定班级所有学生的班级名称
UPDATE students SET class = '计算机科学与技术' WHERE class = '计算机一班';
使用数据源
Datasource方式:在内部创建connection对象的连接池,“池”资源是可以重复利用的。
当一个Connection对象调用connection.close()方法之后,它不是真正的关闭,这个对象会被Datasource回收进入连接池。
若此时有别的用户需要建立连接,不是创建新的连接,而是看连接池中是否有空闲的连接,直接使
用空闲的连接。
获取连接()
getconnection(字符串用户名,字符串密码)这两种方法都返回一个connection对象。