`

java jdbc连接数据库

 
阅读更多

 

使用java操作数据库时需要用到jdbc。

1、加载驱动   class forName("oracle.jdbc.driver.OracleDriver");

2、定义连接字符创

String url = "jdbc:oracle:thin:@192.168.50.128:1521:ORCL";

3、连接到数据库

                        Connection conn = DriverManager.getConnection(url, user,psw);

4、取得数据库sql语句的编译和执行对象

Statement stm = conn.createStatement();

5、定义要执行的sql语句

String readAll = "select empno,ename,sal,comm from emp";

6、执行sql语句

查询,可以获得结果集

ResultSet rs = stm.executeQuery(readAll);

更新

String sql2 = "update emp set comm = 700 where ename = 'SMITH'";

stm.executeUpdate(sql2);

注意事项:

如果不知道表结构,可以先进行查询(select * from emp);

for (int i = 0; i < rsd.getColumnCount(); i++) {
				System.out.println(rsd.getColumnName(i + 1));
				System.out.println(rsd.getColumnType(i + 1));
			}

 

查询完之后可以遍历打印查看结果:

while (rs.next()) {
				// 每次取得一行,用第一列进行标记
				// System.out.println(rs.getInt("empno"));
				// System.out.println(rs.getInt(1));
				int empno = rs.getInt(1);
				String ename = rs.getString(2);
				float sal = rs.getFloat(3);
				float comm = rs.getFloat(4);
				System.out.println(empno + "\t" + ename + "\t" + sal + "\t"
						+ comm);
			}

 

java中的每一句操作都会自动提交,如果希望暂时不保存,可以使用

conn.setAutoCommit(false);

需要的时候再手动提交。

conn.commit();

 

sqlconnection.xml

<?xml version="1.0" encoding="utf-8"?>
<sqlconnection>
<sql id="oracle">
	<url><![CDATA[jdbc:oracle:thin:@127.0.0.1:1521:ORCL]]></url>
    	<driver><![CDATA[oracle.jdbc.driver.OracleDriver]]></driver>
    	<user>test</user>
   	 <pwd>huangbin</pwd>
 </sql>
</sqlconnection>

 

 

SqlConnection.java

package com.hb.jdbc;

/**
 * 配置的对象
 * 
 * @author HuangBin
 * @2014年10月8日
 */
public class SqlConnection {

	String id;
	String url;
	String driver;
	String user;
	String psw;

	public String toString() {
		return user + " " + psw;
	}
}

 

 

Test.java

package com.hb.jdbc;

import java.io.File;
import java.io.FileInputStream;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.Statement;
import java.util.ArrayList;

import javax.xml.parsers.ParserConfigurationException;
import javax.xml.parsers.SAXParser;
import javax.xml.parsers.SAXParserFactory;

import org.xml.sax.Attributes;
import org.xml.sax.SAXException;
import org.xml.sax.helpers.DefaultHandler;

/**
 * 从xml文件中读到数据库的配置,并连接数据库更新部分数据
 * 
 * @author HuangBin
 * @2014年10月8日
 */
public class Test {

	SqlConnection sc;

	public static void main(String[] args) {
		Test test = new Test();
		test.parse();
		test.connect();
	}

	public void connect() {
		try {
			Class.forName(sc.driver);
			// 配置通过xml得到
			Connection conn = DriverManager.getConnection(sc.url, sc.user,
					sc.psw);
			// 取得数据库sql语句的编译和执行对象
			Statement stm = conn.createStatement();
			// 定义要执行的sql语句
			String sql = "select * from stu";
			// 表名通过它得到
			ResultSet rs = stm.executeQuery(sql);
			// 再遍历rs
			while (rs.next()) {
				// 每次取得一行,用第一列进行标记
				int stuno = rs.getInt(1);
				String stuname = rs.getString(2);
				int stuage = rs.getInt(3);
				System.out.println(stuno + "\t" + stuname + "\t" + stuage);
			}
			conn.setAutoCommit(false);
			// 在这里面执行sql语句
			// 例如,需要从smith工资转100给allen,需要等两次更新都完成才提交事物,否则,可能执行完第一句,第二句来不及执行,
			// 那么需要设置禁止自动提交,(那么就会自动回滚,不会更新数据库中的数据)。
			conn.setAutoCommit(false);
			String sql2 = "update stu set stuname = 'lisi' where stuname = 'zhangsan'";
			stm.executeUpdate(sql2);

			// 在这里模拟程序出错,如果出错,则上面那条不能生效
			// int test = Integer.parseInt("aaaa");

			String sql3 = "update stu set stuage = 20 where stuname = 'zhangsan'";
			stm.executeUpdate(sql3);

			// 手动提交
			conn.commit();
		} catch (Exception e) {
			e.printStackTrace();
		}
	}

	public void parse() {
		try {
			// 创建一个解析器工厂对象
			SAXParserFactory factory = SAXParserFactory.newInstance();
			// 创建sax解析器
			SAXParser sax = factory.newSAXParser();

			MyHander hander = new MyHander();
			sax.parse(new FileInputStream(new File("sqlconnection.xml")),
					hander);
		} catch (Exception e) {
			e.printStackTrace();
		}
	}

	class MyHander extends DefaultHandler {

		String strValue;

		public void startDocument() throws SAXException {
		}

		public void endDocument() throws SAXException {
			System.out.println(sc);
		}

		public void startElement(String uri, String localName, String qName,
				Attributes atts) throws SAXException {
			// System.out.println("解析到一个元素:" + qName);
			if (qName.equals("sql")) {
				sc = new SqlConnection();
				sc.id = atts.getValue("id");
			}

		}

		public void endElement(String uri, String localName, String qName)
				throws SAXException {
			// System.out.println("元素结尾:" + qName);
			if (qName.equals("url")) {
				sc.url = strValue;
			} else if (qName.equals("driver")) {
				sc.driver = strValue;
			} else if (qName.equals("user")) {
				sc.user = strValue;
			} else if (qName.equals("pwd")) {
				sc.psw = strValue;
			}
		}

		public void characters(char[] ch, int start, int length)
				throws SAXException {

			strValue = new String(ch, start, length);
			// System.out.println(new String(ch, start, length));
		}

	}
}

 

分享到:
评论

相关推荐

    PG-java jdbc连接数据库

    本篇文章将深入探讨如何使用JDBC连接PG数据库,以及实现数据的增删改查操作。 首先,我们需要了解JDBC的基本概念。JDBC是Java程序访问数据库的一组接口和类,它允许开发者使用SQL语句来操作数据库。JDBC提供了一个...

    java jdbc连接数据库

    ### Java JDBC 连接数据库详解 #### 一、引言 在Java开发中,与数据库进行交互是一项非常常见的任务。JDBC(Java Database Connectivity)是Java中用来对关系型数据库进行统一访问的标准API,它为Java应用程序提供...

    Java JDBC 连接数据库实例

    Java JDBC 连接数据库实例 通用度稍好

    java jdbc 连接数据库

    功能介绍: 需手动导入驱动包mysql-connector-java-...JdbcSingleUtils.java 是单利模式创建连接对象 JdbcUtils.java 静态类方式创建连接对象 注意数据库连接账户密码 包内有anbyke.sql数据库文件 运行方法: 简单...

    java使用jdbc连接oracle数据库

    Java使用JDBC(Java Database Connectivity)来连接Oracle数据库是一个常见的任务,它允许Java应用程序与各种数据库进行交互。在本场景中,`ojdbc6.jar`是Oracle提供的JDBC驱动程序,用于建立Java应用程序与Oracle...

    java实例jdbc连接数据库大全.doc

    JDBC连接数据库的基本步骤包括: 1. 加载数据库驱动:`Class.forName(driverClassName);` 2. 创建数据库连接:`Connection conn = DriverManager.getConnection(url, username, password);` 3. 获取Statement或...

    Java jdbc数据库连接池总结

    Java JDBC 数据库连接池总结 Java 语言中,JDBC(Java DataBase Connection)是应用程序与数据库沟通的桥梁。在 Web 应用开发的早期,主要使用的技术是 CGIASPPHP 等。之后,Sun 公司推出了基于 Java 语言的 ...

    JDBC连接数据库步骤

    jdbc java 数据库 连接数据库 步骤

    java_JDBC连接数据库代码大全

    Java JDBC 连接数据库代码大全 JDBC(Java Database Connectivity)是一种可以执行 SQL 的 Java API,通过它可以用一种 API 操作不同的数据库。 JDBC 驱动是不同数据库之间的桥梁,将 JDBC 调用映射成特定的数据库...

    Java连接数据库 JDBC封装类 带使用例子

    Java JDBC封装类,带增删改查例子,支持oracle,MySql,hsqldb 等,支持事务,返回数据格式 支持二维数组,MAP格式,以及javabean对象。有利于初学者DbDemo.java为demo,Connect为jdbc封装类,可以作为项目共通类使用。

    Java中JDBC连接数据库详解

    Java中JDBC连接数据库详解 Java中JDBC连接数据库详解是指Java程序使用JDBC(Java Database Connectivity)来连接和操作数据库的过程。JDBC是一种Java API,用于连接和操作数据库,它提供了一套标准化的接口,允许...

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

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

    JDBC连接数据库的驱动包

    java JDBC连接数据库的驱动包java JDBC连接数据库的驱动包java JDBC连接数据库的驱动包java JDBC连接数据库的驱动包java JDBC连接数据库的驱动包java JDBC连接数据库的驱动包java JDBC连接数据库的驱动包java JDBC...

    java jdbc 连接数据库驱动程序包(oracle mysql sybase)

    Java JDBC(Java Database Connectivity)是Java语言中用来规范客户端程序如何访问数据库的应用程序接口,它提供了标准的方法来创建、管理以及关闭数据库连接。本压缩包包含的三个文件分别对应于Oracle、MySQL和...

    java JDBC连接数据库的解决办法。

    总结了Java 连接sqlserver数据库时出现的问题的解决办法。有jdbc 的jar包。希望可以帮到大家

    JDBC连接数据库方法文档

    JDBC(Java Database Connectivity)是 Java 语言中用于连接数据库的标准 API。它提供了一种统一的方式来访问各种类型的数据库,包括关系数据库、对象数据库和文本数据库等。下面是 JDBC 连接数据库的详细方法文档。...

    使用java,jdbc连接数据库和Java swing图形化界面完成一个商品管理系统.zip

    在这个名为“使用java,jdbc连接数据库和Java swing图形化界面完成一个商品管理系统.zip”的压缩包中,包含了使用Java编程语言,结合JDBC(Java Database Connectivity)接口与MySQL数据库,以及利用Java Swing构建...

    java_jdbc数据库连接池总结

    Java JDBC 数据库连接池总结 Java JDBC 数据库连接池是 Java 应用程序访问数据库的基本原理之一。Java 语言通过 JDBC 技术访问数据库,JDBC 是一种“开放”的方案,为数据库应用开发人员和数据库前台工具开发人员...

Global site tag (gtag.js) - Google Analytics