新手学JAVA(八)----走进JDBC
来源:互联网 发布:vb.net get set 编辑:程序博客网 时间:2024/09/21 06:37
[+]
- 什么是JDBC
- 为什么要用JDBC
- 怎么用JDBC
什么是JDBC?
JDBC(Java Data Base Connectivity, Java 数据库连接)是一种用于执行SQL语句的JavaAPI,可以为多种关系数据库提供统一访问。简单地说,JDBC 可做三件事:与数据库建立连接、发送 SQL 语句并处理结果。
为什么要用JDBC?
在没有JDBC之前,应用程序可以通过数据库厂商提供的API及SQL语句对数据库进行操作,如下图:
有了JDBC,向各种关系数据发送SQL语句就是一件很容易的事,换言之,有了JDBC API,就不必为方位MySQL数据库专门写一个程序,为访问Oracle数据库又专门写一个程序,或为访问SQLServer数据库又编写另一个程序,等等,程序员只需用JDBC API 写一个程序就够了,它可想相应的数据库发送SQL调用,同时将JAVA语言和JDBC结合起来使程序员不必为不同的平台编写不同的应用程序,只需写一遍程序就可以让它在任何平台上运行。如下图:
怎么用JDBC?
JDBC的主要功能如下:
- 建立与数据库或其他数据源的连接
- 向数据库发送SQL命令
- 处理数据库的返回结果
下面通过一个例子来演示Java数据库一个用程序反问数据库的全过程。
<code class="hljs java has-numbering"><span class="hljs-keyword">import</span> java.sql.*; <span class="hljs-comment">//导入包</span><span class="hljs-keyword">import</span> java.sql.Connection;<span class="hljs-keyword">import</span> java.sql.DriverManager;<span class="hljs-keyword">public</span> <span class="hljs-class"><span class="hljs-keyword">class</span> <span class="hljs-title">JDBCMain</span> {</span> <span class="hljs-comment">// 数据库的链接</span> <span class="hljs-keyword">private</span> Connection con = <span class="hljs-keyword">null</span>; <span class="hljs-keyword">private</span> Statement st = <span class="hljs-keyword">null</span>; <span class="hljs-comment">// 执行SQL语句的对象</span> <span class="hljs-keyword">private</span> ResultSet rs = <span class="hljs-keyword">null</span>; <span class="hljs-comment">// 结果集对象</span> <span class="hljs-keyword">public</span> <span class="hljs-title">JDBCMain</span>() { <span class="hljs-comment">// 桥连接</span> <span class="hljs-keyword">try</span> { <span class="hljs-comment">// 声明驱动程序</span> String driver = <span class="hljs-string">"com.microsoft.sqlserver.jdbc.SQLServerDriver"</span>; <span class="hljs-comment">// users就是数据源的名称</span> String ds = <span class="hljs-string">"jdbc:sqlserver://localhost:1433;databaseName=JavaSpecial"</span>; <span class="hljs-comment">// 数据源的登录名</span> String user = <span class="hljs-string">"sa"</span>; <span class="hljs-comment">// 数据源的密码</span> String password = <span class="hljs-string">"123456"</span>; <span class="hljs-comment">// 链接数据库</span> Class.forName(driver); <span class="hljs-comment">// 加载数据库的驱动程序</span> con = DriverManager.getConnection(ds, user, password); <span class="hljs-keyword">if</span> (con != <span class="hljs-keyword">null</span>) { System.out.println(<span class="hljs-string">"数据库链接成功!"</span>); } } <span class="hljs-keyword">catch</span> (Exception e) { System.out.println(<span class="hljs-string">"数据库连接失败!"</span> + e.toString()); } } <span class="hljs-javadoc">/** * 普通查询 *<span class="hljs-javadoctag"> @param</span> sqlQuery */</span> <span class="hljs-keyword">public</span> <span class="hljs-keyword">void</span> <span class="hljs-title">query</span>(String sqlQuery) { <span class="hljs-keyword">try</span> { <span class="hljs-comment">// Connection con = null;</span> Statement st = con.createStatement(); <span class="hljs-comment">// 得到Statement的实例</span> ResultSet rs = st.executeQuery(sqlQuery); <span class="hljs-comment">// 执行SQL语句,返回结果集</span> <span class="hljs-comment">// 当返回的结果集不为空是,并且还有记录时</span> <span class="hljs-keyword">while</span> (rs != <span class="hljs-keyword">null</span> && rs.next()) { <span class="hljs-keyword">int</span> stu_num = rs.getInt(<span class="hljs-number">1</span>); <span class="hljs-comment">// 获得当前记录的第1个字段的值</span> String name = rs.getString(<span class="hljs-string">"name"</span>); <span class="hljs-comment">// 获得当前记录中"name"字段的值</span> <span class="hljs-keyword">int</span> age = rs.getInt(<span class="hljs-string">"age"</span>); <span class="hljs-comment">// 获得当前记录中"age"字段的值</span> <span class="hljs-keyword">int</span> math = rs.getInt(<span class="hljs-string">"math"</span>); <span class="hljs-comment">// 获得当前记录中"math"字段的值</span> <span class="hljs-keyword">int</span> english = rs.getInt(<span class="hljs-string">"english"</span>); <span class="hljs-comment">// 获得当前记录中"english"字段的值</span> System.out.println(<span class="hljs-string">"学号="</span> + stu_num + <span class="hljs-string">"\t 姓名="</span> + name + <span class="hljs-string">"\t 年龄="</span> + age + <span class="hljs-string">"\t 数学成绩="</span> + math + <span class="hljs-string">"\t 英语成绩="</span> + english); } } <span class="hljs-keyword">catch</span> (Exception e) { <span class="hljs-comment">// 抛出异常</span> System.out.println(<span class="hljs-string">"查询数据时出错"</span> + e.toString()); } } <span class="hljs-javadoc">/** * /添加,删除,更新 */</span> <span class="hljs-keyword">public</span> <span class="hljs-keyword">void</span> <span class="hljs-title">add_update_Del</span>(String sql) { <span class="hljs-keyword">try</span> { Statement st = con.createStatement(); <span class="hljs-comment">// 生成Statement对象</span> <span class="hljs-keyword">int</span> x = st.executeUpdate(sql); <span class="hljs-comment">// 执行操作</span> System.out.println(<span class="hljs-string">"操作成功"</span> + x); } <span class="hljs-keyword">catch</span> (Exception e) { System.out.println(<span class="hljs-string">"数据修改时有误"</span> + e.toString()); } } <span class="hljs-comment">// 主程序</span> <span class="hljs-keyword">public</span> <span class="hljs-keyword">static</span> <span class="hljs-keyword">void</span> <span class="hljs-title">main</span>(String[] args) { JDBCMain jc = <span class="hljs-keyword">new</span> JDBCMain(); <span class="hljs-comment">// 查询</span> String name = <span class="hljs-string">"张三"</span>; String sqlQuery = <span class="hljs-string">"select * from stu_info where name='"</span> + name + <span class="hljs-string">"'"</span>; jc.query(sqlQuery); <span class="hljs-comment">//添加</span> String sqlAdd =<span class="hljs-string">"insert into stu_info values(7,'令仔',17,89,84)"</span>; jc.add_update_Del(sqlAdd); <span class="hljs-comment">//更改</span> String sqlUpdate =<span class="hljs-string">"update stu_info set math =95 where name ='张三'"</span>; jc.add_update_Del(sqlUpdate); <span class="hljs-comment">//删除</span> String sqlDelete =<span class="hljs-string">"delete from stu_info where name='张三'"</span>; jc.add_update_Del(sqlDelete); }}</code>
下面是源代码下载的链接:JDBC数据库连接测试
0 0
- 新手学JAVA(八)----走进JDBC
- 新手学JAVA(八)----走进JDBC
- 初学者学Java(八)
- 初学者学Java(八)
- 新手学Linux(八)----MySql安装(Centos7)
- 新手学EasyUI(八)----SubGrid三级嵌套
- 新手学JAVA(三)----StringBuilder类
- 新手如何学java
- 从零开始学java(八)流程控制
- 新手学JAVA(五)----深入剖析JAVA拆装箱
- 新手学java 问题求教!!
- 新手学JAVA该如何学
- JDBC(八)
- 新手学Java 7编程(第5版)
- 新手学JAVA(四)----装箱与拆箱
- 新手学JAVA(六)----处理随机性的数据
- 新手学JAVA(七)----Override VS Overload
- 新手学JAVA(九)----Model1 And Model2
- Servlet生命周期探寻
- 继承
- Java文件 File练习-建立一个java文件列表文件
- android:ellipsize的使用
- python的类变量和成员变量用法
- 新手学JAVA(八)----走进JDBC
- Dynamic Partial Reconfiguration 2 DPR Modular Generation
- 常用的设计模式
- 原创实用代码(二)
- linux下qt的安装
- Redis 压缩列表
- 计算机等级考试四级计算机网络(操作系统部分)
- HTTP协议是无状态协议,怎么理解
- 用java语言怎么写hdu题目之next()与nextLine()的区别