欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

JDBC链接数据库的几个步骤

程序员文章站 2024-03-04 19:52:30
此文列出了jdbc链接数据库的4个步骤,供大家参考下: jdbc:java访问数据库的解决方案。 几个步骤:1.加载驱动类;      2.与数据库建立连接;   ...

此文列出了jdbc链接数据库的4个步骤,供大家参考下:

jdbc:java访问数据库的解决方案。

几个步骤:1.加载驱动类;

     2.与数据库建立连接;

             3.执行sql语句

       4.处理结果集

       5.关闭连接

1. 第一步:加载驱动类:

  需要注意:不同的数据库,参照的字符串不同,oracle的连接为:class.forname("oracle.jdbc.driver.oracledriver"); 这一步执行后,程序可能会抛出: classnotfoundexception,原因一般有:

a. 数据库的驱动jar包没有导入到环境变量中

b. class.forname中的字符串拼写不正确

2. 第二步:通过drivermanager与数据库建立连接:

其静态方法getconnection用来获取连接。通常需要传入三个参数

参数1:数据库的地址及端口(不同数据库字符串内容不相同)

oracle的地址:jdbc:oracle:thin:@host:port:sid

参数2:数据库的用户名

参数3:数据库对应用户名的密码

connection conn = drivermanager.getconnect
("jdbc:oracle:thin:@host:port:oracle","user", "psd");

3.第三步:java.sql.statement 执行sql语句并获取结果

statement state = conn.createstatement();

string sql="/*这里面是sql语句*/  ";

statement针对不同的sql语句提供了不同的执行方法:

resultset executequery(string sql)

  * 该方法专门用来执行dql语句,返回的resultset表示查询出来的结果集

int executeupdate(string sql)
  * 该方法专门用来执行dml语句,返回的数字表示执行该语句影响了表中多少条数据

boolean execute(string sql)
  * 该方法理论上什么语句都可以执行了,但是由于dql,dml都有专门的方法执行了,所以该方法通常用来执行ddl语句

resultset rs = state.executequery(sql);
输出查询结果:while(rs.next())
        {  输出语句  }
resultset提供用于遍历结果集的方法:

boolean next()

  *该方法有两个作用,首先当我们查询出结果集后rs的指针指向第一条数据之上,所以我们需要先调用一次next()使其指针移动到第一条数据上并表示该条数据。 
第二个作用是看返回值,若指针向下移动后,发现没有数据了,会返回false,若有则返回true,所以我们只有在该方法返回true的情况下才获取当前记录的各个字段对应的值rs还提供了若干个getxxx(string fieldname)方法:

  *这一系列方法是用来获取rs表示的当前记录中给定字段对应的值。不同的字段由于类型不同需要调用相对应的方法

第4步:关闭连接,写在finally块中

finally{
if(conn!=null){
try {
conn.close();
} catch (sqlexception e) {
e.printstacktrace();
}
}
}

将数据库的连接放在一个工具类里面,达到重用的效果

由于访问数据库是经常要用到的操作,所以在工程中,通常编写一个访问数据库的工具类,此后所有访问数据库的操作,都从工具类中获取连接,实现工具类的两种方式:

1.直接把数据配置写在工具类dbutil中

2.把数据库配置写在一个properties属性文件里,工具类读入属性文件,逐行获取数据库参数(一般使用第二种)

若使用第一种方法,在后期需要修改所使用的数据库或者说修改host、端口、数据库连接名、密码等等时,就需要修改源代码里面的数据,不便于系统的维护,故一般使用第二种方法数据库连接工具类dbutil.java以及连接池的主要步骤:

properties prop = new properties();
prop.load(new fileinputstream("config.properties"));
//根据配置项初始化
string drivername = prop.getproperty("drivername");
string url = prop.getproperty("url");
string username = prop.getproperty("username");
string password = prop.getproperty("password");
//最大连接数
int maxactive = integer.parseint(prop.getproperty("maxactive"));
//最大等待时间
int maxwait = integer.parseint(prop.getproperty("maxwait"));
//初始化连接池
cp = new basicdatasource();
//相当与是class.forname()中的内容
cp.setdriverclassname(drivername);
cp.seturl(url);
cp.setusername(username);
cp.setpassword(password);
cp.setmaxactive(maxactive);
cp.setmaxwait(maxwait);
public static connection getconnection() throws exception{
return cp.getconnection();
}
以上内容是针对jdbc链接数据库的步骤做讲解,希望能够帮助到大家!