`

Java之JDBC

 
阅读更多

一、JDBC的使用形式

1、JDBC-ODBC桥连接形式:程序—>JDBC—>ODBC—>数据库

这种方式的操作性能很差,但是支持度很高,它是java默认的支持方式,不需要任何的第三方驱动程序进行配置就可以使用

2、JDBC连接形式:程序—>JDBC—>数据库

这种方式的操作性能较第一种方式来说有所改善

3、JDBC网络连接形式:程序—>JDBC连接协议—>数据库

此方法在实际的开发过程中使用的最多

4、JDBC协议连接形式:即:使用特定的数据库生产商提供的协议标准进行数据库的操作,难度较高,一般不太使用

二、JDBC使用的包、接口及类

1、java.sql包

2、DriverManager类

3、接口:Connection、Statement、PreparedStatement、ResultSet

三、数据库操作步骤

1、加载数据库驱动程序(以Oracle为例)

     (1)打开Oracle的两个服务,即监听服务和实例服务,以提供Oracle数据库连接的支持

     (2)①配置数据库驱动程序,数据库驱动程序的路径:数据库安装目录中找到jdbc文件夹/bin/ojdbc6.jar

      相关说明:如果使用的是记事本开发,则需要在系统环境变量ClassPath中加入此驱动程序的路径;

                      如果使用开发工具进行开发,则需要在【Java Build Path】中配置扩展的程序包:右键项目—选择属性—选择Java Build Path—选择libraries—add External jar —将驱动程序的路径复制上去

         ②所有数据库的驱动加载都是容器(java application容器)加载,利用Class.forName(驱动名称)进行加载。Oracle驱动程序类名称:驱动jar包下的Oracle.jdbc.driver.oracleDriver

2、依靠DriverManager类连接数据库

     这个类的构造方法被私有化,使用这个类的静态方法

public static Connection getConnection(String url,
                                       String user,
                                       String password)
                                throws SQLException
url:对于Oracle来说,格式为:jdbc:oracle:thin:@IP地址:端口号:数据库的SID名称(默认情况和数据库名相同)
例如连接mldn数据库:jdbc:oracle:thin:@localhost:1521:mldn
user:用户名
password:用户密码

 这个方法会放回一个Connection接口对象,每一个Connection接口对象都表示一个数据库连接

3、进行数据库的CRUD操作(用到的接口有:Statement、PreparedStatement、ResultSet)

4、关闭数据库連接

 四、具体实现(以下代码均有异常,最好使用try-catch-finally进行处理)

1、获取数据库的连接

//(3)从属性文件中获取数据库连接所需的参数url、user、password、driver
InputStream in = this.getClass().getClassLoader()
			                      .getResourceAsStream("jdbc.properties");
			Properties properties = new Properties();
			properties.load(in);
			String driver = properties.getProperty("driverClass");
			String url = properties.getProperty("url");
			String user = properties.getProperty("user");
			String password = properties.getProperty("password");
  //(2)加载驱动(无驱动会报SQLException:No suitable driver found)
Class.forName(driver);
//(1)通过DriverManager类的静态方法getConnection()方法获取数据库的连接
Connection conn = DriverManager.getConnection(url, user, password);
//System.out.println(conn);

 2、src文件夹下的属性文件jdbc.properties(以oracle为例)

driverClass = oracle.jdbc.driver.OracleDriver
url = jdbc:oracle:thin:@10.131.118.71:1521:orcl
user = orcl //登录数据库的用户名
password = orcl //登录数据库的密码

 3、进行增、删、改操作(使用的接口:statement、PreparedStatement)

(1)使用statement

//获取statement对象
Statement state = conn.createStatement();
//通过sql实现增加一条数据的操作,改、查操作只是sql不同
String sql = "insert into student(id,name,email,birth,age) "
					+ "values(student_sq.nextval,'王五','wangwu@qq.com',to_date('1995-09-09','yyyy/mm/dd'),23)";
//执行sql
state.execute(sql);
//关闭statement
state.close();
//关闭connection
conn.close();

(2)使用 PreparedStatement

//2、sql参数
String sql = "Insert into student(id,name) values(?,?)";
//1、创建PrepareStatement对象
PrepareStatement ps = conn.PrepareStatement(sql);
//3、调用ps的setXxx(index,value)设置占位符?的值
//4、执行ps的executeQuery()或executeUpdate()方法,实现sql的增删改操作,此时不需要传入sql参数


 使用PreparedStatement的好處:

1、可以避免拼寫SQL語句,有利于代码的维护;

2、可以避免SQL的注入,提升了代码的安全性。

4、查询操作

String sql = "select id,name from student ";
ResultSet  rs =  state.executeQuery(sql);

while(rs.next()){
int id = rs.getInt(1);//获得第一列的值
String name= rs.getName(2);//获得第二列的值
。。。
System.out.println(id);
System.out.pringln(name);
。。。
}

 五、ResultSetMetaData类(元数据类)

通过此类可以获取通过sql查询后返回的结果集的一些属性,比如,列数,列的别名等。

//1、创建ResultSetMetaData对象
ResultSetMetaData rsmd =  PrepareStatement.getMetaData();
//2、通过调用此类中的方法获得相应的属性,比如获得结果集中的列数:
int count =  rsmd.getColumnCount();

 六、BeanUtils工具类

通过此类的setProperty(Object,name,value)方法可以给某个对象中的成员变量赋值,可以返回一个对象。

1、在使用BeanUtils工具包之前需要的Jar包有以下几种:

(1)   BeanUtils相关包

commons-beanutils-1.8.3.jar

commons-beanutils-1.8.3-javadoc.jar

commons-beanutils-1.8.3-javadoc.jar

commons-beanutils-bean-collections-1.8.3.jar

commons-beanutils-core-1.8.3.jar

(2)   Logic4j相关包

commons-logging.jar

log4j.jar

 

2、将通过ResultSetMetaData类获得结果集中的一些属性放入一个Map中,然后通过遍历Map,将Map中值通过此工具类可以返回一个对象。

 

 

分享到:
评论

相关推荐

    java之jdbc项目文件

    本项目文件"java之jdbc项目文件"涵盖了使用JDBC进行数据库操作的基本概念和实践应用。下面将详细阐述JDBC的核心知识点。 1. **JDBC API概述**: JDBC是Java平台的一部分,它允许Java应用程序连接到各种类型的...

    Java之JDBC连接MySQL数据库实现增删改查(2018 使用Dao层实现 完美封装解决硬编码问题 使用预编译对象PreparedStatement)

    Java之JDBC连接数据库实现增删改查(2018 使用Dao层实现 完美封装解决硬编码问题 使用预编译对象PreparedStatement) 配置文件 db.properties(保存数据库账号和密码等) 工具类 JDBCUtil.java(抽取公共部分,解决硬...

    Java之JDBC连接数据库实现增删改查(2018 使用Dao层实现 完美封装解决硬编码问题)

    Java之JDBC连接数据库实现增删改查(2018 使用Dao层实现 完美封装解决硬编码问题) 配置文件 db.properties(保存数据库账号和密码等) 工具类 JDBCUtil.java(抽取公共部分,解决硬编码问题) 用户账号实体类 User....

    Java之JDBC连接数据库实现增删改查(2018 使用Dao层实现)

    Java之JDBC连接数据库实现增删改查(2018 使用Dao层实现) 实体类:User.java 接口类:IUserDao.java 实现接口类:UserDaoImpl.java 使用Junit4测试增删改查类:UserDaoTest.java

    java之JDBC原理及方法

    在Java编程中,JDBC(Java Database Connectivity)是Java语言访问数据库的标准,它提供了一组API,使得Java应用程序能够与各种不同的数据库系统进行交互。JDBC不仅定义了接口,还规定了实现这些接口的数据库驱动...

    Java之JDBC连接数据库实现增删改查(2018 使用Dao层实现 完美封装解决硬编码问题).rar

    Java之JDBC连接数据库实现增删改查(2018 使用Dao层实现 完美封装解决硬编码问题) 配置文件 db.properties(保存数据库账号和密码等) 工具类 JDBCUtil.java(抽取公共部分,解决硬编码问题) 用户账号实体类 User....

    java之JDBC详细介绍

    Java JDBC(Java Database Connectivity)是Java平台中用于与数据库交互的一组接口和类,它作为标准API,使得Java程序员能够以统一的方式处理多种数据库。在Java应用中,JDBC提供了与数据库连接、发送SQL语句、处理...

    jdbc.zip_java jdbc_java+jdbc_jdbc_jdbc Java_zip

    Java JDBC(Java Database Connectivity)是Java编程语言中用于与各种关系数据库进行交互的一组接口和类。它作为标准API,允许开发人员通过编写Java代码来访问和操作数据库,无需了解数据库特定的SQL语法或者驱动...

    java jdbc 需要包

    Java JDBC(Java Database Connectivity)是Java编程语言中用于与各种数据库进行交互的一组接口和类。它提供了一种标准化的方法,让程序员可以使用SQL语句访问数据库,而无需关心具体的数据库实现细节。在Java应用...

    Java使用Jdbc连接Oracle执行简单查询操作示例

    Java使用Jdbc连接Oracle执行简单查询操作示例 Java使用Jdbc连接Oracle执行简单查询操作,是指使用Java语言通过Jdbc(Java Database Connectivity)连接Oracle数据库并执行简单查询操作的过程。本文将通过实例形式...

    JAVA Oracle_JDBC

    JDBC(Java Data Base Connectivity,java数据库连接)是一种用于执行SQL语句的Java API,可以为多种关系数据库提供统一访问,它由一组用Java语言编写的类和接口组成。

    JAVA使用JDBC进行insert操作添加信息到数据库

    JAVA 使用 JDBC 进行 insert 操作添加信息到数据库 一、 JDBC 概述 JDBC(Java Database Connectivity)是一种 Java 应用程序用来与数据库进行交互的 API。它提供了一组标准的接口,允许 Java 应用程序与各种...

    java通过jdbc连接impala所需jar

    Java通过JDBC连接Impala是将Java应用程序与大数据分析平台Impala进行交互的一种常见方法。在Java编程中,JDBC(Java Database Connectivity)是用于访问数据库的标准API,它允许Java程序与各种数据库进行通信,包括...

    Java JDBC学生数据管理系统

    Java JDBC学生数据管理系统是一个利用Java编程语言和JDBC(Java Database Connectivity)技术设计的应用,用于高效管理和操作学生数据。这个系统提供了用户友好的界面,使得用户可以方便地执行SQL(Structured Query...

    java使用jdbc将数据库数据导出到csv文件.pdf

    Java 是一种广泛使用的编程语言,它提供了多种方式来处理数据库数据,而 JDBC(Java Database Connectivity)是 Java 中连接数据库的标准 API 之一。将数据库数据导出到 CSV 文件是一种常见的数据交换格式,它可以被...

    Java实现JDBC连接

    使用java的JDBC进行 sql的连接

    java -JDBC_Driver 驱动包

    Java JDBC(Java Database Connectivity)驱动包是Java编程语言与各种数据库进行交互的一种标准接口。它允许Java应用程序连接到关系数据库,执行SQL语句,并获取结果。在这个“java - JDBC_Driver”驱动包中,包含了...

    基于java+jdbc+mysql图书馆系统.zip

    图书馆系统,大一Java课程设计,swing界面,使用JDBC进行基本数据库操作。 图书馆系统,大一Java课程设计,swing界面,使用JDBC进行基本数据库操作。 图书馆系统,大一Java课程设计,swing界面,使用JDBC进行基本...

    Java ORACLE JDBC 驱动

    Java ORACLE JDBC驱动是Java应用程序用来与Oracle数据库进行交互的重要组件。JDBC(Java Database Connectivity)是Java平台的标准API,允许Java程序通过网络与各种类型的数据库进行通信。Oracle JDBC驱动则是Oracle...

Global site tag (gtag.js) - Google Analytics