JavaWeb-(JDBC编程)   发布时间:2017-09-12 15:29:51

JavaWeb-(JDBC编程) JDBC编程 一、JDBC简介

数据库驱动:SUN公司为了简化、统一对数据库的操作,定义了一套Java操作数据库的规范,称之为JDBC。

JDBC全称为:Java Data Base Connectivity(java数据库连接),它主要由接口组成。

组成JDBC的2个包:

java.sql javax.sql

开发JDBC应用需要以上2个包的支持外,还需要导入相应JDBC的数据库实现(即数据库驱动)。

二、第一个JDBC程序

演示JDBC的项目:

1、把数据库的驱动加入到classpath中

2、开发步骤:

开发步骤:(必须记住的) (1、注册驱动 (2、获取与数据库的链接 (3、得到代表发送和执行SQL语句的对象 Statement (4、执行语句 (5、如果执行的是查询语句,就会有结果集,处理 (6、释放占用的资源

3、具体代码

Test01.java

package com.itheima.test; import java.sql.Connection; import java.sql.DriverManager; import java.sql.ResultSet; import java.sql.Statement; /** create table user( id int primary key auto_increment, username varchar(20), password varchar(30), email varchar(100), birthday date ); * @author wangli * */ public class Test01 { public static void main(String[] args) { try { //1.注册驱动 DriverManager.registerDriver(new com.mysql.jdbc.Driver()); //2.建立连接 Connection con = DriverManager.getConnection(jdbc:mysql://localhost:3306/day14, root, yw2633275); //3.获取用于发送和执行SQL语句的对象 Statement Statement st = con.createStatement(); //4.执行语句CRUD //4.1添加记录 st.executeUpdate(insert into user(username,password,email,birthday) values('cgx','123','jywyou@163.com','1980-10-1')); //4.2更新 //st.executeUpdate(update user set username='aj' where id=1); //4.3删除 //st.executeUpdate(delete from user where id=1); ResultSet rs = st.executeQuery(select * from user); //5.如果是查询,要处理结果集 while(rs.next()){ System.out.println(rs.getObject(1)+ +rs.getObject(2)+ +rs.getObject(3)+ +rs.getObject(4)+ +rs.getObject(5)); } //6.关闭资源 rs.close(); st.close(); con.close(); } catch (Exception e) { e.printStackTrace(); } } }

3.1、程序详解:DriverManager

作用:a、注册驱动b、获取与数据库的链接

Jdbc程序中的DriverManager用于加载驱动,并创建与数据库的链接,这个API的常用方法:

DriverManager.registerDriver(new Driver()) DriverManager.getConnection(url, user, password),

注意:在实际开发中并不推荐采用registerDriver方法注册驱动。原因有二:

a、查看Driver的源代码可以看到,如果采用此种方式,会导致驱动程序注册两次,也就是在内存中会有两个Driver对象。 b、程序依赖mysql的api,脱离mysql的jar包,程序将无法编译,将来程序切换底层数据库将会非常麻烦。

改进注册驱动:(不能依赖具体的数据库驱动)

推荐方式:Class.forName(“com.mysql.jdbc.Driver”); 采用此种方式不会导致驱动对象在内存中重复出现,并且采用此种方式,程序仅仅只需要一个字符串,不需要依赖具体的驱动,使程序的灵活性更高。 同样,在开发中也不建议采用具体的驱动类型指向getConnection方法返回的connection对象。

获取与数据库的链接的三种方式:

方式一:(推荐)

DriverManager.getConnection(jdbc:mysql://localhost:3306/day17, root, sorry); jdbc:mysql://localhost:3306/day17 :SUN和数据库厂商定义的协议,具体的参考数据库的文档。 jdbc:mysql:///day17 (链接本机的默认端口3306)= jdbc:mysql://localhost:3306/day17

方式二:

方式三:

3.2、程序详解:数据库URL

URL用于标识数据库的位置,程序员通过URL地址告诉JDBC程序连接哪个数据库,URL的写法为:jdbc:mysql:[]//localhost:3306/test ?参数名=参数值

3.3、程序详解—Connection

createStatement():创建向数据库发送sql的statement对象。 prepareStatement(sql) :创建向数据库发送预编译sql的PrepareSatement对象。

3.4、程序详解—Statement

Jdbc程序中的Statement对象用于向数据库发送SQL语句, Statement对象常用方法: executeQuery(String?sql) :用于向数据发送查询语句。 executeUpdate(String?sql):用于向数据库发送insert、update或delete语句 execute(String sql):用于向数据库发送任意sql语句

3.5、程序详解—ResultSet

Jdbc程序中的ResultSet用于代表Sql语句的执行结果。Resultset封装执行结果时,采用的类似于表格的方式。ResultSet 对象维护了一个指向表格数据行的游标,初始的时候,游标在第一行之前,调用ResultSet.next() 方法,可以使游标指向具体的数据行,进行调用方法获取该行的数据。 ResultSet既然用于封装执行结果的,所以该对象提供的都是用于获取数据的get方法: 获取任意类型的数据 getObject(int index) getObject(string columnName) 获取指定类型的数据,(封装数据时方便)例如: getString(int index) getString(String columnName)

常用数据类型转换表

企业建站2800元起,携手武汉肥猫科技,做一个有见地的颜值派!更多优惠请戳:黄冈网站建设 http://huanggang.45qun.com