java连接mysql数据库和Oracle数据库

mysql部分转于https://www.cnblogs.com/GarfieldEr007/p/5746137.html

 JAVA连接MySQL稍微繁琐,所以先写一个类用来打开或关闭数据库:

DBHelper.java(在这个类最后释放连接资源的时候,要加变量=null,第一是为了不然其他用户使用这个资源,第二是为了方便java的垃圾回收,需要改进,在我下面oracle的例子中就体现出来了


    package com.hu.demo;  
      
    import java.sql.Connection;  
    import java.sql.DriverManager;  
    import java.sql.PreparedStatement;  
    import java.sql.SQLException;  
      
    public class DBHelper {  
        public static final String url = "jdbc:mysql://127.0.0.1/student";  
        public static final String name = "com.mysql.jdbc.Driver";  
        public static final String user = "root";  
        public static final String password = "root";  
      
        public Connection conn = null;  
        public PreparedStatement pst = null;  
      
        public DBHelper(String sql) {  
            try {  
                Class.forName(name);//指定连接类型  
                conn = DriverManager.getConnection(url, user, password);//获取连接  
                pst = conn.prepareStatement(sql);//准备执行语句  
            } catch (Exception e) {  
                e.printStackTrace();  
            }  
        }  
      
        public void close() {  
            try {  
                this.conn.close();  
                this.pst.close();  
            } catch (SQLException e) {  
                e.printStackTrace();  
            }  
        }  
    }  

再写一个Demo.java来执行相关查询操作

Demo.java(在这个类最后释放连接资源的时候,要加变量=null,第一是为了不然其他用户使用这个资源,第二是为了方便java的垃圾回收,需要改进,在我下面oracle的例子中就体现出来了


    package com.hu.demo;  
      
    import java.sql.ResultSet;  
    import java.sql.SQLException;  
      
    public class Demo {  
      
        static String sql = null;  
        static DBHelper db1 = null;  
        static ResultSet ret = null;  
      
        public static void main(String[] args) {  
            sql = "select *from stuinfo";//SQL语句  
            db1 = new DBHelper(sql);//创建DBHelper对象  
      
            try {  
                ret = db1.pst.executeQuery();//执行语句,得到结果集  
                while (ret.next()) {  
                    String uid = ret.getString(1);  
                    String ufname = ret.getString(2);  
                    String ulname = ret.getString(3);  
                    String udate = ret.getString(4);  
                    System.out.println(uid + "\t" + ufname + "\t" + ulname + "\t" + udate );  
                }//显示数据  
                ret.close();  
                db1.close();//关闭连接  
            } catch (SQLException e) {  
                e.printStackTrace();  
            }  
        }  
      
    }  

对应的oracle代码为:

JDBCUtils.java

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

public class JDBCUtils {

	private static String driver="oracle.jdbc.OracleDriver";
	private static String url="jdbc:oracle:thin:@localhost:1521/orcl";
	private static String user="scott";
	private static String password="098879";
	
	static{
		//注册驱动
		try {
			Class.forName(driver);
		} catch (ClassNotFoundException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
	}
	
	public static Connection getConnection(){
		try {
			return DriverManager.getConnection(url,user,password);
		} catch (SQLException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		return null;
	}
	
	
	public static void release(Connection conn,Statement st,ResultSet rs){
		if(rs!=null){
			try {
				rs.close();
			} catch (SQLException e) {
				e.printStackTrace();
			}finally{
				rs=null;//Java GC:java的GC不受代码的控制
			}
		}
		
		if(st!=null){
			try{
				st.close();
			}catch(Exception e){
				e.printStackTrace();
			}finally{
				st=null;
			}
		}
		
		if(conn!=null){
			try{
				conn.close();
			}catch(Exception e){
				e.printStackTrace();
			}finally{
				conn=null;
			}
		}
	}
}

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值