`
happyqing
  • 浏览: 3205003 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

jdbcutil操作数据库

    博客分类:
  • java
 
阅读更多

 

JdbcUtil

package jdbcConnection;

import java.io.InputStream;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.Statement;
import java.util.Properties;

/**
 * jdbc工具类
 * 
 * @author happyqing
 * 
 */
public class JdbcUtil {

	private static Properties env = new Properties();
	static {
		try {
			//JdbcUtil.class.getResourceAsStream("/env.properties"); // /com/cici/conf/env.properties
			InputStream is = JdbcUtil.class.getClassLoader().getResourceAsStream("env.properties");
			env.load(is);
			is.close();
		} catch (Exception e) {
			e.printStackTrace();
		}
	}
	private static final ThreadLocal<Connection> tl = new ThreadLocal<Connection>();

	public static Connection getConnection() {
		Connection conn = tl.get();
		try {
			if (conn == null) {

				Class.forName(env.getProperty("jdbc.driverClassName"));
				conn = DriverManager.getConnection(env.getProperty("jdbc.url"),
						env.getProperty("jdbc.username"),
						env.getProperty("jdbc.password"));
				tl.set(conn);

			}
			// 设置不自动提交
			conn.setAutoCommit(false);
		} catch (Exception e) {
			e.printStackTrace();
		}
		return conn;
	}

	/**
	 * 创建PreparedStatement
	 * 
	 * @param conn
	 * @param sql
	 * @return
	 */
	public static PreparedStatement getPreparedStatement(Connection conn,
			String sql) {
		PreparedStatement psmt = null;
		if (conn != null) {
			try {
				psmt = conn.prepareStatement(sql);
			} catch (Exception e) {
				e.printStackTrace();
			}
		}
		return psmt;
	}

	/**
	 * 释放资源
	 */
	public static void close(ResultSet rs, Statement stm, Connection conn) {
		if (rs != null)
			try {
				rs.close();
			} catch (Exception e) {
				e.printStackTrace();
			}
		if (stm != null)
			try {
				stm.close();
			} catch (Exception e) {
				e.printStackTrace();
			}
		if (conn != null)
			try {
				conn.close();
			} catch (Exception e) {
				e.printStackTrace();
			}
	}

	// 测试
	public static void main(String[] args) {
		Connection conn = JdbcUtil.getConnection();
		System.out.println(conn);
	}
}

 

env.properties

jdbc.driverClassName= oracle.jdbc.driver.OracleDriver
jdbc.url= jdbc:oracle:thin:@192.168.1.186:1521:orcl
jdbc.username=xxx
jdbc.password=xxx

 

crud

package jdbcConnection;   
  
import java.sql.Connection;   
import java.sql.PreparedStatement;   
import java.sql.ResultSet;   
import java.sql.SQLException;   
import java.util.Date;   
  
import utils.JdbcUtil;   
  
public class CrudTest {   
  
    private static void add() throws SQLException {   
        // TODO Auto-generated method stub   
        Connection conn = null;   
        PreparedStatement ps = null;   
        ResultSet rs = null;   
        try {   
            conn = JdbcUtil.getConnection();   
            String sql = "insert into [user](name,password,email,age,birthday,money) values(?,?,?,?,?,?)";   
            ps = conn.prepareStatement(sql);   
            ps.setString(1, "psName");   
            ps.setString(2, "psPassword");   
            ps.setString(3, "jkjs@126.com");   
            ps.setInt(4, 23);   
            ps.setDate(5, new java.sql.Date(new java.util.Date().getDate()));   
            ps.setFloat(6, 2344);   
            ps.executeUpdate();   
        } finally {   
            JdbcUtil.close(rs, ps, conn);   
        }   
  
    }   
  
    private static void get() throws SQLException {   
        // TODO Auto-generated method stub   
        Connection conn=null;   
        PreparedStatement ps =null;   
        ResultSet rs = null;   
        try {   
            conn= JdbcUtil.getConnection();   
             String sql = "select id,name,password,email,birthday,money from [user]";    
             ps = conn.prepareStatement(sql);   
             rs= ps.executeQuery();   
             while(rs.next()){      
                    int id= rs.getInt("id");      
                    String name =rs.getString("name");      
                    String pass=rs.getString("password");    
                    String email = rs.getString("email");   
                    Date birthday =rs.getDate("birthday");    
                    float money= rs.getFloat("money");   
                    System.out.println("id是:"+id+"姓名是: "+name+" 密码是:"+pass+"邮箱是:"  
                            +email+"生日是: "+birthday+"工资是"+money);      
                }      
               
        } finally{   
            JdbcUtil.close(rs, ps, conn);   
        }   
           
    }   
  
    private static void update() throws SQLException {   
        // TODO Auto-generated method stub   
        Connection conn=null;   
        PreparedStatement ps =null;   
        ResultSet rs = null;   
        try {   
            conn= JdbcUtil.getConnection();   
            String sql = "update [user] set name='lucy',password='123',money=5000 where id=1";   
            ps= conn.prepareStatement(sql);   
            ps.executeUpdate();   
               
        } finally{   
            JdbcUtil.close(rs, ps, conn);   
        }   
           
    }   
  
    private static void delete() throws SQLException {   
        // TODO Auto-generated method stub   
        Connection conn=null;   
        PreparedStatement ps =null;   
        ResultSet rs = null;   
        try {   
            conn= JdbcUtil.getConnection();   
            String sql = "delete from [user] where id=1";   
            ps= conn.prepareStatement(sql);   
            ps.executeUpdate();   
               
        } finally{   
            JdbcUtil.close(rs, ps, conn);   
        }   
           
    }   
}

 

Jdbc事务管理

模拟银行取帐

TransferTest.java

package test;   
  
import java.sql.Connection;   
import java.sql.PreparedStatement;   
import java.sql.ResultSet;   
import java.sql.SQLException;   
  
import util.JdbcUtil;   
  
public class TransactionTest {   
    public static void main(String[] args)throws SQLException {   
        transferTest();   
           
    }   
    public static void transferTest()throws SQLException{   
        int id1 =3;   
        float m1= 100.0f;   
        int id2 = 4;   
        transfer2(id1,m1,id2);   
    }   
       
    public static boolean transfer2(int id1,float m1,int id2)throws SQLException{   
        boolean flag = false;   
        Connection conn =null;   
        PreparedStatement ps = null;   
        ResultSet rs = null;   
        try {   
            conn = JdbcUtil.getConnection();   
            conn.setAutoCommit(false);   
            String sql = "update [user] set money = money=? where id = ?";   
            ps= conn.prepareStatement(sql);   
            ps.setFloat(1, m1);   
            ps.setInt(2, id1);   
            ps.executeUpdate();   
               
               
               
            String sql1 = "update [user] set money = money+? where id = ?";   
            ps= conn.prepareStatement(sql);   
            ps.setFloat(1, m1);   
            ps.setInt(2, id2);   
            ps.executeUpdate();   
               
            conn.commit();   
        } catch (SQLException e) {   
            // TODO 自动生成 catch 块   
            conn.rollback();   
            throw e;   
        }finally{   
            JdbcUtil.close(rs, ps, conn);   
        }   
        return flag;   
           
           
    }   
       
  
}  

 

 java读取properties文件

http://happyqing.iteye.com/admin/blogs/1966014

JDBC连接各种数据库方法
http://happyqing.iteye.com/admin/blogs/1966028
使用JDBC进行批处理
http://happyqing.iteye.com/admin/blogs/1965951

分享到:
评论

相关推荐

    JdbcUtil.zip_JDBCUtil.java_jdbcUtil

    `JdbcUtil`通常是一个工具类,用于封装JDBC的常用操作,以简化数据库访问流程,提高代码的可复用性和可维护性。 `JdbcUtil`类的基本结构通常包括以下几个部分: 1. **数据库连接的建立和关闭**:使用`...

    自己写的jdbcUtil

    Hibernate是一个强大的对象关系映射(ORM)框架,它为开发者提供了一种在Java应用中操作数据库的简便方式,消除了大量手动编写SQL语句的需求。 通过JDBCUtils这个文件名,我们可以推测这个类可能包含了一些常用的...

    JdbcUtil(Jdbc通过工具类)

    JdbcUtil是一个常见的工具类,它封装了JDBC的基本操作,以简化数据库的访问,减少代码量,并提高代码的可维护性。下面将详细阐述JdbcUtil中的主要知识点及其重要性。 1. **连接管理**:JdbcUtil通常包含建立和关闭...

    JDBCUtil.rar_jdbcUtil

    `JDBCUtil`通常是指一个实用工具类,它封装了与数据库交互的常见操作,如建立连接、执行SQL语句、处理结果集等。这个`JDBCUtil.rar_jdbcUtil`压缩包可能包含了实现这些功能的代码示例。接下来,我们将深入探讨JDBC...

    JdbcUtil.rar_jdbcUtil_jdbcut

    JdbcUtil是一个常见的实用类,用于封装数据库连接、查询、更新等基本操作,以提高代码的可读性和可维护性,避免资源泄露。在给定的"JdbcUtil.rar_jdbcUtil_jdbcut"压缩包中,包含的文件"JdbcUtil"可能是这个工具类的...

    jdbcUtil一个工具类

    `JdbcUtil` 类是常见的Java开发中用于简化数据库操作的工具类,它封装了数据库连接的创建、关闭等繁琐过程,使代码更加简洁且易于管理。在本篇文章中,我们将深入探讨`JdbcUtil`类的原理及其在实际应用中的作用。 ...

    Java数据库操作类20170703

    JdbcUtil.java文件很可能是另一个辅助类,专注于JDBC(Java Database Connectivity)操作。JDBC是Java标准API,提供了与各种数据库交互的能力。这个类可能会包含用于建立JDBC连接、预编译SQL语句、执行查询和事务...

    jdbcutil.java

    `JdbcUtil.java` 是一个Java类,用于简化使用JDBC(Java Database Connectivity)操作数据库的过程。这个类主要包含了四个静态方法:`getConnection()`, `close()`, `toInt()` 和 `printRs()`。 1. **静态初始化块*...

    Dao操作数据库

    总的来说,自编DAO操作数据库涉及到Oracle数据库的理解、JDBC API的使用、DAO模式的设计以及最佳实践,如使用PreparedStatement和连接池管理。通过这种方式,我们可以有效地组织代码,使数据库操作更加安全、高效。...

    JdbcUtil_2.rar_jdbcut

    `JdbcUtil_2.rar_jdbcut` 指的可能是一个包含简化了JDBC操作的实用工具类,它的目的是为了简化数据库连接和操作的过程,使得开发者可以更快速、便捷地完成数据库交互任务。 在描述中提到的“用jdbc连接数据库的小...

    达梦数据库JDBC

    达梦数据库JDBC(Java Database Connectivity)是连接Java应用程序与达梦数据库系统的重要桥梁,它允许Java开发者在Java程序中执行SQL语句,实现对达梦数据库的数据操作。达梦数据库是中国自主研发的一款高性能、高...

    java-JDBC-AutoClose-自动关闭的JDBCUtil,效果高于传统JDBC

    在Java中,JDBC(Java Database Connectivity)是与数据库交互的标准API,它提供了连接、查询、更新等操作数据库的能力。在JDBC中,我们通常会创建`Connection`对象来建立与数据库的连接,然后创建`Statement`或`...

    day2_jdbc.zip_jdbc ut_jdbc util_jdbcUtil_jdbc封装

    在Java编程领域,JDBC(Java Database Connectivity)是Java应用程序连接和操作数据库的标准接口。`JdbcUtil`类是开发者为了简化JDBC操作而自定义的一个工具类,它封装了JDBC的一些常用功能,以便更方便、高效地进行...

    JdbcUtil.rar_oracle_元数据

    `JdbcUtil.rar_oracle_元数据`这个压缩包文件包含了一个名为`JdbcUtil.java`的源代码文件,该文件很可能是用来实现从Oracle数据库获取元数据的功能。 元数据在数据库中指的是关于数据的数据,例如表的结构(列名、...

    利用JDBC工具类的方式实现mysql数据库的连接并且完成登录相关功能

    在Java编程中,JDBC(Java Database Connectivity)是用于与各种数据库进行交互的一套标准API。MySQL是一款广泛使用的开源关系型数据库管理系统。本教程将详细讲解如何利用JDBC工具类来建立MySQL数据库的连接,并...

    baseDAO及其实现案例、jdbcUtil工具类、数据池c3p0、dbcp、druid驱动及实现方式

    本资源涉及到的主要知识点包括`BaseDAO`设计模式、`JDBCUtil`工具类以及数据库连接池技术,如`C3P0`、`DBCP`和`Druid`。以下将对这些内容进行详细阐述。 首先,`BaseDAO`是一个设计模式,用于封装数据库的基本操作...

    j2ee商城后台管理系统

    本文将深入探讨一个基于J2EE技术的商城后台管理系统,它利用了jsp、servlet以及JDBCUtil工具类,为数据库操作提供便利。 首先,J2EE(Java 2 Platform, Enterprise Edition)是Oracle公司提供的一个用于开发和部署...

    JdbcUtil.java

    一个已经封装了连接池(可以自定义连接池大小)的jdbc工具类,代码简单清晰,适合java初学者,以便更好更快的熟悉数据库操作。

Global site tag (gtag.js) - Google Analytics