第一个JDBC程序
1.创建sql的语句:
CREATE DATABASE `jdbcStudy` CHARACTER SET utf8 COLLATE utf8_general_ci;
USE `jdbcStudy`;
CREATE TABLE `users`(
`id` INT PRIMARY KEY,
`NAME` VARCHAR(40),
`PASSWORD` VARCHAR(40),
`email` VARCHAR(60),
birthday DATE
);
INSERT INTO `users`(`id`,`NAME`,`PASSWORD`,`email`,`birthday`)
VALUES(1,'zhangsan','123456','zs@sina.com','1980-12-04'),
(2,'lisi','123456','lisi@sina.com','1981-12-04'),
(3,'wangwu','123456','wangwu@sina.com','1979-12-04')
2.导入mysql驱动
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-L605r4RS-1606392169934)(C:\Users\Administrator\AppData\Roaming\Typora\typora-user-images\image-20201124165606236.png)]
3.代码实现
import java.sql.*;
public class jdbcFirstDemo {
public static void main(String[] args) throws ClassNotFoundException, SQLException {
// 1.加载驱动
Class.forName("com.mysql.jdbc.Driver"); //固定的写法
// 2.连接数据库DriverManager sql信息
//useUnicode=true&characterEncoding=utf8&&useSSL=true 中文字符集,编码表,安全
String url ="jdbc:mysql://localhost:3306/jdbcstudy?useUnicode=true&characterEncoding=utf8&&useSSL=true";
String username="root";
String pwd="123456";
Connection connection = DriverManager.getConnection(url, username, pwd);
//3.获取执行sql的对象 Statement
Statement statement = connection.createStatement();
String sql ="SELECT * FROM users";
//statement.executeQuery(sql) 查询使用这个方法
// statement.executeUpdate() 修改更新删除都使用这个方法
ResultSet resultSet = statement.executeQuery(sql);
//4.获得返回的结果集,只有在查询的时候才会有返回的结果集
while (resultSet.next()){
System.out.println("id="+resultSet.getObject("id"));
System.out.println("name="+resultSet.getObject("NAME"));
System.out.println("pwd="+resultSet.getObject("PASSWORD"));
System.out.println("email="+resultSet.getObject("email"));
System.out.println("birthday="+resultSet.getObject("birthday"));
System.out.println("============================");
}
//5.释放连接
resultSet.close();
statement.close();
connection.close();
}
}
步骤总结:
1.加载驱动
Class.forName("com.mysql.jdbc.Driver");
2.连接数据库DriverManager sql信息
//jdbc:mysql://localhost:3306/jdbcstudy?useUnicode=true&characterEncoding=utf8&&useSSL=true
// url 书写 jdbc:mysql://localhost:3306/jdbcstudy
// jdbc:mysql://主机名:端口号/数据库?useUnicode=true&characterEncoding=utf8&&useSSL=true
String url ="";
String username="";
String pwd ="";
Connection connection = DriverManager.getConnection(url, username, pwd);
3.获得执行sql的对象 Statement
Statement statement = connection.createStatement();
4.获得返回的结果集
String sql="";
statement.executeQuery(sql)
//如果是查询语言可以获得返回集
ResultSet resultSet = statement.executeQuery(sql);
5.释放连接
resultSet.close();
statement.close();
connection.close();
JDBC中的对象:
1.DriverManager
// 1.加载驱动
//DriverManager.registerDriver(new com.mysql.jdbc.Driver()); 不建议使用这种方法加载驱动
Class.forName("com.mysql.jdbc.Driver"); //固定的写法
//获得数据库对象
Connection connection = DriverManager.getConnection(url, username, pwd);
2.URL
//语法总结:协议://主机地址:端口号/数据库名?参数1&参数2&参数3
String url ="jdbc:mysql://localhost:3306/jdbcstudy?useUnicode=true&characterEncoding=utf8&&useSSL=true";
//mysql的端口号是3306
//oracle 端口号 1521
//jdbc:oracle:thin@localhost:1521:sid
3.connection
//获得数据库对象
Connection connection = DriverManager.getConnection(url, username, pwd);
//connection 代表数据库
//数据库设置自动提交
//事务提交
//事务回滚
connection.setAutoCommit();
connection.commit();
connection.rollback();
4.statement
执行sql的对象 prepareStatement 执行sql语句的对象
//编写sql
String sql ="SELECT * FROM users";
//用statement执行sql语句
statement.executeQuery(sql);//执行查询的sql语句
statement.executeUpdate(sql);//执行修改 ,更新,删除 的sql语句
statement.execute(sql);//执行任何的sql语句
5.resultSet
查询的结果集:封装了所有的查询结果
获得指定类型的结果集:
//在不知道列类型的时候使用object
resultSet.getObject();
//在知道列的类型时候就使用指定的类型
resultSet.getString();
resultSet.getInt();
resultSet.getDouble();
resultSet.getFloat();
....
遍历指针
resultSet.beforeFirst();//移动到最前面
resultSet.afterLast();//移动到最后面
resultSet.previous();//移动到前一行
resultSet.absolute(row);//移动到指定的行
resultSet.next();//移动到下一个数据
6.释放资源
必须关掉,耗费资源
//5.释放连接
resultSet.close();
statement.close();
connection.close();