天天看点

java连接数据库的几种方式

   现在的网站挂在网上都不是静态的死板的,都和后台有着或多或少的联系,特别是信息管理系统当然这绝对少不了连接数据库.每个人的编程思想或者说编程的思路不一样当然连接数据库的方式也会不一样.我总结了几个java连接数据库的方式,只是做为参考希望能给你派上用场.

   JDBC是java数据库连接技术的简称,它提供了连接各种数据库的能力,这便使程序的可维护性和可扩展性大大的提高了.JDBC连接数据库常见的驱动方式有两种,一种是jdbc-odbc即桥连另外一种是纯java驱动.一般在做java开发的时候用第二种.so前一种我就不说了,纯java驱动方式连接步骤如下:

      1.先把一个jdbc的jar包导入到项目(用MyEclipse开发)的lib中.

      2.代码如下:

                 import java.sql.*;

/**

* 连接数据库帮助类

* @author Administrator

*

*/

public class BaseDao {

private static final String DRIVER="com.microsoft.sqlserver.jdbc.SQLServerDriver";

private static final String URL = "jdbc:sqlserver://localhost:1433;DatabaseName=LibraryManageSystem";

private static final String USERNAME="sa";

private static final String PASSWORD="sa";

/**

* 连接数据库

* @return 数据库连接对象

* @throws ClassNotFoundException

* @throws SQLException

*/

public Connection getConn()throws ClassNotFoundException,SQLException{

Class.forName(DRIVER);

Connection conn = DriverManager.getConnection(URL,USERNAME,PASSWORD);

return conn;

}

/**

* 释放资源

* @param conn

* @param pstmt

* @param rs

* @throws SQLException

*/

public void closeAll(Connection conn,PreparedStatement pstmt,ResultSet rs)throws SQLException{

if(rs!=null){

rs.close();

}

if(pstmt!=null){

pstmt.close();

}

if(conn!=null){

conn.close();

}

}

/**

* 执行SQL语句,可以进行增、删、改的操作

* @param sql

* @return 影响条数

* @throws ClassNotFoundException

* @throws SQLException

*/

public int executeSQL(String sql)throws ClassNotFoundException,SQLException{

Connection conn = this.getConn();

PreparedStatement pstmt = conn.prepareStatement(sql);

int number = pstmt.executeUpdate();

this.closeAll(conn, pstmt, null);

return number;

}

}

从代码知道首先吧jdbc驱动类装载java虚拟机中,即Class.forName(DRIVER);其次加载驱动并建立于数据库的连接Connection conn = DriverManager.getConnection(URL,USERNAME,PASSWORD);;然后发送SQL语句并的到结果集.之后处理结果,最后要关闭数据库的连接,释放资源.当然我说的这样连接数据库的方式使用的软件是sql和MyEclipse.

      使用配置文件来连接数据库,当然这样的连接需要进行一些配置.其实这样的连接用专业术语来说就是连接池,连接池是负责分配管理和释放数据库连接.它允许用用程序重复使用一个现有的数据库连接不再重复建立连接.释放空闲时间超过最大空闲时间的数据库连接以避免因为没有释放数据库而引起的数据库遗漏.

      连接池的创建分为以下几个步骤:1.配置context.xml文件  这个文件是服务器(指tomcat)的一个conf文件夹中,拷贝出来放入项目的lib文件夹中,具体配置如下:

<Resource name="jdbc/book" auth="Container" type="javax.sql.DataSource"

maxActive="100" maxIdle="20" maxWait="100" username="sa" password="sa"

driverClassName="com.microsoft.sqlserver.jdbc.SQLServerDriver"

url="jdbc:sqlserver://localhost:1433;dataBaseName=book"

/>在config.xml文件中加入Resource标签,然后对数据库信息进行配置,当然这个数据库指的也是sqlserver有疑问可以qq757966892联系

        之后把数据库的驱动包,这里指的是sql2005的包放入服务器的lib中,这样以后如果在你自己的机子上都不用在重新导入这个包了.

        然后就是从MyEclipse中取得这样的连接从而对数据库进行一些操作具体代码如下:

    package web.login.dao;

import java.sql.Connection;

import java.sql.PreparedStatement;

import java.sql.ResultSet;

import javax.naming.Context;

import javax.naming.InitialContext;

import javax.sql.DataSource;

public class BaseDao {

protected Connection conn;

protected PreparedStatement ps;

protected ResultSet rs;

protected String sql;

public Connection getConn(){

try {

Context context=new InitialContext();

DataSource ds=(DataSource)context.lookup("java:comp/env/jdbc/user");

return ds.getConnection();

} catch (Exception e) {

e.printStackTrace();

return null;

}

}

public void closeAll(Connection conn,PreparedStatement ps,ResultSet rs){

try {

if(rs!=null){

rs.close();

rs=null;

}

if(ps!=null){

ps.close();

ps=null;

}

if(conn!=null){

conn.close();

conn=null;

}

} catch (Exception e) {

e.printStackTrace();

}

}

}

之后便可以建立业务类从而对数据库进行操作.

            除此之外当使用java的3大框架技术的时候,使用hibernate就没有这么麻烦了,直接使用它里面的一些封装好的方法就可以了,有些朋友会问那干嘛还要前面说的连接数据库的技术了.我要说的是如果你对数据库连接的基本机制都不清楚又怎么能解决更为复杂的问题了.当然如果你有更加好的意见加qq757966892。