zoukankan      html  css  js  c++  java
  • Java -- JDBC学习笔记1、连接数据库添加数据

    1、JDBC是什么?

    Java语言连接数据库,是Java和数据库之间的一个桥梁,是一个规范而不是一个实现,能够执行SQL语句。

    2、JDBC的本质是什么?

    JDBC是SUN公司制定的一套接口(interface),也就是说SUN公司只负责定义,而不负责实现。作为开发人员是面向接口而编程。只需调用SUN公司提供的接口即可,而无需关心接口具体实现。java.sql.* (这个软件包下有许多的接口)

    3、为什么要面向接口编程?

    • 接口都有调用者和实现者,作为开发人员需要调用相应的接口,而如何实现则无需关心
    • 为什么要面向接口编程?解耦合:降低程序的耦合度,提高程序的扩展力。多态就是典型的:面向抽象编程,不面向具体编程。
    • 比如一个方法里的参数类型是接口类型,这样只需传入接口实现类即可,如果在方法参数写成类类型,那么就只能传入对应的类,不利于维护和修改。

    4、为什么SUN制定一套JDBC接口?

    • 为Java软件工程师修一座桥连接不同的数据库
    • 上边已经说了,Java软件工程师只需调用SUN公司提供的接口即可,而接口的具体实现类正是由各大数据库厂商负责,因为每种数据库的实现原理不一样,Oracle数据库有自己的原理。MySQL数据库也有自己的原理。SqlServer数据库也有自己的原理。
    • 如果没有SUN公司提供的接口,我们就要学习各大数据库厂商的实现类代码,非常复杂和麻烦,每个数据库厂商的实现都不一样,而有了SUN公司提供的接口后就简单了,当SUN公司将接口定义好后,各大数据库厂商纷纷相应,分别对接口进行实现,而我们只需将他们写的接口实现类下载下来,引入到项目当中,然后调用SUN公司提供的接口即可。

    5、JDBC开发前的准备工作——下载jar驱动包

    • jar包里边的内容就是各大数据库厂商对接口的具体实现类,我这里下载的是SQL server的驱动jar包。
    • 开发工具使用的是IDEA。
    • 数据库使用的是SQL server2012。

    5.1、打开IDEA,新建一个Java Web项目

    • 在Java Web项目中的WEB-INF文件下新建一个lib文件夹,不要在根目录下或者其它文件夹建。
    • 将下载好的驱动jar复制到lib文件夹中。
    • 右键lib文件,选择Add as Library。

    5.2、JDBC中主要的接口和类如下:

    6、JDBC的具体开发步骤

    6.1、注册驱动

    告诉Java程序,即将要连接的是哪个”品牌“的数据库,SQL server的注册方式:

    try
    {
         Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
    }
    catch (ClassNotFoundException e)
    {
          e.printStackTrace();
    }
    • MySQL的加载驱动方式:Class.forName("com.mysql.jdbc.Driver")
    • 将lib文件夹里的SQLserver的jar包换成对应的MySQL驱动的jar包即可

    6.2、连接数据库

    表示JVM进程和数据库进程之间的通道打开了,这属于进程之间的通信,重量级的,用完之后一定要关闭通道,代码如下:

    Connection conn = null;
    
            String url = "jdbc:sqlserver://localhost:1433;databaseName=StudentManage";
    
            try
            {
                conn = DriverManager.getConnection(url,"sa","sql2012");
            }
            catch (SQLException sqlException)
            {
                sqlException.printStackTrace();
            }
    • url:数据库连接字符串,就是告诉Java数据库在哪,连接那个库
    • sa:数据库登录名
    • sql2012:数据库登录密码
    • MYSQL对应的连接字符串:url=jdbc:mysql://localhost:3306/MyfirstDb?characterEncoding=utf-8&useSSL=false

    6.3、获取发送SQL的对象

    通过Connection对象获取Statement对象,专门执行sql语句的对象.

    Statement statement = null;
            try
            {
                statement = conn.createStatement();
            }
            catch (SQLException sqlException)
            {
                sqlException.printStackTrace();
            }
    

    6.4、执行SQL语句、处理结果

    String addSql = "INSERT INTO Students(Name,LoginName,LoingPwd) values('小明','xm','123')";
    
            try
            {
                int resultCount = statement.executeUpdate(addSql);
    
                if (resultCount == 1)
                {
                    System.out.println("add data success.....");
                }
            }
            catch (SQLException sqlException)
            {
                sqlException.printStackTrace();
            }
    

    6.5、释放资源

    try
            {
                statement.close();
                conn.close();
            }
            catch (SQLException sqlException)
            {
                sqlException.printStackTrace();
            }
    

    遵循先开后关原则,释放所有使用到的资源对象。

  • 相关阅读:
    可扩展多线程异步Socket服务器框架EMTASS 2.0
    认识迅雷界面引擎
    C语言 二维数组(指针)动态分配和释放(转)
    二维数组与双重指针(转)
    VC++6 调用teststand api的方法
    [VC6] 小谈如何解决VC6.0 open崩溃的问题(已解决)(转)
    Linux下C与Mysql的混合编程(转)
    VS2010生成安装包制作步骤 (转)
    SAO总结
    JS OOP编程
  • 原文地址:https://www.cnblogs.com/dcy521/p/14725031.html
Copyright © 2011-2022 走看看