注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

IOS & JAVA KEY

(iMilo)

 
 
 

日志

 
 
关于我

All the splendor in the world is not worth a good friend!! Hello my friend!!

网易考拉推荐

JDBC入门实例{JDBC工具类单例实现}  

2010-01-29 13:45:17|  分类: jdbc |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |

前提:数据库:MYSQL5.0----DATABASE:jdbc----TABLE:google

1.创建数据库(jdbc): CREATE DATABASE jdbc;

2.创建数据库表(google):CREATE TABLE google

(

    id int(11) not null auto_increment,

    content varchar(50) NOT NULL,

    time varchar(10) DEFAULT NULL,

   PRIMARY KEY (id)

);

3.插入数据: INSERT INTO google(content, time) VALUES('Struts2', '2010-01-29');

                       INSERT INTO google(content, time) VALUES('Struts2 入门', '2010-01-29');

                       ......

4.建立Java工程(工程名:JDBC)首先导入MYSQL驱动jar包:

A:编写单例工具类 JDBCSingle.java

代码如下:

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

/**
 * 2010-01-29
 * @author TEANA
 *
 */
public final class JDBCSingle
{
 private String url = "jdbc:mysql://localhost:3306/test";
 private String user = "root";
 private String password = "root";
 
 private static JDBCSingle instance = null;
 //私有构造方法
 private JDBCSingle()
 {
  
 }
 //静态代码块 -- 注册驱动
 static
 {
  try
  {
   Class.forName("com.mysql.jdbc.Driver");
  }
  catch (ClassNotFoundException e)
  {
   e.printStackTrace();
  }
 }
 /**
  * @return 获取唯一实例
  */
 public static JDBCSingle getInstance()
 {
  if(instance == null)     //延时加载实现,考虑同步情况【也可在方法名前用synchronized修饰,但是比较占资源】
  {
   synchronized (JDBCSingle.class)
   {
    if(instance == null)
     instance = new JDBCSingle();
   }
  }

  return instance;
 }
 /**
  * 获得连接
  * @return
  */
 public Connection getConnection()
 {
  Connection conn = null;
  try
  {
   conn = DriverManager.getConnection(url, user, password);
  }
  catch (SQLException e)
  {
   e.printStackTrace();
  }
  return conn;
 }
 /**
  * 释放资源
  * @param rs 结果集
  * @param st
  * @param conn 连接
  */
 public void free(ResultSet rs, Statement st, Connection conn)
 {
  try
  {
   if(rs != null)
    rs.close();
  }
  catch (SQLException e)
  {
   e.printStackTrace();
  }
  finally
  {
   try
   {
    if(st != null)
     st.close();
   }
   catch (SQLException e)
   {
    e.printStackTrace();
   }
   finally
   {
    try
    {
     if(conn != null)
      conn.close();
    }
    catch (SQLException e)
    {
     e.printStackTrace();
    }
   }
  }
 } 
}

B:测试实例Base.java

代码如下:

import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
/**
 * 2010-01-29单例JDBC
 * @author TEANA
 *
 */
public class Base
{

 public static void main(String[] args)
 {
  template();
 }
 
 public static void template()
 {
  Connection conn = null;
  Statement st = null;
  ResultSet rs = null;
  
  try
  {
   conn = JDBCSingle.getInstance().getConnection();
   st = conn.createStatement();
   rs = st.executeQuery("SELECT * FROM google");
   while(rs.next())
   {
    System.out.println(rs.getObject(1) + " \t" +
      rs.getObject(2) + " \t" +
      rs.getObject(3));
   }
  }
  catch (SQLException e)
  {
   e.printStackTrace();
  }
  finally
  {
   JDBCSingle.getInstance().free(rs, st, conn);
  }
 }
}

  评论这张
 
阅读(1332)| 评论(0)
推荐 转载

历史上的今天

在LOFTER的更多文章

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017