JDBC入门
JDBC入门
时间:20180310
1.1 简介
使用java程序访问(操作)数据库(发送sql语句),这叫用到了jdbc技术。
1.2 使用jdbc访问数据库的前提
1)先登录数据库:
- 数据库的主机地址(IP地址):
- 端口
- 数据库用户名和密码
- 连接的数据库
2)发送sql语句
使用JDBC链接数据库
·
package gz.itast.a_jdbc;
import java.sql.Connection;
import java.sql.Driver;
import java.sql.DriverManager;
import java.sql.SQLException;
import java.util.Properties;
/**
* 使用jdbc技术链接数据库
* @author mengjie
*
*/
public class Demo1 {
//连接数据库的字符串,jdbc协议,类似于浏览器和服务器沟通的协议 (http协议)
//jdbc协议+数据库协议+ip+port+连接的数据库名称
private static String url = "jdbc:mysql://localhost:3306/day16";
//用户名
private static String user = "root";
//密码
private static String password = "root";
public static void main(String[] args) throws SQLException, ClassNotFoundException {
//t1();
//t2();
//t3();
//主要流程
//1.注册驱动程序(只注册一次)
Class.forName("com.mysql.jdbc.Driver");
//上述代码主要是为了调用Driver.class中代码(mysql具体实现类)
//
// Register ourselves with the DriverManager
//
//static {
//try {
//java.sql.DriverManager.registerDriver(new Driver());
//} catch (SQLException E) {
//throw new RuntimeException("Can't register driver!");
//}
//}
//2.使用驱动管理类获取连接
Connection conn = DriverManager.getConnection(url,user,password);
System.out.println(conn);
}
private static void t3() throws ClassNotFoundException {
/**
* 反射:获取类的对象
* 解决了t2中重复注册驱动程序的问题
* 而且降低依赖程度(t2过度依赖com.mysql.jdbc.Driver() 类)
*/
Class.forName("com.mysql.jdbc.Driver");//执行Driver类中的静态代码块
}
/**
* 使用驱动管理类DriverManager,连接数据库
* @throws SQLException
*/
private static void t2() throws SQLException {
Driver driver = new com.mysql.jdbc.Driver();//mysql //注册了一次驱动
// Driver driver2 = new com.oracle.jdbc.Driver();
//1.注册驱动程序
DriverManager.registerDriver(driver);//有注册了一次驱动,即重复注册了两次驱动
//DriverManager.registerDriver(driver2);
//2.获取连接数据库
Connection conn = DriverManager.getConnection(url, user, password);//通过url识别需要连接数据库
System.out.println(conn);
}
/**
* 1) 直接使用驱动程序连接
* @throws SQLException
*/
private static void t1() throws SQLException {
//1.创建驱动程序的实现类对象
Driver driver = new com.mysql.jdbc.Driver();//新版本
// Driver driver = new org.gjt.mm.mysql.Driver();//旧版本
Properties prop = new Properties();
prop.setProperty("user", user);//用户名
prop.setProperty("password", password);
//2.连接数据库
Connection conn = driver.connect(url, prop);
System.out.println(conn);
}
}
1.3 jdbc的api
|- Driver接口: 驱动程序接口。
|-Connection conn = connect() 用于连接数据库的方法。
|-Connection 接口: 代表和数据库的连接。
|-Statement createStatement() 创建Statement接口的对象。
|-PreparedStatement prepareStatement(String sql) 创建PreparedStatement接口的对象。
|-CallableStatement prepareCall(String sql) 创建CallableStatement接口的对象。
|-Statement接口:用于执行静态SQL语句。
|- int executeUpdate(String sql)执行DDL和DML语句(更新sql语句)比如INSERT\UPDATE\DELETE(DML),或者不返回任何内容的SQL语句(DDL)。
|-ResultSet executeQuery(String sql) 执行DQL语句(查询sql语句)
|-PreparedStatement接口:用于执行预编译的SQL语句
|-int executeUpdate();执行DDL和DML语句(更新sql语句)
|-resultSet executeQuery()执行DQL语句(查询sql语句)
|-CallableStatement接口:用于执行存储过程的SQL语句
|- ResultSet executeQuery()存储过程只能执行查询sql
|-ResultSet接口:表示数据库结果集
|-boolean next() 将光标移至下一行
|-getXXX():获取结果集中的每列的值