`
k_lb
  • 浏览: 843650 次
  • 性别: Icon_minigender_1
  • 来自: 郑州
社区版块
存档分类
最新评论
  • kitleer: 据我所知,国内有款ETL调度监控工具TaskCTL,支持ket ...
    kettle调度

JAVA JDBC

 
阅读更多

JDBC, Java Database Connecive, Java 数据库连接,是一组专门负责连接并操作数据库的标准,在整个JDBC 中实际上大量的提供的是接口。针对于各个不同的数据库生产商 ,只要想使用JAVA 进行数据库的开发,则对这些标准有所支持。

JDBC 在使用中常见的有以下三类:

JDBC-ODBC 桥连接:是SUN 在JDK的开发包中提供的最标准的一套JDBC 操作类库,使用的时候将JDBC-ODB-数据库,中间要经过一个ODBC 的连接,那么就意味着整体的性能将会降低,所以在开发中是绝对不会去使用JDBC-ODBC的连接方式的。

JDBC 连接,使用各个数据库提供商给定的数据库驱动程序,完成JDBC的开发,使用的时候需要在classpath中配置数据库的驱动程序

JDBC 网络连接:主要使用通过网络连接数据库


JDBC 的操作步骤

在进行JDBC 操作的时候可以按照以下的步骤完成:

1、加载数据库驱动程序,加载的时候需要将驱动程序配置到classpath之中

2、连接数据库,通过Connection 接口和 DriverManager 类完成

3、操作数据库,通过Statement、PreparedStatement、ResultSet 三个接口完成

4、关闭数据库,在实际开发中数据库资源非常有限,操作完之后必须关闭


数据库连接操作

在JDBC 的操作中,如果要想进行数据库的连接,则必须按照以上的几步完成

1、通过Class.forName()加载数据库的驱动程序

2、通过DriverManager 类进行数据库的连接,连接的时候要输入数据库的连接地址、用户名、密码

3、通过Connection 接口接收连接


package org.connectiondemo;

import java.sql.Connection;
import java.sql.DriverManager;

public class ConnectionJDBC {

	/**
	 * @param args
	 */
	//驱动程序就是之前在classpath中配置的JDBC的驱动程序的JAR 包中
	public static final String DBDRIVER = "com.mysql.jdbc.Driver";
	//连接地址是由各个数据库生产商单独提供的,所以需要单独记住
	public static final String DBURL = "jdbc:mysql://localhost:3306/test";
	//连接数据库的用户名
	public static final String DBUSER = "root";
	//连接数据库的密码
	public static final String DBPASS = "";
	
	
	public static void main(String[] args) throws Exception {
		Connection con = null; //表示数据库的连接对象
		Class.forName(DBDRIVER); //1、使用CLASS 类加载驱动程序
		con = DriverManager.getConnection(DBURL,DBUSER,DBPASS); //2、连接数据库
		System.out.println(con);
		con.close(); // 3、关闭数据库
	}

}


数据库更新操作


如果要想执行数据库的更新操作,则可以使用Statement接口,数据库更新就是增加、修改、删除


增加、更新、删除操作


package org.updatedemo;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.Statement;

public class UpdateDemo {

	/**
	 * @param args
	 */
	//驱动程序就是之前在classpath中配置的JDBC的驱动程序的JAR 包中
	public static final String DBDRIVER = "com.mysql.jdbc.Driver";
	//连接地址是由各个数据库生产商单独提供的,所以需要单独记住
	public static final String DBURL = "jdbc:mysql://localhost:3306/test";
	//连接数据库的用户名
	public static final String DBUSER = "root";
	//连接数据库的密码
	public static final String DBPASS = "";
	
	
	public static void main(String[] args) throws Exception {
		Connection con = null; //表示数据库的连接对象
		Statement stmt = null; 
		Class.forName(DBDRIVER); //1、使用CLASS 类加载驱动程序
		con = DriverManager.getConnection(DBURL,DBUSER,DBPASS); //2、连接数据库
		stmt = con.createStatement(); //3、Statement 接口需要通过Connection 接口进行实例化操作
		stmt.executeUpdate("insert into java_study.person values(\'Tom\',20,\'SH\')"); //执行SQL 语句,插入、更新、删除数据
		stmt.executeUpdate("update java_study.person set name='Jery' where age = 20");
		stmt.executeUpdate("delete from java_study.person where age = 20");
		con.close(); // 4、关闭数据库
	}

}

数据库查询操作


通过SELECT 语句,可以查询数据中的内容,在mysql 中直接查询的时候可以发现将返回全部的查询结果给用户看,那么对于程序的操作中也是一样的,所有的查询结果要返回到程序处进行输出查看,那么程序通过ResultSet 接口保存全部的查询结果,通过Statement 接口中的executeQuery()方法查询。

查询之后的数据需要分别的取出。通过 next ()方法找到返回的每一行数据,每一行中各个列的数据需要通过getXxx()方法取得,例如:

取得整型:getInt()

取得字符串:getString()

取得日期:getDate()

取得小数:getFloat()


package org.querydemo;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.Statement;

public class QueryDemo {

	/**
	 * @param args
	 */
	//驱动程序就是之前在classpath中配置的JDBC的驱动程序的JAR 包中
	public static final String DBDRIVER = "com.mysql.jdbc.Driver";
	//连接地址是由各个数据库生产商单独提供的,所以需要单独记住
	public static final String DBURL = "jdbc:mysql://localhost:3306/test";
	//连接数据库的用户名
	public static final String DBUSER = "root";
	//连接数据库的密码
	public static final String DBPASS = "";
	
	
	public static void main(String[] args) throws Exception {
		Connection con = null; //表示数据库的连接对象
		Statement stmt = null;  //表示数据库的更新操作
		ResultSet result = null; //表示接收数据库的查询结果
		Class.forName(DBDRIVER); //1、使用CLASS 类加载驱动程序
		con = DriverManager.getConnection(DBURL,DBUSER,DBPASS); //2、连接数据库
		stmt = con.createStatement(); //3、Statement 接口需要通过Connection 接口进行实例化操作
		result = stmt.executeQuery("select name,age,address from java_study.person"); //执行SQL 语句,查询数据库
		while (result.next()){
			String name = result.getString("name");
			int age = result.getInt("age");
			String address = result.getString("address");
			System.out.println(name+age+address);
		}
                result.close();
               con.close(); // 4、关闭数据库
	}

}


PreparedStatement

此接口是在实际的开发中使用最广泛的一个操作接口,此接口是Statement接口的子接口,采用预处理的方式完成


完成增加操作

package org.preparedstatementdemo;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.util.Date;

public class PreparedStatementDemo  {

	/**
	 * @param args
	 */

	public static final String DBDRIVER = "com.mysql.jdbc.Driver";
	//连接地址是由各个数据库生产商单独提供的,所以需要单独记住
	public static final String DBURL = "jdbc:mysql://localhost:3306/test";
	//连接数据库的用户名
	public static final String DBUSER = "root";
	//连接数据库的密码
	public static final String DBPASS = "";
	
	public static void main(String[] args) throws Exception {
		// TODO Auto-generated method stub
		Connection con = null; //表示数据库的连接对象
		PreparedStatement pstmt = null; //表示数据库更新操作
		
		String name = "Tom";
		int age = 20;
		Date date = new Date();		
		String sql = "insert into java_study.person values(?,?,?)";
		
		Class.forName(DBDRIVER); //1、使用CLASS 类加载驱动程序
		
		System.out.println(sql);
		con = DriverManager.getConnection(DBURL,DBUSER,DBPASS); //2、连接数据库
		pstmt = con.prepareStatement(sql); //使用预处理的方式创建对象
		pstmt.setString(1, name); //第一个?号的内容
		pstmt.setInt(2, age); //第二个?号的内容
		pstmt.setDate(3, new java.sql.Date(date.getTime()));
		pstmt.executeUpdate(); //执行SQL 语句,更新数据库
		pstmt.close();
		con.close(); // 4、关闭数据库
	}

}


完成模糊操作

模糊查询要使用LIKE 语句,那么LIKE 语句需要使用%进行匹配

package org.preparedstatementquery;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.util.Date;

public class PreparedStatementQuery {

	/**
	 * @param args
	 */
	// TODO Auto-generated method stub
	public static final String DBDRIVER = "com.mysql.jdbc.Driver";
	//连接地址是由各个数据库生产商单独提供的,所以需要单独记住
	public static final String DBURL = "jdbc:mysql://localhost:3306/test";
	//连接数据库的用户名
	public static final String DBUSER = "root";
	//连接数据库的密码
	public static final String DBPASS = "";	
	
	public static void main(String[] args) throws Exception {
		Connection con = null; //表示数据库的连接对象
		PreparedStatement pstmt = null; //表示数据库更新操作
		ResultSet result = null;
		
		String like_name ="Tom1";
		int like_age = 12;
		
		String sql = "select name,age,birthday from java_study.person where name like ? or age = ?";
		
		Class.forName(DBDRIVER); //1、使用CLASS 类加载驱动程序
		
		System.out.println(sql);
		con = DriverManager.getConnection(DBURL,DBUSER,DBPASS); //2、连接数据库
		pstmt = con.prepareStatement(sql); //使用预处理的方式创建对象
		pstmt.setString(1, "%"+like_name+"%");
		pstmt.setInt(2, like_age);

		result = pstmt.executeQuery(); //执行SQL 语句,更新数据库
		while (result.next()){
			String name = result.getString("name");
			int age = result.getInt("age");
			Date date = result.getDate("birthday");
			System.out.println(name+","+age+","+date);
		}
                result.close();
pstmt.close();con.close(); // 4、关闭数据库}}




批处理

批处理,多条SQL 语句可以一次性执行完毕,称为批处理操作


package org.addbetchdemo;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.util.Date;

public class AddDetchDemo {

	/**
	 * @param args
	 */
	public static final String DBDRIVER = "com.mysql.jdbc.Driver";
	//连接地址是由各个数据库生产商单独提供的,所以需要单独记住
	public static final String DBURL = "jdbc:mysql://localhost:3306/test";
	//连接数据库的用户名
	public static final String DBUSER = "root";
	//连接数据库的密码
	public static final String DBPASS = "";	
	
	public static void main(String[] args) throws Exception {
		// TODO Auto-generated method stub
		Connection con = null; //表示数据库的连接对象
		PreparedStatement pstmt = null; //表示数据库更新操作
		
		String sql = "insert into java_study.person values(?,?,?)";
		
		Class.forName(DBDRIVER); //1、使用CLASS 类加载驱动程序
		
		System.out.println(sql);
		con = DriverManager.getConnection(DBURL,DBUSER,DBPASS); //2、连接数据库
		pstmt = con.prepareStatement(sql); //使用预处理的方式创建对象
		
		for (int i = 0;i<10;i++){
			pstmt.setString(1, "org"+i); //第一个?号的内容
			pstmt.setInt(2, i); //第二个?号的内容
			pstmt.setDate(3, new java.sql.Date(new java.util.Date().getTime()));
			pstmt.addBatch();
		}
		int[] i = pstmt.executeBatch(); //执行SQL 语句,更新数据库
		System.out.println(i);
		pstmt.close();
		con.close(); // 4、关闭数据库
	}

}

事务处理

通过设置 connection 的autocommit(false) 提交事务 con.commit(); 回滚事务 con.rollback()

package org.transactiondemo;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.Statement;

public class TransactionDemo {

	/**
	 * @param args
	 */
	//驱动程序就是之前在classpath中配置的JDBC的驱动程序的JAR 包中
	public static final String DBDRIVER = "com.mysql.jdbc.Driver";
	//连接地址是由各个数据库生产商单独提供的,所以需要单独记住
	public static final String DBURL = "jdbc:mysql://localhost:3306/test";
	//连接数据库的用户名
	public static final String DBUSER = "root";
	//连接数据库的密码
	public static final String DBPASS = "";
	
	public static void main(String[] args) throws Exception {
		// TODO Auto-generated method stub
		Connection con = null; //表示数据库的连接对象
		Statement stmt = null; 
		Class.forName(DBDRIVER); //1、使用CLASS 类加载驱动程序
		con = DriverManager.getConnection(DBURL,DBUSER,DBPASS); //2、连接数据库
		
		con.setAutoCommit(false);
		
		stmt = con.createStatement(); //3、Statement 接口需要通过Connection 接口进行实例化操作
		
		try{
		stmt.addBatch("insert into java_study.person values(\'Tom\',20,\'2012-01-01\')"); //执行SQL 语句,插入、更新、删除数据
		stmt.addBatch("insert into java_study.person values(\'Tom\',20,\'2012-01-01\')");
		stmt.addBatch("insert into java_study.person values(\''Tom\',20,\'2012-01-01\')");
			stmt.executeBatch();
			con.commit();
		} catch(Exception e){
			con.rollback();
		}
		
		

		stmt.close();
		con.close(); // 4、关闭数据库
	}

}




分享到:
评论

相关推荐

    java jdbc 需要包

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

    Java JDBC学生数据管理系统

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

    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编程语言中用于与各种关系数据库进行交互的一组标准API。JDBC使得Java开发者能够编写可移植的数据库应用程序,无需针对不同数据库系统编写不同的代码。JDBC的核心是一...

    java jdbc连接sqlserver所需要的jar包

    Java JDBC(Java Database Connectivity)是Java语言中用于与数据库交互的一种技术,它为开发者提供了一种标准的方法来访问各种类型的数据库。在Java中连接SQL Server数据库时,你需要一个特定的驱动程序,通常是一...

    JAVA JDBC MYSQL连接源代码

    Java JDBC (Java Database Connectivity) 是Java编程语言中用于与各种数据库进行交互的一组接口和类。它是Java标准的一部分,允许开发者在Java程序中执行SQL语句,实现对数据库的读写操作。本示例主要涉及使用Java ...

    javajdbc

    Java JDBC(Java Database Connectivity)是Java编程语言中用于与各种数据库进行交互的一组接口和类。它是Java标准版(Java SE)的一部分,允许Java开发者执行SQL语句并处理结果。在深入探讨Java JDBC之前,先要理解...

    完美的java jdbc连接池实例

    Java JDBC 连接池是Java开发中非常关键的一部分,它能有效地管理数据库连接,提高应用程序的性能和效率。本实例提供了完美的Java JDBC连接池配置,适用于Oracle、MySQL和SQL Server等主流数据库,允许开发者轻松地在...

    JAVA JDBC教程.zip_zip怎么打开

    **JAVA JDBC教程** Java JDBC(Java Database Connectivity)是Java平台中的一个标准API,它允许Java应用程序连接到各种类型的数据库,实现数据的存取和处理。JDBC为开发者提供了一种统一的方式来访问不同的数据库...

    javaJDBC编程.ppt

    javaJDBC编程.pptjavaJDBC编程.pptjavaJDBC编程.pptjavaJDBC编程.pptjavaJDBC编程.pptjavaJDBC编程.pptjavaJDBC编程.pptjavaJDBC编程.pptjavaJDBC编程.pptjavaJDBC编程.pptjavaJDBC编程.ppt

    java jdbc odbc 桥连接包

    java jdbc odbc 桥连接包 如何实现JDBC-ODBC桥连接到Access

    最全的javaJDBC--BaseDao

    最全的javaJDBC技术的BaseDao,相当于框架封装了,引用之后直接调用其中的方法传递参数以及sql语句就可以使用了。

    jdbc-oracle.rar_JDBC ORACLE_java JDBC orac_java jdbc oracle_jdbc

    在Java编程语言中,JDBC(Java Database Connectivity)是一个用于与各种数据库进行交互的标准接口。JDBC提供了一套规范,使得Java程序员可以使用统一的方法来访问数据库,包括Oracle数据库。Oracle是世界上最流行的...

    java jdbc连接Oracle的小例子

    Java JDBC(Java Database Connectivity)是Java语言中用来规范客户端程序如何访问数据库的应用程序接口,它提供了标准的API,使得Java程序员能够使用SQL语句来访问数据库。本篇将通过一个小型示例,详细介绍如何...

    mysql8.0,java jdbc驱动.zip

    Java JDBC(Java Database Connectivity)驱动则是Java程序与各种数据库进行交互的标准接口,使得Java开发者能够方便地访问和操作数据库。在本压缩包中,我们可能找到了用于连接MySQL 8.0的Java JDBC驱动,这将帮助...

    Java JDBC 编程知识全面总结 一张图搞定!

    全面的 Java JDBC 编程学习知识总结 一张图搞定! 结构性强,便于记忆! 资源博客:https://blog.csdn.net/CodeYearn/article/details/89196038

    sqlite jdbc jar java jdbc 链接 sqlite sqlite-jdbc-3.8.11.1.jar

    SQLite JDBC 是一个开源的 Java 驱动程序,允许 Java 应用程序通过 JDBC API 连接到 SQLite 数据库。SQLite 是一个轻量级、自包含的数据库引擎,无需单独的服务器进程,非常适合嵌入式应用或者对小型项目的数据存储...

    Java JDBC驱动大全

    Java JDBC(Java Database Connectivity)是Java平台中用于与数据库交互的一组接口和类,它使得开发者可以使用标准的Java API来访问各种类型的数据库系统。在Java应用中,JDBC驱动扮演着桥梁的角色,将Java程序与...

    Java JDBC学习

    Java JDBC 代码,可以借鉴一下,jdbc基本是这个模式

    java JDBC连接ACCESS驱动

    Java JDBC(Java Database Connectivity)是Java平台中用于与各种数据库进行交互的标准接口。它允许Java应用程序通过编写Java代码来访问和处理存储在数据库中的数据。在这个主题中,我们将深入探讨如何使用JDBC来...

Global site tag (gtag.js) - Google Analytics