jdbc是java中的数据库连接技术,功能非常强大。
数据库访问过程
1.加载数据库驱动
要通过jdbc去访问某数据库必须有相应的JDBC driver 它往往由数据库厂商提供,是链接jdbc API 和具体数据库之间的桥梁。不同的厂商提供的数据库连接驱动不一样,我们需要下载特定的驱动并安装。
java中调用驱动的代码一般为:
Class.forName("String driver"); //不同的数据库驱动,driver值也不同
例如:加载mysql驱动:
Class.forName("com.mysql.jdbc.Driver");
常见的数据库驱动字符串
数据库 | 驱动字符串 |
DBMS | Driver Class |
Access | Sun.jdbc.odbc.JdbcOdbcDriver |
Mysql | com.mysql.jdbc.Driver |
Oracle | oracle.jdbc.driver.OracleDriver |
SQL Server 2000 | com.microsoft.jdbc.sqlserver.SQLServerDriver |
SQL Server 2005 | com.microsoft.sqlserver.jdbc.SQLServerDriver |
2连接数据库
数据库加载完成后,就可以连接数据库,创建数据库连接语句如下:
Connection conn = DriverManager.getConnection(url,username,password);
DriverManage类是jdbc的管理层,作用于用户和驱动程序之间。通常调用DriverManage.getConnection方法进行数据库连接
url表示连接数据库的字符串;
username表示数据库的用户名;
password表示用户的密码;
常见的数据库连接字符串如下
数据库 | 连接字符串 |
Access | "jdbc:odbc:ODBC 数据库名称" |
Mysql | "jdbc:mysql://主机域名或ip地址:3306/数据库名" |
Oracle | “jdbc:oracle:thin:@主机域名或ip:1521:数据库名” |
sql server2000 | “jdbc:microsoft:sqlserver://主机域名或ip:1433;databaseName=数据库名” |
sql server2005 | “jdbc:sqlserver://主机域名或ip:1434;databaseName=数据库名” |
Connection
Connection类代表程序与数据库的链接,并拥有创建数据库操作对象的方法,已完成基本的数据库操作。
同时为数据库事物处理提供提交和回滚的方法。
3.创建数据库访问对象,执行sql语句
访问数据库的对象主要有三种:Statement PreparedStaatement CallableStatement
Statement
使用Connection 对象的createStatement()方法来创建该对象。主要用于执行不带参数的sql语句,提交的sql语句可以是select,insert,update,delete语句 例如:
Statement st = conn.createStatement();
ResultSet rs = st.executeQuery("select * from A");
如果调用的是 insert,update,delete方法,不需要返回查询结果的应该采用 executeUpdate()方法,返回操作影响的行数,类型为int
PreparedStatement
如果要向数据库服务器传递带参数的sql 则需要用PreparedStatement对象了。例如:
String sql = "insert into user(name,passwd) values(?,?)";
PreparedStatement psm = conn.PrepareStatment(sql);
psm.setString(1,"wang");
psm.setString(2,"123");
psm.execute();
4.处理结果集
结果集ResultSet对象是jdbc中比较重要的一个对象,查询操作将数据作为ResultSet对象返回,ResultSet包含任意数量的命名列,可以按名称访问这些列,也可以按列号访问。下面是常见的访问并显示结果集的代码:
ResultSet rs = st.executeQuery("select name,password from user");
while(rs.next()){
rs.getString(1);
rs.getString(2);
}
5.一个完整的基本sql查询方法
improt java.sql.*;
public class Dao{
private static String url ="数据库连接字符串";
private static String username="用户名";
private static String passwd="密码";
private Connection conn = null;
private Statement st = null;
private ResultSet rs = null;
public Dao(){
try{
Class.forName("数据库驱动");
}catch(Exception e){
System.out.println("连接出错");
}
}
public void Query(){
try{
conn = DriverManage.getConnection(url,username,passwd);
st = conn.createStatement();
rs = st.executeQuery("select * from user");
while(rs.next()){
System.out.println(rs.getString(1));
System.out.println(rs.getString(2));
}
}catch(Exception e){
}finally{
rs.close();
st.close();
conn.close();
}
}
}
基本的jdbc查询就完成了。
以上如果有错误单词代码还请见谅!