JAVA 数据库连接使用总结

一: 加载驱动

准备工作:

1.1要下载JDBC驱动包,并加到自己的JAVA Project JAVA Build Path,

1.2 要注意把Source attachment:否则在程序运行时会提示找不到Source.


要区分数据库类型如下:

//Sql Server2005/2008数据库   

Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");


二:连接数据库

 //Sql Server7.0/2000/2005/2008数据库 

  String url="jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=pubs"; 

  String user="sa"; 

  String password=""; 

  Connection conn=DriverManager.getConnection(url,user,password);

三:执行

 //建立Statement对象 

 Statement stmt=conn.createStatement(); 

 //建立PreparedStatement对象 

 String sql="select * from user where userName=? and password=?"; 

  PreparedStatement pstmt=Conn.prepareStatement(sql); 

  pstmt.setString(1,"admin"); 

  pstmt.setString(2,"liubin"); 

做好准备工作之后就可以执行sql语句了,执行sql语句:

String sql="select * from users"; 

ResultSet rs=stmt.executeQuery(sql); 

//执行动态SQL查询 

ResultSet rs=pstmt.executeQuery(); 

//执行insert update delete等语句,先定义sql 

stmt.executeUpdate(sql);

四:处理结果集  

 访问结果记录集ResultSet对象。例如: 

  while(rs.next) 

  { 

  out.println("你的第一个字段内容为:"+rs.getString("Name")); 

  out.println("你的第二个字段内容为:"+rs.getString(2)); 

  } 

五: 关闭数据库 

 依次将ResultSetStatementPreparedStatementConnection对象关     闭,释放所占用的资源.例如

  rs.close(); 

  stmt.clost(); 

  pstmt.close(); 

  con.close();

六:附加一sqlHelper 类源码,用于查询

DBHelp CLASS:

package MYCLASS;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;

//这里我们建立一个DBHelper类

public class DBHelper {
    String driver = "com.microsoft.sqlserver.jdbc.SQLServerDriver"; // 数据库驱动
    String url = "jdbc:sqlserver://localhost:1433;DatabaseName=MY";//
    Connection con = null;
    ResultSet rs = null;
    PreparedStatement ps;
    String user = "sa"; // 用户名
    String password = "sa12345";// 密码

    // 构造方法:连接数据库
    public DBHelper() {
        try {
            Class.forName(driver); // 加载数据库驱动
            con = DriverManager.getConnection(url, user, password);
        } catch (Exception e) {
            e.printStackTrace();
        }

    }

    // 此方法为获取数据库连接,此处以及后续文章中使用的都是MS SQL2005
    // 查询语句

    public ResultSet query(String sql, String[] paras) {
        try {
            ps = con.prepareStatement(sql);
            for (int i = 0; i < paras.length; i++) {
                ps.setString(i + 1, paras[i]);
            }

            rs = ps.executeQuery();
        } catch (Exception e) {
            e.printStackTrace();
        }

        return rs;
    }

    // 数据库更新的方法
    public boolean updExecute(String sql, String[] paras) {

        boolean b = true;
        try {
            // 加驱动com.microsoft.sqlserver.jdbc.SQLServerException

            ps = con.prepareStatement(sql);
            // 给 PARAS 幅值
            for (int i = 0; i < paras.length; i++) {
                ps.setString(i + 1, paras[i]);

            }
            // ps.execute();
            ps.executeUpdate();
            if (ps.executeUpdate() != 1) {
                b = false;
            }

        } catch (Exception e) {
            e.printStackTrace();
        } finally {
            // 关闭 数据库   finally 无论如何系统都执行 此段代码,
            this.myclosedb();
        }

        return b;
    }

    public void myclosedb() {
        try {
            if (rs != null)
                rs.close();
            if (ps != null)
                ps.close();
            if (con != null)
                con.close();
        } catch (Exception e) {
            e.printStackTrace();
        }
    }

}
测试用代码如下:

package MYCLASS;
import java.sql.ResultSet;
import java.sql.SQLException;

public class my02 {

    public static void main(String[] args) {
        DBHelper dbHelper =null;
        
        try {
            
            dbHelper = new DBHelper();    
             String sql = "select name from userpassword where userID = ?";
             String []paras = {"11"};
            ResultSet rs=  dbHelper.query(sql,paras);
            if (rs.next())
            {System.out.println(rs.getString(1)) ;};
            
        } catch (SQLException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
            System.out.println("connect DB failer");
        }
        finally{
            dbHelper.myclosedb();
        }

    }

    /**
     * Create the application.
     */
}



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值