JDBC

一、JDBC 简介

      SUN 公司为了简化、统一数据库的操作,定义了一套 Java 操作数据库的规范,称之为 JDBC。JDBC 是一套接口,并不能真正操作数据库,而各个数据库的驱动是 JDBC 的实现,用来对数据库的操作。

 

 

         JDBC 全称:Java Data Base Connectivity(Java 数据库连接),组成 JDBC 的两个包 java.sql、javax.sql。开发 JDBC 应用需要以上两个包的支持外,还需要导入相应的JDBC 的数据库实现(数据库驱动)。

 

二、使用 JDBC

       1、加载驱动

                 DriverManager.registerDriver(new com.MySQL.jdbc.Driver());

 

        2、获取连接

                 String url = "jdbc:mysql://localhost:3306/mydb";

              String user = "root";

              String password = "root";

              Connection con = DriverManager.getConnection(url, user, password);

 

         3、获取向数据库发送 sql 语句的Statement 对象

                  Statement st = con.createStatement();

 

         4、向数据库发送 sql 语句

               String sql = "select * from account";

               ResultSet rs = st.executeQuery(sql);

 

         5、处理结果

                  while(rs.next()){

                     rs.getObject("name");

                     .......

               }

 

          6、释放资源

               rs.close();

               st.close();

               con.close();

 

三、DriverManager

      1、在实际开发中,我们不会使用通常不会使用上面的方法来注册驱动,原因有两个。第一,如果我们使用DriverManager.registerDriver 会导致在 DriverManager 中注册了两个 Driver 对象。查看 mysql 源码发现,当我们使用 new com.mysql.jdbc.Driver() 的时候,在 Driver 类中有一个静态代码块,在静态代码块中执行了将自己注册到 DriverManager 中的操作,之后我们在使用DriverManager.registerDriver 时,等于在内存中加载了两个 Driver。第二,我们在加载驱动的时候,已经将 mysql 的驱动写死在了程序中,导致我们这个程序在开发完以后不能更改数据库,只能使用 mysql。基于这两个原因,我们一般不会使用 DriverMagnaer.register 来注册驱动。

       2、使用 Class.forName(driver) 来加载驱动,如果使用这种方式,那么在内存中只有一份驱动的字节码文件,并且要加载的驱动名 driver 我们可以写在配置文件中,更改配置文件我们就可以更改数据库。

       3、数据库 URL

            jdbc:mysql://localhost:3306/account?参数名:参数值(可以跟用户名、密码、字符编码。。)

               |           |           |          |          |

            协议    子协议     主机      端口     数据库

               jdbc:mysql///account(简写,默认连接本机3306)

            Oralce:jdbc:oralce:this:@localhost:1521:account

 

四、Connection

      它用于代表数据库的连接,Connection 是数据库编程中最重要的一个对象,客户端与数据库所有交互都是通过 Connection 对象完成的。

        createStatement()  创建数据库发送 sql 的 statement 对象

        preparedStatement(sql) 创建向数据库发送预编译 sql 的 preparedStatement 对象

        prpareCall(sql)  创建执行存储过程的 callableStatement 对象

        setAutoCommit(boolean autoCommit) 设置事务是否自动提交

        commit() 在连接上提交事务

        rollback() 在连接上回滚事务

 

五、Statement

        用于向数据库发送 sql 语句

        executeQuery(String sql)  用于向数据库发送查询语句

        executeUpdate(String sql)  用于向数据库发送更新语句 insert、update、delete

        execute(String sql)  用于向数据库发送任意 sql 语句(在未知将要进行什么操作时使用)

        addBatch(String sql)  把多条 sql 语句放到一个批处理中

        executeBatch()  向数据库发送一批 sql 语句执行。

 

六、ResultSet

        用于代表 sql 语句的执行结果。ResultSet 封装执行结果时,采用的是类似于表格的方式,ResultSet 对象中维护了一个指向表格数据行的游标,初始的时候游标位于结果集的第一行之前,调用 next() 方法可以使游标指向具体的数据行,进而调用方法获取该行的数据。在 RestultSet 获取数据的时候应该对应数据类型来获取,这样方便对 Bean 的封装。

          next()  移动到下一行

        previous() 移动到前一行

        absolute(int row)  移动到指定行

        beforeFirst()  移动到 ResultSet 的最前面

        afterLast()  移动到 ResultSet 的最后面

 

七、释放资源

       JDBC 程序运行完以后,切记要释放程序在运行过程中创建的那些与数据库进行交互的对象。特别是 Connection 对象,是非常稀有的资源,用完后要马上释放,如果 Connection 不能及时正确的关闭,极易导致系统的宕机。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
使用 JavaScript 编写的记忆游戏(附源代码)   项目:JavaScript 记忆游戏(附源代码) 记忆检查游戏是一个使用 HTML5、CSS 和 JavaScript 开发的简单项目。这个游戏是关于测试你的短期 记忆技能。玩这个游戏 时,一系列图像会出现在一个盒子形状的区域中 。玩家必须找到两个相同的图像并单击它们以使它们消失。 如何运行游戏? 记忆游戏项目仅包含 HTML、CSS 和 JavaScript。谈到此游戏的功能,用户必须单击两个相同的图像才能使它们消失。 点击卡片或按下键盘键,通过 2 乘 2 旋转来重建鸟儿对,并发现隐藏在下面的图像! 如果翻开的牌面相同(一对),您就赢了,并且该对牌将从游戏中消失! 否则,卡片会自动翻面朝下,您需要重新尝试! 该游戏包含大量的 javascript 以确保游戏正常运行。 如何运行该项目? 要运行此游戏,您不需要任何类型的本地服务器,但需要浏览器。我们建议您使用现代浏览器,如 Google Chrome 和 Mozilla Firefox, 以获得更好、更优化的游戏体验。要玩游戏,首先,通过单击 memorygame-index.html 文件在浏览器中打开游戏。 演示: 该项目为国外大神项目,可以作为毕业设计的项目,也可以作为大作业项目,不用担心代码重复,设计重复等,如果需要对项目进行修改,需要具备一定基础知识。 注意:如果装有360等杀毒软件,可能会出现误报的情况,源码本身并无病毒,使用源码时可以关闭360,或者添加信任。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值