Eclipse使用JDBC小案例

  JDBC(Java Database Connectivity:Java访问数据库的解决方案)定义一套标准接口,即访问数据库的通用API,不同数据库厂商根据各自数据的特点去实现这些接口。

  JDBC是Java应用程序和数据库之间的通信桥梁,是Java应用程序访问数据库的通道。

  1.JDBC标准主要有一株接口组成,其好处是统一了各种数据库的访问方式;

  2.JDBC接口的实现类称为数据库驱动,由数据库厂商提供,使用JDBC必须要导入接口;

  

第1部分 JDBC工作过程:

1)加载驱动,建立连接;

2) 创建语句对象;

3) 执行SQL语句;

4) 处理结果集;

5) 关闭连接;

第2部分 JDBC具体使用步骤:

1) 导入JDBC驱动jar;

  使用Maven可以便于导入jar包和移植

2) 注册JDBC驱动;

         参数:“驱动程序类名”

         Class.forName(“驱动程序类名”);

3) 获得Connection对象

         需要三个参数:URL,username,password

         连接数据库

4) 创建Statement(语句)对象

         conn.createStatement()方法创建对象

         用于执行SQL语句

         execute(ddl) 执行任何语句,常用语执行DDL

         executeUpdate(DML) 执行DML语句 ,如insert,update,delete

         executeQuery(DQL) 执行DQL语句,如select

5) 处理SQL执行结果:

         execute(DDL) 如果没有异常则成功;

         executeUpdate(DML) 返回数字,表示更新“行”数量,抛出异常则失败;

         executeQuery(DQL) 返回ResultSet(结果集)对象,代表2维查询结果;

         使用for遍历处理,如果查询失败抛出异常!

6) 关闭数据连接,最后一定要关闭!

         conn.close();

第3部分 小案例

3.1 创建一个表

  注意:用String写SQL语句时换行时要注意加空格!

package kwin.jdbc;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.Statement;
/**
 * jdbd使用
 * @author KwinWei QQ:885251358
 *
 */
public class JdbcDemo {

    public static void main(String[] args) {
        try {
            /*连接到数据库
             */
            Class.forName("oracle.jdbc.OracleDriver");
            //System.out.println("OK!");
            /*不同的oracle的IP地址不同  
             * 主机名,端口号,SID
             * url,username,password
             * 
             * jdbc:oracle:thin   写错会找不到驱动
               * 后半写错     连接不上数据库
             * 
             * sqldeverment 连接右键可查看
             * */
            String url = "jdbc:oracle:thin:@localhost:1521:xe";
            String username = "system";  //用户名密码错误会拒绝连接
            String password = "root";
            
            //getConnection() 查找并尝试连接到数据库,如果不成功则会出现异常
            Connection conn = DriverManager.getConnection(url,username,password);
            //输出conn引用对象的实际类名
            //证明:驱动程序提供了Connection接口的实现类
            System.out.println(conn.getClass());
            
            
            /*创建“语句”对象,执行SQL
             * Statement接口
             * Statement stmt = conn.createStatement();
             * boolean flag = stmt.execute(sql); 什么语句都可以执行,一般执行DDL语句,;
             * ResultSet rs = stmt.execute.Query(sql);执行dql语句,selecte,产生结果集;
             * int flag = stmt.executeUpdate(sql);执行DML语句,delete,update
             * 
             * 这三方法不要乱用,其实互换使用可以,但不建议;按建议使用方式来;
             * */
            Statement st = conn.createStatement();
            String ddl1 = "CREATE TABLE kwinDemo( " + 
                    " id NUMBER(4) ," + 
                    " name VARCHAR2(40)," + 
                    " gender VARCHAR2(1)" + 
                    ")";
            boolean b = st.execute(ddl1);
            //返回结果:true表示有结果集;false没有结果集;创建失败抛异常;
            System.out.println(b);
    
            conn.close();   //最后一定要关闭连接
            
        }catch(Exception e) {
            e.printStackTrace();
        }    

    }

}
View Code

 3.2 执行DML语句,往表里插入数据

package kwin.jdbc;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.Statement;

/**
 * 执行DML语句
 * @author KwinWei QQ:885251358
 *
 */
public class JdbcDemo2 {

    public static void main(String[] args) {
        try{/*注册驱动*/
            Class.forName("oracle.jdbc.OracleDriver");
            //连接到数据库
            String url = "jdbc:oracle:thin:@localhost:1521:xe";
            String username = "system";
            String password = "root";
            Connection conn = DriverManager.getConnection(url,username,password);
            //System.out.println(conn.getClass());
            
            //创建Statement
            Statement st = conn.createStatement();
            //执行DML,插入可以去SQL Dvelopment里查看
            String dml = "insert into kwinDemo"
                    + "(id,name)  values(001,'Tom')";
            int  n = st.executeUpdate(dml);
            System.out.println(n);
            //关闭连接
            conn.close();
            
            
        }catch(Exception e) {
            e.printStackTrace();
        }
    }

}
View Code
原文地址:https://www.cnblogs.com/kwinwei/p/10659375.html