Java Web之JDBC入门

mac2022-06-30  21

一、JDBC概述

Java DataBase Connectivity,是SUN推出的操作数据库的规范。

二、JDBC接口详解

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):获取连接对象Connection

2、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入门

编写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(); } }
最新回复(0)