`
taomujian
  • 浏览: 110888 次
  • 性别: Icon_minigender_1
  • 来自: 安徽-合肥
社区版块
存档分类
最新评论

JAVA链接数据库的两种方式

    博客分类:
  • J2EE
 
阅读更多

1.直接采用JDBC方式进行链接

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;


public class Test {
 //sql2005
    String driverClass="com.microsoft.sqlserver.jdbc.SQLServerDriver";//sql2000:com.microsoft.jdbc.sqlserver.SQLServerDriver
    String url="jdbc:sqlserver://localhost:1433;DatabaseName=bookstore";
    String user="sa";
    String password="sa";
    
    public Test(){
  try {
   Class.forName(driverClass);
  } catch (ClassNotFoundException e) {
   e.printStackTrace();
  }
    }
    
 public static void main(String[] args) {
  Test test = new Test();
        Connection conn=null;
        Statement stmt=null;
        ResultSet rs = null;
        try {
   conn=DriverManager.getConnection(test.url,test.user,test.password);
   stmt=conn.createStatement();
   rs = stmt.executeQuery("select * from bookinfo");
   while(rs.next()){
    System.out.println(rs.getString(2));
   }
  } catch (SQLException e) {
   e.printStackTrace();
  }finally{
   try {
    if(conn!=null){
     conn.close(); 
     conn = null;
    }
    if(stmt!=null){
     stmt.close();
     stmt = null;
    }
    if(rs!=null){
     rs.close();
     rs=null;
    }
   } catch (SQLException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
   }
  }
 }
}

 

 2.第二种采用JNDI的方式

找到 tomcat的安装目录 D:\Tomcat\apache-tomcat-7.0.16\conf ,打开其中的Server.xml

Tomcat 中配置文件如下:

 <Context path="/test" docBase="D:\WorkSpace\MyEclipse\WebStore\WebRoot" reloadable="true">
  <Resource name="jdbc/bookstore" auth="Container" type="javax.sql.DataSource"
     maxActive="100" maxIdle="30" maxWait="10000"
                          username="sa" password="sa" driverClassName="com.microsoft.sqlserver.jdbc.SQLServerDriver"
      url="jdbc:sqlserver://localhost:1433;DatabaseName=bookstore"/>
 </Context>

将该元素放到最后<Host></Host>元素内

JAVA代码:

package com.store.bean;

import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.ArrayList;
import java.util.Collection;
import java.util.Iterator;

import javax.naming.Context;
import javax.naming.InitialContext;
import javax.naming.NamingException;
import javax.sql.*;

public class BookDbBean {
	private DataSource ds = null;

	public BookDbBean() throws NamingException {
		Context ct = new InitialContext();
		ds = (DataSource) ct.lookup("java:comp/env/jdbc/bookstore");
	}

	public Connection getConnection() throws SQLException {
		return ds.getConnection();
	}

	protected void closeConnection(Connection conn) {
		if (conn != null) {
			try {
				conn.close();
				conn = null;
			} catch (SQLException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}
		}
	}

	protected void closeStatement(Statement stmt) {
		if (stmt != null) {
			try {
				stmt.close();
				stmt = null;
			} catch (SQLException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}

		}
	}

	protected void closePreparedStatement(PreparedStatement pstmt) {
		if (pstmt != null) {
			try {
				pstmt.close();
				pstmt = null;
			} catch (SQLException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}
		}
	}

	protected void closeResultSet(ResultSet rs) {
		if (rs != null) {
			try {
				rs.close();
				rs = null;
			} catch (SQLException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}
		}
	}

	public Collection<BookBean> getBooks() {
		Connection conn = null;
		Statement stmt = null;
		ResultSet rs = null;
		ArrayList<BookBean> bookList = new ArrayList<BookBean>();

		try {
			conn = getConnection();
			stmt = conn.createStatement();
			rs = stmt.executeQuery("select * from bookinfo");
			while (rs.next()) {
				BookBean book = new BookBean(rs.getInt(1), rs.getString(2),
						rs.getString(3), rs.getString(4), rs.getString(5),
						rs.getFloat(6), rs.getInt(7), rs.getString(8));
				bookList.add(book);
			}
		} catch (SQLException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		} finally {
			closeConnection(conn);
			closeStatement(stmt);
			closeResultSet(rs);
		}
		return bookList;
	}

	public BookBean getBook(int bookId) {
		Connection conn = null;
		PreparedStatement pstmt = null;
		ResultSet rs = null;
		BookBean book = null;
		try {
			conn = getConnection();
			pstmt = conn.prepareStatement("select * from bookinfo where id = ?");
			pstmt.setInt(1, bookId);
			rs = pstmt.executeQuery();
			
			if(rs.next()){
				 book = new BookBean(rs.getInt(1), rs.getString(2),
							rs.getString(3), rs.getString(4), rs.getString(5),
							rs.getFloat(6), rs.getInt(7), rs.getString(8));
			}
		} catch (SQLException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}finally{
			closeConnection(conn);
			closePreparedStatement(pstmt);
			closeResultSet(rs);
		}
		return book;
	}
	
	public Collection<BookBean> searchBook(String keyWord){
		Connection conn = null;
		Statement stmt = null;
		ResultSet rs = null;
		ArrayList<BookBean> bookList = new ArrayList<BookBean>();
		try {
			conn = getConnection();
			stmt = conn.createStatement();
			rs = stmt.executeQuery("select * from bookinfo where title like '%"+keyWord+"%'");
			while(rs.next()){
				BookBean book = new BookBean(rs.getInt(1), rs.getString(2),
						rs.getString(3), rs.getString(4), rs.getString(5),
						rs.getFloat(6), rs.getInt(7), rs.getString(8));
				bookList.add(book);
			}
			
		} catch (SQLException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}finally{
			closeConnection(conn);
			closeStatement(stmt);
			closeResultSet(rs);
		}
		return bookList;
	}
	
	public boolean isAmountEnough(int bookId,int num){
		Connection conn = null;
		Statement stmt = null;
		ResultSet rs = null;
		boolean bEnough = false;
		
		try {
			conn = getConnection();
			stmt = conn.createStatement();
			rs = stmt.executeQuery("select amount from bookinfo where id = "+bookId);
			if(rs.next()){
				int amount = rs.getInt(1);
				bEnough = amount>=num?true:false;
			}
		} catch (SQLException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}finally{
			closeConnection(conn);
			closeStatement(stmt);
			closeResultSet(rs);
		}
		return bEnough;
	}
	public synchronized void buyBooks(CartBean  cart){
		Connection conn = null;
		PreparedStatement pstmt = null;
		Iterator<CartItemBean> it = cart.getItems().iterator();

		try {
			conn = getConnection();
			pstmt = conn.prepareStatement("update bookinfo set amount = amount-? where id=?");
			
			while(it.hasNext()){
				CartItemBean cartItem = it.next();
				BookBean book = cartItem.getBook();
				pstmt.setInt(1, cartItem.getNum());
				pstmt.setInt(2, book.getId());
				
				pstmt.addBatch();
			}
			pstmt.executeBatch();

		} catch (SQLException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}finally{
			closeConnection(conn);
			closePreparedStatement(pstmt);
		}
		
	}
	
}

 

 

分享到:
评论

相关推荐

    java连接数据库的两种方式

    java连接数据库,jdbc-odbc桥连接和jdbc直接连接!

    Java连接Oracle数据库的各种方法

    Java连接Oracle数据库主要依赖于两种方法:JDBC和SQLJ。这两种方法都是Oracle8i及其后续版本中为Java开发者提供的数据库交互方式。 JDBC(Java Database Connectivity)是一种标准的Java API,它允许Java应用程序...

    Java jdbc数据库连接池总结

    JDBC 提供两种 API,分别是面向开发人员的 API 和面向底层的 JDBC 驱动程序 API,底层主要通过直接的 JDBC 驱动和 JDBC-ODBC 桥驱动实现与数据库的连接。一般来说,Java 应用程序访问数据库的过程是:装载数据库驱动...

    JAVA与数据库连接

    有 Thin 和 Thick两种模式,其中Thin驱动不依赖于Oracle客户端软件,而Thick驱动则需要。同样,我们使用`DriverManager.getConnection()`来建立连接,参数包括服务名、数据库端口号、SID和服务实例名。 3. **与...

    java 连接数据库代码大全

    ### Java连接数据库代码大全 #### 一、概述 在Java编程中,经常需要与数据库进行交互,例如查询、更新数据等操作。为了实现这一目的,Java提供了多种方式来连接并操作不同的数据库。本文将详细介绍如何使用Java...

    java各种数据库jar包

    Java提供了一种标准的方式来与各种数据库进行交互,即使用Java Database Connectivity (JDBC) API。JDBC API允许Java程序通过Java代码来执行SQL语句,实现数据的增删查改。本资源包含的几个jar包正是用于连接不同...

    java通过JDBC连接数据库的两种方式

    Java 通过 JDBC 连接数据库的两种方式 Java 通过 JDBC 连接数据库有两种方式:混合验证模式和 Windows 身份验证模式。这两种方式都是使用 JDBC 连接 SQL Server 数据库的常见方法。 一、混合验证模式 混合验证...

    java连接数据库方法

    本文将详细介绍两种常用的Java连接数据库的方法:JDBC-ODBC桥接方式和数据驱动方式,并以MySQL数据库为例进行具体说明。 ### 一、JDBC-ODBC桥接方式 JDBC-ODBC桥接方式是一种早期的Java数据库连接方式,它通过JDBC...

    java连接oracle数据库jar包

    Java连接Oracle数据库主要依赖于JDBC(Java Database Connectivity)技术,这是Java平台中用于与各种数据库进行交互的一套标准API。Oracle公司提供了JDBC驱动,使得Java程序能够方便地访问Oracle数据库。在Java中...

    JAVA三种连接数据库的方法

    总结,Java连接数据库有多种方式,JDBC是最基础的,适用于所有Java环境;JNDI适合Java EE应用服务器环境,便于资源管理和性能优化;ORM框架则提供了更高层次的抽象,简化了数据库操作,尤其适合复杂的业务场景。...

    Java数据库连接Java数据库连接.ppt

    Java数据库连接是 Java 编程语言中连接数据库的方式。Java 数据库连接可以分为两个部分:数据库连接和数据库访问。 数据库连接是指 Java 程序与数据库之间的连接,通过 JDBC(Java DataBase Connection)API 实现。...

    java连接数据库驱动程序大全

    在Java编程语言中,连接数据库是一项基础且至关重要的任务。Java提供了一种统一的方式来与各种数据库进行交互,这就是Java Database Connectivity (JDBC) API。JDBC允许Java应用程序通过使用驱动程序来连接到不同的...

    Java连接数据库的适配器

    本篇文章将详细讲解如何使用Java连接MySQL、Oracle、DerBy、SQLite和MariaDB这五种常见数据库,并涉及两种连接方式:SQL语句直接连接和通过连接池管理连接。 首先,我们来看SQL语句直接连接数据库的方式。这种方式...

    java网络连接数据库java网络连接数据库

    Java 网络连接数据库 Java 网络连接数据库是指使用 Java 语言连接数据库的过程。下面是关于 Java 网络连接数据库的一些知识点: 一、通过构造方法连接服务器 在 Java 中,我们可以通过六个重载构造函数以不同的...

    java连接数据库时所用到的JAR

    在Java编程中,连接数据库是常见的任务,这通常涉及到使用特定的JAR(Java Archive)文件来实现数据库的连接和操作。以下将详细介绍标题和描述中提到的几个关键知识点: 1. **Oracle连接池**: Oracle数据库是全球...

    Java连接数据库所需驱动

    在Java编程中,连接数据库是常见且至关重要的任务,尤其是对于开发基于Web或桌面的应用程序。Java使用Java Database Connectivity(JDBC)API来实现与各种数据库的交互。本篇文章将详细探讨Java连接SQL Server数据库...

    java连接数据库课程设计(1).doc

    Java连接数据库是Java编程中的一项基础技能,尤其在开发企业级应用时不可或缺。在这个课程设计中,学生通过三个实验——图形界面编程、抽象类与接口的理解以及数据库操作,加深了对J2EE及Java程序设计的理解。 实验...

    java连接数据库方法总结

    通过以上两种方法,我们可以看到,无论是使用JDBC-ODBC桥还是直接使用JDBC驱动,都可以有效地实现Java应用程序与数据库之间的通信。然而,在现代应用开发中,推荐使用直接的数据驱动方法,因为它提供了更好的性能和...

    JAVA连接sql2000数据库两种连接字符串

    在本案例中,标题指出的"JAVA连接sql2000数据库两种连接字符串"指的是两种不同的方法来建立Java程序与SQL Server 2000之间的连接。以下是这两个连接字符串方法的详细说明,以及解决连接问题的建议。 1. **使用JDBC-...

    java怎样连接数据库.ppt

    将java连接数据库的两种方法 有图解 详细说明

Global site tag (gtag.js) - Google Analytics