Java JDBC连接三种数据库

来源:互联网 发布:java的stringbuffer 编辑:程序博客网 时间:2024/05/02 01:20
DBUtil类 用于从配置文件中加载数据库属性信息,获取连接和关闭连接。

  [html]

  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;

  }

  }

  }

  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数据库)

  [plain]

  url=jdbc:oracle:thin:@172.0.0.1:1521:myoracle //改成自己数据库的

  username=scott

  driver=oracle.jdbc.driver.OracleDriver

  password=123456

  url=jdbc:oracle:thin:@172.0.0.1:1521:myoracle //改成自己数据库的

  username=scott

  driver=oracle.jdbc.driver.OracleDriver

  password=123456

  dbInfo.properties文件(mysql数据库)

  [plain]

  url=jdbc\:mysql\://localhost\:3306/dbname?useUnicode\=true&characterEncoding\=utf8

  username=root

  driver=com.mysql.jdbc.Driver

  password=root

  url=jdbc\:mysql\://localhost\:3306/dbname?useUnicode\=true&characterEncoding\=utf8

  username=root

  driver=com.mysql.jdbc.Driver

  password=root

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

  [plain]

  url=jdbc:sqlserver://localhost;databaseName=dbname;

  username=sa

  driver=com.microsoft.jdbc.sqlserver.SQLServerDriver

  password=123456

  url=jdbc:sqlserver://localhost;databaseName=dbname;

  username=sa

  driver=com.microsoft.jdbc.sqlserver.SQLServerDriver

  password=123456

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

  [java]

  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;

  }

  }

  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;

  }

  }

  应用实例

  [java]

  public class  Test

  {

  <SPAN style="WHITE-SPACE: pre"> </SPAN>public static void main(String[] args)

  <SPAN style="WHITE-SPACE: pre"> </SPAN>{

  <SPAN style="WHITE-SPACE: pre">     </SPAN>SqlHelper sqlHelper=new SqlHelper();

  <SPAN style="WHITE-SPACE: pre">     </SPAN>String sql="select *from stu";

  <SPAN style="WHITE-SPACE: pre">     </SPAN>ArrayList al=sqlHelper.executeQuery(sql,null);

  <SPAN style="WHITE-SPACE: pre">     </SPAN>ArrayList<Stu>stus=new ArrayList<Stu>();

  <SPAN style="WHITE-SPACE: pre">     </SPAN>for(int i=0;i<al.size();i++)

  <SPAN style="WHITE-SPACE: pre">     </SPAN>{

  <SPAN style="WHITE-SPACE: pre">         </SPAN>Object[] obj=(Object[])al.get(i);

  <SPAN style="WHITE-SPACE: pre">         </SPAN>Stu stu=new Stu();

  <SPAN style="WHITE-SPACE: pre">         </SPAN>stu.setId(Integer.parseInt(obj[0].toString()));

  <SPAN style="WHITE-SPACE: pre">         </SPAN>stu.setName(obj[1].toString());

  <SPAN style="WHITE-SPACE: pre">         </SPAN>stus.add(sight);

  <SPAN style="WHITE-SPACE: pre">     </SPAN>}

  <SPAN style="WHITE-SPACE: pre">     </SPAN>//从list中读

  <SPAN style="WHITE-SPACE: pre">     </SPAN>for(Stu s:stus){

  <SPAN style="WHITE-SPACE: pre">         </SPAN>System.out.println(s.getName());

  <SPAN style="WHITE-SPACE: pre">     </SPAN>}

  <SPAN style="WHITE-SPACE: pre"> </SPAN>}

  }

  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());

  }

  }

  }

 

 

原创粉丝点击