Java JDBC连接三种数据库

来源:互联网 发布:淘宝如何运费设置 编辑:程序博客网 时间:2024/05/01 23:55


DBUtil类 用于从配置文件中加载数据库属性信息,获取连接和关闭连接。

import java.io.InputStream;import java.sql.Connection;import java.sql.DriverManager;import java.sql.PreparedStatement;import java.sql.ResultSet;import java.sql.SQLException;import java.sql.Statement;import java.util.Properties;/** * 这是一个工具类,用于得到连接和关闭连接 */public class DBUtil {private static Connection ct=null;//连接private static ResultSet rs=null;//结果private static PreparedStatement ps=null;//连接数据库参数private static String url = "";private static String drivername = "";private static String username = "";private static String password = "" ;//加载驱动,一次static{try {Properties properties=new Properties();InputStream is=DBUtil.class.getClassLoader().getResourceAsStream("dbInfo.properties");properties.load(is);//属性文件读取信息drivername=properties.getProperty("driver");username=properties.getProperty("username");password=properties.getProperty("password");url=properties.getProperty("url");} catch (Exception e) {e.printStackTrace();System.exit(-1);}}//得到连接public static  Connection getCon(){try {Class.forName(drivername);ct= DriverManager.getConnection(url, username, password);//从配置文件中读的} catch (Exception e) {e.printStackTrace();}return ct;//谁调用谁拿到Connection}//关闭资源函数public static void close(ResultSet rs,Statement ps,Connection ct){if(rs!=null){try{rs.close();}catch(Exception e){}rs=null;//使用垃圾回收}if(ps!=null){try{ps.close();}catch(SQLException e){e.printStackTrace();}ps=null;}if(ct!=null){try{ct.close();}catch(SQLException e){e.printStackTrace();}ct=null;}}}

dbInfo.properties文件(oracle数据库)

url=jdbc:oracle:thin:@172.0.0.1:1521:myoracle //改成自己数据库的username=scottdriver=oracle.jdbc.driver.OracleDriverpassword=123456

dbInfo.properties文件(mysql数据库)

url=jdbc\:mysql\://localhost\:3306/dbname?useUnicode\=true&characterEncoding\=utf8username=rootdriver=com.mysql.jdbc.Driverpassword=root

dbInfo.properties文件(sql server数据库)

url=jdbc:sqlserver://localhost;databaseName=dbname;username=sadriver=com.microsoft.jdbc.sqlserver.SQLServerDriverpassword=123456

SqlHelper类 用于完成对数据库crud操作 

import java.sql.Connection;import java.sql.PreparedStatement;import java.sql.ResultSet;import java.sql.ResultSetMetaData;import java.sql.SQLException;import java.sql.Statement;import java.util.ArrayList;//主要用于完成对数据库的crud操作public class SqlHelper {//定义需要的变量private static Connection ct=null;//连接private static ResultSet rs=null;//结果private static PreparedStatement ps=null;public ArrayList executeQuery(String sql,String []paras){ArrayList al=new ArrayList();try {ct=DBUtil.getCon();ps=ct.prepareStatement(sql);//给sql问号赋值for (int i = 0; i < paras.length; i++) {ps.setString(i+1, paras[i]);}rs=ps.executeQuery();//非常有用的 ResultSetMetaData rsmd=rs.getMetaData();//用法rs可以的到有多少列int columnNum=rsmd.getColumnCount();//循环从a1中取出数据封装到ArrayList中while(rs.next()){Object []objects=new Object[columnNum];for(int i=0;i<objects.length;i++){objects[i]=rs.getObject(i+1); //返回对象数组}al.add(objects);}return al;} catch (Exception e) {e.printStackTrace();throw new RuntimeException(e.getMessage());}finally{DBUtil.close(rs,ps,ct);}}public ResultSet executeQuery(String sqlstr) {Statement stmt = null;try{//得到连接ct=DBUtil.getCon();//ps=ct.prepareStatement(sqlstr);stmt = ct.createStatement();//创建结果集 rs = stmt.executeQuery(sqlstr); //将结果集返回return rs;}catch(SQLException e){System.out.print("错误");}return null;}}

应用实例

public class  Test{public static void main(String[] args) {SqlHelper sqlHelper=new SqlHelper();String sql="select *from stu";ArrayList al=sqlHelper.executeQuery(sql,null);ArrayList<Stu>stus=new ArrayList<Stu>();for(int i=0;i<al.size();i++){Object[] obj=(Object[])al.get(i);Stu stu=new Stu();stu.setId(Integer.parseInt(obj[0].toString()));stu.setName(obj[1].toString());stus.add(sight);}//从list中读for(Stu s:stus){System.out.println(s.getName());}}}



原创粉丝点击