JDBC
SUM公司为了简化开发人员的(对数据库的统一)操作,提供了一个(Java操作数据库)规范,俗称jdbc
这些规范的实现由具体的厂商去做
对于我们开发人员来说,我们只需要掌握jdbc接口的操作即可
java.sql
javax.sql
还需要导入一个数据库驱动包
mysql-connector-java-5.1.37
package com.JDBC.www;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import javax.naming.spi.DirStateFactory.Result;
import com.mysql.jdbc.Statement;
//我的第一个JDBC程序
public class Demo01 {
public static void main(String[] args) throws ClassNotFoundException, SQLException {
//1. 加载驱动
Class.forName("com.mysql.jdbc.Driver"); //固定写法,加载驱动
//2.用户信息和url
//useUnicode=true&characterEncoding=utf8&useSSL=true //固定写法
String url="jdbc:mysql://localhost:3306/persion?useUnicode=true&characterEncoding=utf8&useSSL=true";
String username="root";
String password="123456";
//3.连接成功,数据库对象 connection 代表数据库
Connection connection=DriverManager.getConnection(url, username,password);
//4. 执行SQL的对象Statement执行sql的对象
Statement statement=(Statement) connection.createStatement();
//5. 执行SQL的对象 去执行SQL,可能存在结果,查看返回结果
String sql="SELECT * FROM one_persion";
ResultSet result=(ResultSet) statement.executeQuery(sql);
//返回一个结果集,结果集中封装了我们全部的查询出来的结果
while(result.next()) {
System.out.println("id:"+result.getObject("id"));
System.out.println("name:"+result.getObject("name"));
System.out.println("age:"+result.getObject("age"));
System.out.println("zd:"+result.getObject("dz"));
}
//6.释放连接
result.close();
statement.close();
connection.close();
}
}
步骤总结:
- 加载驱动 Class.forName(com.mysql.jdbc.driver)
- 连接数据库 DriverManager
- 获得执行sql的对象 Statement
- 获得返回的结果集
- 释放连接
DriverManager
//DriverManager.registerDriver(new com.mysql.jdbc.driver())
Class.forName("com.mysql.jdbc.driver"); ///固定写法,加载驱动
//connection 代表数据库
//数据库设置自动提交
//事务提交
//事务回滚
connection.rollback(); //事务回滚
connection.commit(); //事务提交
connectionsetAutoCommit();
URL
String url="jdbc:mysql://localhost:3306/persion?useUnicode=true&characterEncoding=utf8&useSSL=true";
//想成网址记忆
//mysql -- 3306
//协议://主机地址:端口号/数据库名?参数1&参数2&参数3
//oralce -- 1521
//jdbc :oracle:thin:@localhost:1521:sid
Statement 执行SQL的对象 去 执行SQL ,可能存在结果
String sql="sql语句"; //编写sql
statement.executeQuery(sql); //查询操作返回ResultSet
statement.execute(sql); //执行任何SQL
statement.executeUpdate(sql); //更新,插入,删除都是用这个,返回一个受影响的行数
ResultSet 查询的结果集: 封装了所有的查询结果
获得指定的数据类型
resultset.getObject() ; //在不知道的类型的情况下使用
resultset.getString(); //返回String类型的值
遍历,指针
resultset.beforeFirst(); //移动到最前面
resultset.afterLast(); //移动到最后面
resultset.next(); //移动到前一行
resultset.absolute(row); //移动到指定行
释放资源
//6.释放连接
result.close();
statement.close();
connection.close(); //耗资源,用完关掉