本文主要是介绍Java基础入门day42,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
day42
jdbc
如何操作数据库
使用客户端工具访问数据库,需要手工建立连接,输入用户名和密码,编写SQL语句,执行,查看操作结果(结果集或者受影响的行数)
在实际开发中,会采用客户端操作数据库吗?
在实际开发中,当用户数据发生改变时,不可能通过客户端操作执行SQL语句,因为操作量过大,无法保证效率和正确性
JDBC
Java database connectivity: Java连接数据库的规范/标准,可以使用Java语言连接数据库完成crud功能
核心:
Java中定义了访问数据库的接口,可以为多种关系型数据库提供统一的访问方式,由数据库服务厂商提供驱动实现类
数据库驱动:
mysql5
mysql8
jdbc的api
类型 限定名 简介 class DirverManager 管理多个数据库驱动类,提供了获取数据库的连接方式 interface Connection 代表一个数据库连接,当connect部位null时代表已连接的数据库 interface Statement 发送SQL语句到数据库工具 interface ResulstSet 报错SQL查询语言的结果数据 class SQLException 处理数据库应用程序时所发生的异常 环境搭建
在项目中新建一个lib目录,用于存放jar包
将MySQL对应的正确版本的jar放入lib
选择lib中的jar包右键添加到当前项目中
开发步骤
注册驱动
创建数据库连接对象
编写SQL语句
通过数据库连接对象得到一个数据库声明对象
借助数据库的声明对象执行SQL语句
查看执行结果并处理
关闭所有的数据库连接对象
package com.saas; import java.sql.*; public class TestJDBC01 { public static void main(String[] args) {/*** 1. 注册驱动* 2. 创建数据库连接对象* 3. 编写SQL语句* 4. 通过数据库连接对象得到一个数据库声明对象* 5. 借助数据库的声明对象执行SQL语句* 6. 查看执行结果并处理* 7. 关闭所有的数据库连接对象*/ try {// 使用反射拿到数据库驱动Class.forName("com.mysql.jdbc.Driver"); Connection conn = DriverManager.getConnection("jdbc:mysql:///saas","root", "Abc@1234"); String sql = "select * from student"; Statement stmt = conn.createStatement(); ResultSet rs = stmt.executeQuery(sql); System.out.println("sid\tname\tsex\tscore\tcid\tage");while (rs.next()){int sid = rs.getInt(1);String name = rs.getString(2);String sex = rs.getString(3);double score = rs.getDouble(4);int cid = rs.getInt(5);int age = rs.getInt(6); System.out.println(sid + "\t" + name + "\t" + sex + "\t" + score + "\t" + cid + "\t" + age);} rs.close();stmt.close();conn.close();} catch (ClassNotFoundException e) {throw new RuntimeException(e);} catch (SQLException e) {throw new RuntimeException(e);}} }package com.saas; import java.sql.*; public class TestJDBC02 { public static void main(String[] args) {try {Class.forName("com.mysql.jdbc.Driver"); Connection conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/saas", "root", "Abc@1234"); String sql = "select count(1) from student"; Statement stmt = conn.createStatement(); ResultSet rs = stmt.executeQuery(sql); while(rs.next()){System.out.println(rs.getInt(1));} rs.close();stmt.close();conn.close();} catch (ClassNotFoundException e) {throw new RuntimeException(e);} catch (SQLException e) {throw new RuntimeException(e);}} }查询一个聚合函数,得到一个一行一列的结果
package com.saas; import java.sql.Connection; import java.sql.DriverManager; import java.sql.SQLException; import java.sql.Statement; public class TestJDBC03 { public static void main(String[] args) {try {Class.forName("com.mysql.jdbc.Driver"); Connection conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/saas", "root", "Abc@1234"); String sql = "update student set name = 'wuerlang', sex = 'male', score = 88, cid = 5, age = 22 where sid = 115"; Statement stmt = conn.createStatement(); int result = stmt.executeUpdate(sql); System.out.println(result > 0); stmt.close(); conn.close();} catch (ClassNotFoundException e) {throw new RuntimeException(e);} catch (SQLException e) {throw new RuntimeException(e);}} }进行修改操作,所有的增删改代码都与以上代码相同,只需要更换自己的SQL语句即可
只要是查询,使用Statement对象时用的就是executeQuer()方法
只要是增删改操作,使用Statement对象时用的就是executeUpdate()方法
这篇关于Java基础入门day42的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!