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程序驱动包的方法在这里:http:/ 2
3、.左边选择java build path,右边选择libraries 3.选择add External jars 4.选择jar包确定后就行了。,先把jar包放在项目的目录下,通过添加jar包,是使用相对地址的,这样把项目复制到其它电脑也可以用,导入外部的jar包,是绝对地址,如果项目要复制到其它电脑又要重新导入,数据库的操作过程,打开数据库的服务连接数据库,一般需要用户名,密码操作数据库:创建表,查询表,增删改等操作关闭数据库,JDBC的主要操作类及接口,java.sql.DriverManager描述:用于管理JDBC驱动程序是一个最常用的类,使用它可以获得一个数据库的连接public s
4、tatic Connection getConnection(String url)throws SQLExceptionpublic static Connection getConnection(String url,String user,String password)throws SQLExceptionjava.sql.Connection描述:用于建立与特定数据库的连接,一个连接就是一个会话,建立连接之后便可以执行SQL语句和获得检索结果每一个Connection的实例化对象都表示一个数据库的连接,JDBC的主要操作类及接口,java.sql.Statement描述:一个Stat
5、ement对象用于执行静态SQL语句,并获得语句执行之后产生的结果用在数据库的操作中java.sql.PreparedStatement描述:创建一个可以编译的SQL语句对象,该对象可以被多次运行,以提高执行的效率。该接口是Statement接口的子接口用在数据库的操作中java.sql.CallableStatement描述:用于执行SQL存储过程,JDBC的主要操作类及接口,java.sql.ResultSet描述:用于创建表示SQL语句检索结果的结果集。用户通过结果集完成对数据库的访问java.sql.Date描述:是java.util.Date的一个子集,用于表示与SQLDATE相同的
6、日期类型。不包括时间。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 Connection conn = null;
7、String sql;/ MySQL的JDBC URL编写方式:jdbc:mysql:/主机名称:连接端口/数据库的名称?参数=值/ 避免中文乱码要指定useUnicode和characterEncoding/ 执行数据库操作之前要在数据库管理系统上创建一个数据库,名字自己定,/ 下面语句之前就要先创建javademo数据库 String url = jdbc:mysql:/localhost:3306/javademo? + user=root,try / 之所以要使用下面这条语句,是因为要使用MySQL的驱动,所以我们要把它驱动起来,/ 可以通过Class.forName把它加载进去,也可
8、以通过初始化来驱动起来,下面三种形式都可以 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.getConnection(url);/ Statement里面带有很多方法,比如execut
9、eUpdate可以实现插入,更新和删除等 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 into student(NO,name) valu
10、es(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(); ,