数据库的优点
1、实现数据持久化
2、使用完整的管理系统统一管理,易于查询
数据库的相关概念
DB
数据库database():存储数据的仓库,它保存了一系列有组织的数据。
DBMS
数据库管理系统(Database Management System)。数据库是通过DBMD创建和操作的容器。
SQL
结构化查询语言(Structure Query Language):专门用来与数据库通信的语言。
优点:
1、不是某个数据库供应商专有的语言,几乎所有DBMS都支持SQL
2、是一种强有力的语言,灵活使用其语言元素,可以进行非常复杂和高级的数据库操作
启动MySQL
方法
以管理员身份启动命令指示符
Windows+R 再用Ctrl+shift+enter 代替enter进入cmd
使用Navicat软件
连接(连接名随便取一个)
双击这个海豚在右键海豚->新建数据库->双击你新建数据库,下拉菜单里有表,新建表
可视化操作制作很方便
JDBC(Java Database Connectivity)
1、导入jar包
从mysql官网下载jar包
在idea中导入,导入方法
再找到自己的jar包在哪,ok
加载驱动
package JDBC;
public class jdbc {
public static void main(String[] args) {
try {
Class.forName("com.mysql.cj.jdbc.Driver");
//测试
System.out.println("驱动加载成功");
} catch (ClassNotFoundException e) {
e.printStackTrace();
}
}
}
Class.forName是把这个类加载到JVM中,加载的时候,就会执行其中的静态初始化块,完成驱动的初始化的相关工作
数据库连接
Connection conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/mysql", "root","");
格式
url:jdbc:mysql://主机:端口/数据库名(不是连接名!)
user:用户名
password:密码(新建连接的时候你自个设置的)
数据库查询
try {
//加载MySQL驱动
Class.forName("com.mysql.cj.jdbc.Driver");
//连接数据库,获得连接对象
Connection conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/usersinfo", "root","");
//创造执行环境
Statement statement = conn.createStatement();
//执行sql语句 得到结果集
ResultSet result = statement.executeQuery("select * from user");
while(result.next()){
System.out.print(result.getString("id")+" ");
System.out.print(result.getInt("acountnum")+" ");
System.out.println(result.getInt("password"));
}
} catch (ClassNotFoundException | SQLException e) {
e.printStackTrace();
}
输出的就是数据库内容
JDBCUtils
JDBCUtils的作用:连接数据库的四大参数是:驱动类、URL、用户名、密码,这些参数都是与特定数据库关联,如果将来想要更改数据库,那么就要去修改这四大参数,那么为了不去修改代码,我们需要写一个JDBCUtils类,让它从配置文件中读取到配置参数,然后创建连接对象
jdbcUtils.class获得对象 getClassLoader()类加载器 getResourceAsSteam("db.properties")加载资源文件放到输入流中
static{
InputStream is = jdbcUtils.class.getClassLoader().getResourceAsStream("db.properties");
Properties p = new Properties();
try {
p.load(is);
driver = p.getProperty("driver");
url = p.getProperty("url");
username = p.getProperty("username");
password = p.getProperty("password");
//加载MySQL驱动
Class.forName(driver);
} catch (IOException | ClassNotFoundException e) {
e.printStackTrace();
}
}
获得连接对象的方法
DriverManager.getConnection(url,username,password);
还需要写一个关闭类