`

java操作数据库

    博客分类:
  • java
 
阅读更多

1.操作DML

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.SQLException;

public class TestDML {

	public static void main(String[] args) {
		// Statement stmt = null;
		PreparedStatement pstmt = null;
		Connection conn = null;
		try {
			Class.forName("com.mysql.jdbc.Driver");
			conn = DriverManager
					.getConnection("jdbc:mysql://localhost:3306/mydata", "root", "root");
			// stmt = conn.createStatement();
			// String sql = "insert into dept values (60, 'F', 'F')";
			// stmt.executeUpdate(sql);
			pstmt = conn.prepareStatement("insert into dept values (?, ?, ?)");
			pstmt.setInt(1, 70);
			pstmt.setString(2, "G");
			pstmt.setString(3, "G");
			pstmt.executeUpdate();
		} catch (ClassNotFoundException e) {
			e.printStackTrace();
		} catch (SQLException e) {
			e.printStackTrace();
		} finally {
			try {
				// if (stmt != null) {
				// stmt.close();
				// stmt = null;
				// }
				if (pstmt != null) {
					pstmt.close();
					pstmt = null;
				}
				if (conn != null) {
					conn.close();
					conn = null;
				}
			} catch (SQLException e) {
				e.printStackTrace();
			}
		}
	}
}

 

2.调用存储过程

import java.sql.CallableStatement;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import java.sql.Types;

public class TestProc {

	public static void main(String[] args) {
		CallableStatement cstmt = null;
		Connection conn = null;
		try {
			Class.forName("com.mysql.jdbc.Driver");
			conn = DriverManager
					.getConnection("jdbc:mysql://localhost:3306/mydata", "root", "root");
			// p (v_a in number, v_b number, v_c out number, v_d in out number)
			cstmt = conn.prepareCall("(call p(?, ?, ?, ?))");
			// 指定第三个和第四个是输出参数
			cstmt.registerOutParameter(3, Types.INTEGER);
			cstmt.registerOutParameter(4, Types.INTEGER);
			// 给输入参数赋值
			cstmt.setInt(1, 30);
			cstmt.setInt(2, 40);
			cstmt.setInt(4, 50);
			cstmt.execute();
			System.out.println(cstmt.getInt(3) + "	" + cstmt.getInt(4));
		} catch (ClassNotFoundException e) {
			e.printStackTrace();
		} catch (SQLException e) {
			e.printStackTrace();
		} finally {
			try {
				if (cstmt != null) {
					cstmt.close();
					cstmt = null;
				}
				if (conn != null) {
					conn.close();
					conn = null;
				}
			} catch (SQLException e) {
				e.printStackTrace();
			}
		}
	}

}

 

3.batch批处理

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.SQLException;

/**
 * 这里面做了事务的管理,共五步骤[不要求代码严谨的话,可以不要这五步骤]
 * 
 */
public class TestBatch {

	public static void main(String[] args) {
		// Statement stmt = null;
		PreparedStatement pstmt = null;
		Connection conn = null;
		try {
			Class.forName("com.mysql.jdbc.Driver");
			conn = DriverManager
					.getConnection("jdbc:mysql://localhost:3306/mydata", "root", "root");

			conn.setAutoCommit(false);// 1.设置不自动提交

			// stmt = conn.createStatement();
			// stmt.addBatch("insert into dept values (80, 'H', 'H')");
			// stmt.addBatch("insert into dept values (90, 'I', 'I')");
			// stmt.addBatch("insert into dept values (100, 'J', 'J')");
			// stmt.executeBatch();

			pstmt = conn.prepareStatement("insert into dept values (?, ?, ?)");

			pstmt.setInt(1, 110);
			pstmt.setString(2, "K");
			pstmt.setString(3, "K");
			pstmt.addBatch();

			pstmt.setInt(1, 120);
			pstmt.setString(2, "L");
			pstmt.setString(3, "L");
			pstmt.addBatch();

			pstmt.setInt(1, 130);
			pstmt.setString(2, "M");
			pstmt.setString(3, "M");
			pstmt.addBatch();

			pstmt.executeBatch();

			conn.commit();// 2.手动提交
			conn.setAutoCommit(true);// 3.回复自动提交
		} catch (ClassNotFoundException e) {
			e.printStackTrace();
		} catch (SQLException e) {
			e.printStackTrace();
			try {
				if (conn != null) {
					conn.rollback();// 4.回滚事务
					conn.setAutoCommit(true);// 5.回复自动提交
				}
			} catch (SQLException e1) {
				e1.printStackTrace();
			}
		} finally {
			try {
				// if (stmt != null) {
				// stmt.close();
				// stmt = null;
				// }
				if (pstmt != null) {
					pstmt.close();
					pstmt = null;
				}
				if (conn != null) {
					conn.close();
					conn = null;
				}
			} catch (SQLException e) {
				e.printStackTrace();
			}
		}
	}
}

 

4.可滚动的结果集

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

public class TestScroll {

	public static void main(String[] args) {
		ResultSet rs = null;
		Statement stmt = null;
		Connection conn = null;
		try {
			Class.forName("com.mysql.jdbc.Driver");
			conn = DriverManager
					.getConnection("jdbc:mysql://localhost:3306/mydata", "root", "root");
			// 可滚动的结果集[对于滚动不敏感,并且只读]
			stmt = conn.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,
					ResultSet.CONCUR_READ_ONLY);
			rs = stmt.executeQuery("select * from dept");
			rs.next();// 结果集向后移一位
			System.out.println(rs.getString("dname") + "	" + rs.getInt("deptno"));
			rs.last();// 结果集定位到最后一位
			System.out.println(rs.getString("dname") + "	" + rs.getInt("deptno"));
			System.out.println(rs.isLast());// 是否最后一条
			System.out.println(rs.isAfterLast());// 是否最后的下一条
			System.out.println(rs.getRow());// 当前在哪个位置
			rs.previous();// 结果集向前移一位
			System.out.println(rs.getString("dname") + "	" + rs.getInt("deptno"));
			rs.absolute(6);// 定位结果集到第六位
			System.out.println(rs.getString("dname") + "	" + rs.getInt("deptno"));

		} catch (ClassNotFoundException e) {
			e.printStackTrace();
		} catch (SQLException e) {
			e.printStackTrace();
		} finally {
			try {
				if (rs != null) {
					rs.close();
					rs = null;
				}
				if (stmt != null) {
					stmt.close();
					stmt = null;
				}
				if (conn != null) {
					conn.close();
					conn = null;
				}
			} catch (SQLException e) {
				e.printStackTrace();
			}
		}
	}

}

 

5.可更新的结果集

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

/**
 * mysql支持可更新的结果集,而oracle不支持
 * 
 */
public class TestUpdateResultSet {

	public static void main(String[] args) {
		ResultSet rs = null;
		Statement stmt = null;
		Connection conn = null;
		try {
			Class.forName("com.mysql.jdbc.Driver");
			conn = DriverManager
					.getConnection("jdbc:mysql://localhost:3306/mydata", "root", "root");
			stmt = conn.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,
					ResultSet.CONCUR_UPDATABLE);
			rs = stmt.executeQuery("select * from dept");

			rs.next();
			// 更新一条数据
			rs.updateString("dname", "AAAAA");
			rs.updateRow();

			// 插入一条数
			rs.moveToInsertRow();
			rs.updateInt("deptno", 140);
			rs.updateString("dname", "N");
			rs.updateString("loc", "N");
			rs.insertRow();

			// 将光标移到新建的行
			rs.moveToCurrentRow();

			// 删除第六行
			rs.absolute(6);
			rs.deleteRow();
		} catch (ClassNotFoundException e) {
			e.printStackTrace();
		} catch (SQLException e) {
			e.printStackTrace();
		} finally {
			try {
				if (rs != null) {
					rs.close();
					rs = null;
				}
				if (stmt != null) {
					stmt.close();
					stmt = null;
				}
				if (conn != null) {
					conn.close();
					conn = null;
				}
			} catch (SQLException e) {
				e.printStackTrace();
			}
		}
	}

}

 

分享到:
评论

相关推荐

    java操作数据库基础代码

    一些java操作数据库的代码演示,数据库采用基础的access数据库,包括增加删除、查找和修改。里面有jdbc预处理以及一些2.0以后增加的新的特性支持。适合初学者学习。例子比较简单都是基础的带main方法的,可以直接...

    JAVA操作数据库

    JAVA操作数据库HIBERNATE MYBATIS JDBC JAVA ORACLE MYSQL

    JAVA操作数据库三层

    "JAVA操作数据库三层"是指使用Java语言设计的一种常见的软件架构模式,即MVC(Model-View-Controller)模型,通常用于构建数据库驱动的应用程序。在这个架构中,三层分别是表现层(View)、业务逻辑层(Controller/...

    JAVA操作数据库模板代码

    在这个名为"JAVA操作数据库模板代码"的压缩包中,我们有两个关键文件:`ConnToDB.java`和`DBConf.properties`。这两个文件共同构成了一个简单的JDBC数据库操作模板。 首先,`DBConf.properties`文件是配置文件,...

    Java操作数据库实验

    【Java操作数据库实验】主要涉及Java编程语言与数据库交互的基础知识,通过设计和实现一个学生管理数据库应用软件,让学生理解数据库应用软件的构建过程,并掌握Java GUI编程、JDBC连接和数据库操作。以下是对这些...

    java操作数据库及文件的简单工具

    java操作数据库及文件的简单工具;java操作数据库及文件的简单工具;java操作数据库及文件的简单工具; 数据迁移的时候,自己写的。在这里保存一份,以便以后使用。 因为简单,所以强大

    java 操作数据库 3实例 (三种不同数据库操作增删改查)

    java 操作数据库 3实例 (三种不同数据库操作增删改查) 1.实际用到什么数据库替换相应的JDBC驱动包 2.已经封装接口增删改查 3.表结构在项目txt文本中,对应的驱动链接Driver_comment.txt中有说明

    简单的java与数据库之间的操作

    简单的实现增删改,适合初学者,无框架,简单的熟悉java与数据库的操作

    java 操作数据库的实验报告

    用java访问数据库,以及数据库中存储过程的应用,JDBC的应用

    java配置数据库jar包操作

    JDBC 允许开发者使用 Java 语言来操作数据库,执行 SQL 语句,查询数据等。 为什么需要 Jar 包? Jar 包是 Java 项目中用来存放类库和资源文件的存档文件。 在 Java 项目中,我们需要将 MySQL 的 Jar 包导入到项目...

    JAVA实现数据库基本操作指南

    本文阐述了Java数据库操作的基本流程,介绍了几个常用的重要操作技巧。

    java 多线程操作数据库

    ### Java多线程操作数据库:深入解析与应用 在当今高度并发的应用环境中,Java多线程技术被广泛应用于处理数据库操作,以提升系统的响应速度和处理能力。本文将基于一个具体的Java多线程操作数据库的应用程序,深入...

    java操作数据库.rar

    本文使用java中的反射技术,对DML和DQL进行封装,使的对数据库的CRUD操作更加简洁明了,只需调用函数即可完成所要执行的功能。并且使用.properties对数据库的配置进行了分离,采用dao,entity,utils等简单的命名规范...

    java界面操作数据库

    在这个主题中,"java界面操作数据库" 主要涉及如何利用Java的图形用户界面(GUI)库来设计可视化界面,以及如何利用Java的数据访问技术如JDBC(Java Database Connectivity)来执行数据库的增删改查操作。...

    神通数据库驱动jar,Java 连接神通数据库驱动包(亲测有效)

    神通数据库驱动jar,Java 连接神通数据库驱动包(亲测有效)神通数据库驱动jar,Java 连接神通数据库驱动包(亲测有效)神通数据库驱动jar,Java 连接神通数据库驱动包(亲测有效)神通数据库驱动jar,Java 连接神通...

    java数据库驱动包

    Java数据库驱动包是Java应用程序与各种数据库之间进行通信的关键组件。在Java中,JDBC(Java Database Connectivity)是一个标准API,允许程序员用Java语言来访问和处理存储在各种数据库中的数据。这个压缩包包含了...

    java各种数据库jar包

    使用这些驱动,你可以编写Java代码来执行Oracle数据库的查询和其他操作。 2. **mysql-connector-java-5.1.7-bin.jar** 是MySQL的JDBC驱动,用于连接MySQL数据库。这个版本是5.1系列中的一个,支持MySQL 5.1.x版本。...

    Java数据库所需编程软件 Navicat for MySQL

    Java数据库编程通常涉及到与数据库...总的来说,Navicat for MySQL是Java数据库开发中不可或缺的一款实用软件,它提供了全面的数据库管理和开发功能,让Java程序员能够更加专注于业务逻辑,而不是基础的数据库操作。

    java连接PI数据库

    java连接PI数据库查询修改的列子

Global site tag (gtag.js) - Google Analytics