Java DataBase Connectivity,是SUN推出的操作数据库的规范。
1、DriverManager:驱动管理对象
public static void registerDriver(Driver driver):向 DriverManager 注册给定驱动程序。但我们注册驱动都是使用Class.forName("com.mysql.jdbc.Driver"),这是因为使用在com.mysql.jdbc.Driver类中存在静态代码块
static { try { DriverManager.registerDriver(new Driver()); } catch (SQLException var1) { throw new RuntimeException("Can't register driver!"); } } public static Connection getConnection(String url,String user,String password):获取连接对象Connection2、Connection:数据库连接对象
Statement createStatement():创建一个 Statement对象来将 SQL 语句发送到数据库。PreparedStatement prepareStatement(String sql):创建一个 PreparedStatement对象来将参数化的 SQL 语句发送到数据库。void setAutoCommit(boolean autoCommit):开启事务void commit():提交事务void rollback():回滚事务3、Statement:用于执行静态(无参数)sql 的对象
boolean execute(String sql):执行任意的sql语句ResultSet executeQuery(String sql):执行DQL(select)语句int executeUpdate(String sql):执行DML(insert、update、delete)语句、DDL(create,alter、drop)语句4、ResultSet:结果集对象
boolean next():游标向下移动一行,判断当前行是否是最后一行末尾(是否有数据),如果是,则返回false,如果不是则返回truegetXxx(参数):获取各种类型的数据(Xxx代表数据类型)5、PreparedStatement:用于执行动态(有参数)sql的对象
PreparedStatement使用的原因(好处):使用PreparedStatement执行SQL可以避免注入攻击;
多次执行的 SQL 语句使用PreparedStatement对象,可以提高效率。
PreparedStatement的工作原理:a、通过Connection对象获取PreparedStatement对象;
b、提示数据库执行对应带参数的SQL语句;
c、数据库检查带参数的SQL语句;
d、将带参数的SQL语句编译成计划;
f、设置指定的参数值;
g、由数据库通过指定的参数执行对应的计划。
PreparedStatement常用方法:void setObject(int parameterIndex,Object x):使用给定对象设置指定参数的值。
ResultSet executeQuery():执行DQL(select)语句
int executeUpdate():执行DML(insert、update、delete)语句、DDL(create,alter、drop)语句
编写JDBC入门步骤:
1、导包(可以从https://mvnrepository.com/下载jar包):
a、使用mysql数据库:mysql-connector-java-5.1.40.jar
b、使用oracle数据库:ojdbc6.jar
c、使用sqlserver数据库:sqljdbc4.jar
2、代码编程步骤:
package com.wedu.test; import java.sql.Connection; import java.sql.DriverManager; import java.sql.ResultSet; import java.sql.Statement; /** * jdbc入门 */ public class Demo { public static void main(String[] args) throws Exception { //1、注册驱动 Class.forName("com.mysql.jdbc.Driver"); //Class.forName("oracle.jdbc.driver.OracleDriver"); //Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver"); //2、获取数据库连接对象Connection Connection conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/test", "root", "123456");//mysql //Connection conn = DriverManager.getConnection("jdbc:oracle:thin:@127.0.0.1:1521:xe", "system", "123456");//oracle //Connection conn = DriverManager.getConnection("jdbc:sqlserver://127.0.0.1:1433;DatabaseName=test", "sa", "123456");//sqlserver //3、定义Sql语句 String sql = "select * from userinfo"; //4、获取执行sql的对象Statment Statement stmt = conn.createStatement(); //5、执行Sql语句 ResultSet rs = stmt.executeQuery(sql); //6、处理结果 while(rs.next()) { String username = rs.getString("username"); String password = rs.getString("password"); System.out.println("用户名:" + username + ",用户密码:" + password ); } //7、释放资源 rs.close(); stmt.close(); conn.close(); } }