什么是数据库
歌据库是一种存储结构,它允许使用各种格式输入、处理和检索数据,不必在每次需要数据时重声输入。例如,当需要某人的电话号码时,需要查看电话簿,按照姓名来查阅,这个电话簿就是一个教拒库。数据库具有以下主要特点:
区实现数据共享。数据共享包括所有用户可同时存取数据库中的数据,也包括用户可以用各种
方式通过接口使用数据库,并提供数据共享。
团减少数据的冗余度。同文件系统相比,数据库实现了数据共享,从而避免了用户各自建立应
用文件,减少了大量重复数据,减少了数据冗余,维护了数据的一致性。
区 数据的独立性。数据的独立性包括数据库中数据库的逻辑结构和应用程序相互独立,也包括
数据物理结构的变化不影响数据的逻辑结构。
区数据实现集中控制。文件管理方式中,数据处于一种分散的状态,不同的用户或同一用户在不同处理操作中,其文件之间毫无关系。利用数据库可对数据进行集中控制和管理,并通过数据模型表示各种数据的组织以及数据间的联系。
数据的一致性和可维护性,以确保数据的安全性和可靠性。主要包括:
安全性控制,以防止数据丢失、错误更新和越权使用。
完整性控制,保证数据的正确性、有效性和相容性。
并发控制,既在同一时间周期内允许对数据进行多路存取,又能防止用户之间的不正常
交互。
故障的发现和恢复。
从发展的历史来看,数据库是数据管理的高级阶段,是由文件管理系统发展起来的。数据库的基
本结构分为3个层次:
口物理数据层:它是数据库的最内层,是物理存储设备上实际存储的数据集合。这些数据是原
始数据,是用户加工的对象,由内部模式描述的指令操作处理的字符和字组成。
区概念数据层:它是数据库的中间一层,是数据库的整体逻辑表示,指出了每个数据的逻辑定义及数据间的逻辑联系,是存储记录的集合。它所涉及的是数据库所有对象的逻辑关系,而不是它们的物理情况,是数据库管理员概念下的数据库。
区 逻辑数据层:它是用户所看到和使用的数据库,是一个或一些特定用户使用的数据集合,即
逻辑记录的集合。
打卡“命令提示符”,用管理员身份运行
登录MySQL
创建库和表
使用Java命令查询数据库操作
右击——点击“Build Path”——选择第四个——找到包的位置——导入成功
例题
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import com.mysql.cj.jdbc.Driver;
public class mysqldemo {
Connection coonection;
public static void main(String[] args) throws SQLException{
mysqldemo mysqlDemo=new mysqldemo();
mysqlDemo.getConnection();
System.out.println("查询课程表中数据,结果为:");
mysqlDemo.selectAll();
System.out.println("新增课程4,课程名为WEB");
mysqlDemo.add(4,"WEB");
System.out.println("查询课程表中数据,结果为:");
mysqlDemo.selectAll();
System.out.print("修改课程3,课程名为Office");
mysqlDemo.update(3,"Office");
System.out.print("查询课程表中数据,结果为:");
mysqlDemo.selectAll();
System.out.println("删除课程4");
mysqlDemo.delete(4);
System.out.print("查询课程表中数据,结果为:");
mysqlDemo.selectAll();
mysqlDemo.colse();
}
private void delete(int id) throws SQLException {
// TODO Auto-generated method stub
//第三步: 获取statement对象
PreparedStatement preparedstatement = coonection.prepareStatement("delete from course where id : ?");
preparedstatement.setInt(1, id);
//第四步: 执行SQL语句
preparedstatement.executeUpdate();
}
private void update(int id, String name) throws SQLException {
// TODO Auto-generated method stub
//第三步: 获取statement对象:
PreparedStatement preparedStatement = coonection.prepareStatement("update course set name= ? where id = ?");
preparedStatement.setString(1, name);
preparedStatement.setInt(2, id);
//第四步: 执行SQL语句
preparedStatement.executeUpdate();
}
private void add(int id, String name) throws SQLException {
// TODO Auto-generated method stub
//第三步:获取statement对象
PreparedStatement preparedStatement = coonection.prepareStatement("insert into course values(?,?);");
preparedStatement.setInt(1,id);
preparedStatement.setString(2,name);
//第四步:执行SQL语句
preparedStatement.executeUpdate();
}
public void getConnection() throws SQLException {
// TODO Auto-generated method stub
//连接数据库步骤
//第一步:注册驱动
DriverManager.registerDriver(new Driver());
//第二步:获取连接
coonection = DriverManager.getConnection("jdbc:mysql://localhost:3306/school_java","root","1234");
}
//第三步:获取statement对象
public void selectAll()throws SQLException{
PreparedStatement preparedStatement = coonection.prepareStatement("select*from course");
//第四步:执行SQL语句返回结果集
ResultSet resultSet=preparedStatement.executeQuery();
//第五步:遍历结果集
while(resultSet.next()) {
System.out.print(resultSet.getInt("id")+" ");
System.out.println(resultSet.getString("name"));
}
//第六步:关闭连接释放资源
resultSet.close();
preparedStatement.close();
}
public void colse()throws SQLException{
coonection.close();
}
}