JDBC连接数据库的相关问题
1. JDBC 的概念
jdbc是一种用于执行SQLQ语句的API,可以为多种数据库提供统一的访问,它是由一组java语言编写的类和接口组成。JDBC提供了一种基准,据此可以构建更高级的工具和接口,使数据库开发人员能够编写数据库应用程序。说白了,我们可以通过这个东西去连接到数据库,并对数据库进行一系列的操作
2. 连接数据库需要明确的条件(前提)
- 确定连接的数据库所在网络地址和对应操作哪一个数据库,这里使用一个符合JDBC规范的URL
URL jdbc://mysql://localhost:3306/lalala
(3306是端口号,在自己安装mysql设置的,默认是3306)
(jdbc是操作数据库的主协议,mysql是子协议)
(lalala,是要操作的数据库名字) - 用户名和密码(演示时,用户名root 密码123456)
- 导入相应的jar包
mysql - connector - java - 5.1.47.jar
3. 连接数据库
连接数据库大致分为以下几步
- 准备必要的参数 url(第二条) user(用户名) password(密码) driver(驱动)
- 加载驱动
- 通过DriverManager创建连接对象
- 通过连接对象创建Statement对象
- 执行SQL语句,接收执行结果
- 判断结果,对数据进行处理
- 关闭连接释放资源
//准备参数
//useSSL=true,当mysql版本与jdbc版本不兼容,mysql版本高一些的时候要加这个东西
String url = "jdbc:mysql://localhost:3306/lalala?useSSL=true" ;
String user = "root";
String password = "123456";
String driver = "com.mysql.jdbc.Drive";
//加载驱动
Class.forName(driver);
//获得连接对象
Connection conn = DriverManager.getConnection(url,user,password);
//创建Statement对象
Statement state = conn.createStatement();
接下来就有点不固定了
查询:
//准备SQL语句
String sql = "select * from student"
//执行sql语句,这里使用executeQuery
ResultSet RS = state.executeQuery(sql);
//遍历结果集
while (RS.next() && RS!=null) {
//这是返回第二列的数据,下标从1开始的
System.out.println(RS.getString(2));
//建议这样使用
System.out.println(RS.getString("name"));
}
增加删除修改:
//准备sql语句,这里以插入为例子,删除和修改只是sql语句不同
String sql = "insert into student(name,age,gender) values('小黄',17,'女')";
//提交使用的是executeUpdate,返回的是受到影响的行数
int RS= statement.executeUpdate(sql);
//判断
if (RS > 0) {
System.out.println("操作成功");
}
最后关闭连接释放资源
if (statement != null) {
statement.close();
}
if (connection != null) {
connection.close();
}
【注意】进行数据库操作的时候,mysql服务必须是启动中的(任务管理器—服务)
如果没有启动服务就会报以下错误