一: 加载驱动
准备工作:
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));
}
五: 关闭数据库
依次将ResultSet、Statement、PreparedStatement、Connection对象关 闭,释放所占用的资源.例如:
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.
*/
}