1、Java通过JDBC连接数据库的方法和实例演示什么是JDBC?JDBC(Java Data Base Connectivity,java数据库连接)是一种用于执行SQL语句的Java API,可以为多种关系数据库提供统一访问,它由一组用Java语言编写的类和接口组成。JDBC提供了一种基准,据此可以构建更高级的工具和接口,使数据库开发人员能够编写数据库应用程序。JDBC操作不同的数据库仅仅是连接方式上的差异而已。这样,Java编写的程序就不依赖于具体的数据库。在JDBC中,所有的类和接口都保存在java.sql包中。在此包中,规定了大量的接口 JDBC实际上是一个标准,数据库生产商,只要是想支
2、持Java,肯定要符合JDBC规范什么是JDBC?在数据库编程中,以SQL语句作为操作标准 程序经常使用JDBC做以下操作:#与一个数据库建立连接#向已连接的数据库发送SQL语句#处理SQL语句返回的结果连接数据库的两种方式 方式一:建立JDBC-ODBC桥接器 方式二:加载纯Java数据库驱动程序程序数据库JDBC 如果要使用数据库就要添加数据库的驱动,不同的数据库有不用的驱动,这里就不一一说明。驱动程序是需要单独配置的,往往是以一组jar包的形式出现;也就是说,我们要进行相关的开发,就要引入jar包。配置classpath。添加jar程序驱动包的方法导入jar包的方法 在使用JDBC编程时
3、需要连接数据库,导入JAR包是必须的,导入其它的jar包方法同样如此,导入的方法是:打开eclipse 1.右击要导入jar包的项目,点properties 2.左边选择java build path,右边选择libraries 3.选择add External jars 4.选择jar包 确定后就行了。先把先把jar包放在项目的目录下,包放在项目的目录下,通过添加通过添加jar包,是使用相对地址的,包,是使用相对地址的,这样把项目复制到其它电脑也可以用这样把项目复制到其它电脑也可以用导入外部的导入外部的jar包,是绝对地址,包,是绝对地址,如果项目要复制到其它电脑又要重新导入如果项目要复制到
4、其它电脑又要重新导入数据库的操作过程 打开数据库的服务 连接数据库,一般需要用户名,密码 操作数据库:创建表,查询表,增删改等操作 关闭数据库JDBC的主要操作类及接口 描述:用于管理JDBC驱动程序 是一个最常用的类,使用它可以获得一个数据库的连接public static Connection getConnection(String url)throws SQLExceptionpublic static Connection getConnection(String url,String user,String password)throws SQLException 描述:用于建立与
5、特定数据库的连接,一个连接就是一个会话,建立连接之后便可以执行SQL语句和获得检索结果 每一个Connection的实例化对象都表示一个数据库的连接JDBC的主要操作类及接口 描述:一个Statement对象用于执行静态SQL语句,并获得语句执行之后产生的结果 用在数据库的操作中 描述:创建一个可以编译的SQL语句对象,该对象可以被多次运行,以提高执行的效率。该接口是Statement接口的子接口 用在数据库的操作中 描述:用于执行SQL存储过程JDBC的主要操作类及接口 描述:用于创建表示SQL语句检索结果的结果集。用户通过结果集完成对数据库的访问 描述:是java.util.Date的一个
6、子集,用于表示与SQLDATE相同的日期类型。不包括时间。java.sql.TimeStemp 用于表示SQL时间戳,并增加了一个能表示纳秒的时间域例子 import java.sql.DriverManager;import java.sql.ResultSet;import java.sql.SQLException;import java.sql.Connection;import java.sql.Statement;public class MysqlDemo public static void main(String args)throws Exception Connectio
7、n conn=null;String sql;/MySQL的JDBC URL编写方式:jdbc:mysql:/主机名称:连接端口/数据库的名称?参数=值/避免中文乱码要指定useUnicode和characterEncoding/执行数据库操作之前要在数据库管理系统上创建一个数据库,名字自己定,/下面语句之前就要先创建javademo数据库 String url=jdbc:mysql:/localhost:3306/javademo?+user=root&password=root&useUnicode=true&characterEncoding=UTF8;try/之所以要使用下面这条语句,
8、是因为要使用MySQL的驱动,所以我们要把它驱动起来,/可以通过Class.forName把它加载进去,也可以通过初始化来驱动起来,下面三种形式都可以 Class.forName(com.mysql.jdbc.Driver);/动态加载mysql驱动/or:/com.mysql.jdbc.Driver driver=new com.mysql.jdbc.Driver();/or:/new com.mysql.jdbc.Driver();System.out.println(成功加载MySQL驱动程序);/一个Connection代表一个数据库连接 conn=DriverManager.getC
9、onnection(url);/Statement里面带有很多方法,比如executeUpdate可以实现插入,更新和删除等 Statement stmt=conn.createStatement();sql=create table student(NO char(20),name varchar(20),primary key(NO);int result=stmt.executeUpdate(sql);/executeUpdate语句会返回一个受影响的行数,如果返回-1就没有成功 if(result!=-1)System.out.println(创建数据表成功);sql=insert i
10、nto student(NO,name)values(2012001,陶伟基);result=stmt.executeUpdate(sql);sql=insert into student(NO,name)values(2012002,周小俊);result=stmt.executeUpdate(sql);sql=select*from student;ResultSet rs=stmt.executeQuery(sql);/executeQuery会返回结果的集合,否则返回空值 System.out.println(学号t姓名);while(rs.next()System.out .println(rs.getString(1)+t+rs.getString(2);/入如果返回的是int类型可以用getInt()catch(SQLException e)System.out.println(MySQL操作错误);System.out.println(MySQL操作错误);e.printStackTrace();catch(Exception e)e.printStackTrace();finally conn.close();