JDBC
第一部分:JDBC的介绍
JDBC(java database connectivity):即Java数据库连接,它是sun公司为Java连接关系型数据库所提供的统一接口。它的实现类是由数据库生产厂商提供的。数据库生产厂商提供的JDBC的实现类叫做驱动。
因此,在开发JDBC中,首先要将驱动导入工程中。
第二部分:JDBC的开发步骤
2.1JDBC的核心类
1.DriverManager:数据库驱动管理类,用于获取数据库连接对象。
代码:Class.forname("com.mysql.jdbc.Driver");
注:JDBC规范提供了驱动接口:java.sql.Driver
mysql驱动包提供实现类:com.mysql.jdbc.Driver
2.Connection:数据库连接对象,主要用于获取SQL执行对象。
代码:Connection con = DriverManger.getConnection(url,用户名,密码);
注:url:使用jdbc协议,提供数据库连接的具体位置。该协议由三部分组成,第一部分是jdbc,这是固定的;第二部分是数据库软件的名称;第三部分是Ip地址,端口号,以及要连接的数据库的名称。
--->jdbc:mysql://localhost:3306/mydb;
3.Statement:sql执行对象,主要用于向数据库发送sql语句,让数据库执行该语句。
4.Result:查询结果集对象,只有使用了查询才会产生该对象。
2.2JDBC开发的步骤
1.注册驱动:主要是让JVM知道使用哪个驱动。
2.获取数据库连接:主要是获取connection对象,如果能够获取该对象,则说明数据库连接成功。
3.获取SQL语句的执行者对象:主要是获取statement对象,该对象主要用于执行SQL语句。
注:常用的statement对象的执行方法:
1.executeUpdate(sql语句):该方法主要执行insert,update,delete的语句
2.executeQuery(sql语句):该方法主要用于执行查询的语句。
4.执行SQL语句:编写SQL语句,调用statement对象的相关方法来执行该语句。
5.处理结果
6.释放资源
注:在释放资源时,要注意先获取的对象要后关闭,后获取的对象要先关闭。
第三部分:JDBC的小案例
该案例实现:通过JDBC实现数据的插入
1.首先,在mysql数据库中创建一张表
create table new_user_table(
uid int primary key auto_increment,
uname varchar(20) not null,
uage int
);
2.在eclipse中新建一个Java工程,并且将mysql的驱动导入该工程中
代码如下:
> package cn.wgy.JDBC; import java.sql.Connection; import
> java.sql.DriverManager; import java.sql.PreparedStatement; import
> java.sql.SQLException; import java.sql.Statement; import
> org.junit.Test; public class TestInsert {
> @Test public void testInsert() throws Exception { insertData1(); } public void insertData1() throws
> ClassNotFoundException,SQLException{
> Class.forName("com.mysql.jdbc.Driver");
> con=
> DriverManager.getConnection("jdbc:mysql://localhost:3306/mydatabase",
> "root", "123");
> con.prepareStatement("insert into new_user_table values(?,?,?)");
>
> pstmt.setInt(3, 19);
> if(pstmt!=null) pstmt.close(); if(con!=null) con.close(); if(i>0){ System.out.println("插入成功"); }else{
> System.out.println("插入失败"); }
> } public void insertData() throws ClassNotFoundException,SQLException{
> Class.forName("com.mysql.jdbc.Driver");
> con =
> DriverManager.getConnection("jdbc:mysql://localhost:3306/mydatabase",
> "root", "123");
> con.createStatement();
>
> int i =stmt.executeUpdate(SQL);
> if(stmt!=null){ stmt.close(); } if(con!=null){ con.close(); }
> if(i > 0){ System.out.println("插入数据成功"); }else{ System.out.println("插入数据失败"); }
> } }