JDBC连接数据库(DDL,DML,DQL)——简单的连接

在此以Oracle数据库举例。

首先创建一个maven项目,项目名称我就以"JSD1609_JDBC"来命名。

通过阿里云镜像仓库:http://maven.aliyun.com/nexus

在maven的settings.xml 文件里配置mirrors的子节点,添加如下mirror

<mirror>
    <id>nexus-aliyunid>
    <mirrorOf>*mirrorOf>
    <name>Nexus aliyunname>
    <url>http://maven.aliyun.com/nexus/content/groups/publicurl>
mirror>
导入两个包:ojdbc14-10.2.0.4.0.jar


                    commons-DBCP-1.4.jar(该包依赖commons.pool-1.5.4.jar
                    commons.pool-1.5.4.jar

创建一个demo01.java的项目:

思路:
1、加载数据库驱动(涉及一个参数)
2、连接到数据库(涉及三个参数)
3、创建语句对象
4、执行SQL
5、处理结果
6、关闭数据库连接

以DDL语句为例,写一个简单的连接过程。

import java.sql.Connection
import java.sql.DriverManager;
import java.sql.Statement;
public class Demo01 {
  public static void main(String[] args) throws Exception {
        //1、加载数据库驱动
        Class.forName("oracle.jdbc.OracleDriver");
        //2.连接到数据库(连接以后创建了Connection对象)
        String url = "jdbc:oracle:thin:@127.0.0.1:1521:XE";
        String username = "zqk";
        String password = "zqk123";
        //getConnection()方法,查找并且尝试连接到数据库,如果不成功将出现异常。
        //url前面写错了提示找不到驱动,后面写错了,提示找不到服务器
        Connection conn =
                    DriverManager.getConnection(url, username, password);

        //创建“语句”对象,Statement本身是一个接口
        Statement st =  conn.createStatement();
        //执行SQL
        String ddl = "create table robin_demo_zqk("
                         + "id number(7),"
                         + "name varchar2(100)"
                         + ")";
        boolean b = st.execute(ddl);
         //返回结果:true  表示有结果集,false表示没有结果集
         //创建失败就抛出异常了:名称已由现有对象使用
         //如何判断结果:如果没有异常,则创建成功
         //第一次利用java创建了一张表
        System.out.println(b);
         //关闭数据库连接
     
  conn.close();
  }
}

————————————————————————————————————————————————————


与DDL连接数据的道理相同,只是SQL语句有所改变。
/*
 * 执行DML语句
 *
 */

package cn.tedu.jdbc.day01;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.Statement;
/*
 * 执行DML语句
 *
 */
public class Demo02 {
 public static void main(String[] args) throws Exception {
  //1、注册(加载)数据库驱动
  Class.forName("oracle.jdbc.OracleDriver");
  //2、连接数据库
  String url = "jdbc:oracle:thin:@127.0.0.1:1521:XE";
  String username = "zqk";
  String password = "zqk123";
  Connection conn =
    DriverManager.getConnection(url,username,password);
  //3、创建Statement语句对象 
  Statement c = conn.createStatement();
  //4、注意加空格
  String dml = "insert into robin_demo_zqk "
    + "(id,name)"
    + "values"
    + "(4,'JERRY')";

  //5、处理执行结果
  int d = c.executeUpdate(dml);
  System.out.println(d);
  //6、关闭数据库
  conn.close();
 }
}

我们可以看到DDL和DML两段代码的区别就在于SQL语句部分,其余的部分基本都是相同的,所以我们产生了一个想法,就是将共同的部分进行一个封装处理。

————————————————————————————————————————————————————

还是DDL和DML连接数据库的套路。


package cn.tedu.jdbc.day01;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.Statement;
/*
 * DQL语句
 */
public class Demo03 {
 public static void main(String[] args) throws Exception {
  //注册驱动
  Class.forName("oracle.jdbc.OracleDriver");
  //连接数据库
  String url = "jdbc:oracle:thin:@127.0.0.1:1521:XE";
  String user = "zqk";
  String password = "zqk123";
  Connection conn =
    DriverManager.getConnection(url, user, password);
  //创建Statement语句
  Statement st = conn.createStatement();
  //执行SQl
  String sql = "select id,name "
    + "from robin_demo_zqk ";
  //rs游标自动到第一个,next()移动游标到下一位,
  //并且检查游标有没有数据,如果有数据则返回true

  ResultSet rs = st.executeQuery(sql);
  //处理结果 ...
  //rs结果集中包含一个游标,游标默认在结果集的第一行之前

  
  //next()跟while配合使用的使用只能调用一次
  //rs.next():移动结果集游标到下一行,检查是否有
  //数据,如果有返回true,否则返回false

  while(rs.next()) {
   //getxxx(列名):返回结果集中当前行中指定
   //列名的数据

   int id = rs.getInt("id");
   String name = rs.getString("name");
   //输出查询结果
   System.out.println(id+":"+name);
  }
  //关闭连接
  conn.close();
  /*
   * 此时jdbc一个最大的问题就体现出来了,就是连接管理。
   * 我们需要把程序中的通用部分进行封装,管这部分代码叫
   * 连接管理
   */

 }
}

你可能感兴趣的:(JDBC技术)