在Eclipse中编写jsp网页,引用数据库,并使用连接池

在网页编写中,会经常需要用到数据库,我尝试了两种数据库的引用,一种是mysql,一种是sqilte,一开始我使用的是mysql,后来觉得每次移植需要重新搭建mysql的环境太麻烦,而我的数据量又不大,所以又改到sqlite中。

mysql的使用

先放一个mysql的jar文件的下载链接,传送门 : 主要代码:

import java.io.File; 
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.ResultSetMetaData;
import java.sql.SQLException;
//首先导入一些可能会用到的sql相关的功能包

public class BaseDao {
public synchronized static Connection getConnection() {
	//存放Connection对象的数组,数组作为连接池
	static ArrayList<Connection>list=new ArrayList<Connection>();
	//定义一个连接,并初始化
	Connection con=null; 
	//mysql打开数据库文件
	public static final String DBDRIVER="org.gjt.mm.mysql.Driver";
	final String DBURL="jdbc:mysql://localhost:3306/ybwtest?serverTimezone=UTC";
	final String DBUSER="root";
	final String DBPASS="67936";
	
	//如果连接池中有连接对象,则移除
	  if(list.size()>0) {
   		return list.remove(0);
  	  }
  	  //如果连接池没有连接对象则创建连接放到连接池中
  	    else {
   		for(int i=0;i<5;i++) {
			 //创建连接
   			 try {
   			 con=DriverManager.getConnection(DBURL,DBUSER,DBPASS);
     			 list.add(con);
   			 }catch (SQLException e) {
    				 // TODO: handle exception
    				 e.printStackTrace();
    				}
   			}
 		 }
 		 return list.remove(0);
 	}

以上就是主要的代码,下面附上路径检查的代码:

public static void checkDirExists(File file) {
	if (file.exists()) {
		if (!file.isDirectory()){
			System.out.println("同名文件存在, 不能创建");
		}
	}else{
		System.out.println("数据库目录不存在,创建目录");
		file.mkdir();
		}
	}

sqlite的使用

sqlite用到的jar包的下载链接,传送门: 主要代码与mysql区别不大,主要是修改以下几个地方:

public static final String DBDRIVER="org.gjt.mm.mysql.Driver";
 final String DBURL="jdbc:mysql://localhost:3306/ybwtest?serverTimezone=UTC";
 final String DBUSER="root";
 final String DBPASS="66666";
 
 修改为以下内容:
 
  //连接sqlite数据库,后面为什么是org.sqlite.JDBC,这个你别问,反正别乱改,就这么写
 final String DBDRIVER = "org.sqlite.JDBC";
 //您想要存放数据库的位置。这个路径必须存在,不然会报错,我在下一步中进行了路径检查
 File mfile =new File("D:\TX_INFO_DATA");
 //这个是自定义的函数,作用是检查路径,如不存在则创建
 checkDirExists(mfile);
 final String DB_URL = "jdbc:sqlite:D:\TX_INFO_DATA/TX_Info_database.db";

以及

for(int i=0;i<5;i++) {
	   //创建连接
       try {
   		 con=DriverManager.getConnection(DBURL,DBUSER,DBPASS);
        	 list.add(con);
       }catch (SQLException e) {
        	 // TODO: handle exception
       		  e.printStackTrace();
        }
      }
    }

	修改为以下内容:

     for(int i=0;i<5;i++) {
       try {
        	 Class.forName("org.sqlite.JDBC");
       }catch (ClassNotFoundException e) {
        	  // TODO: handle exception
          	e.printStackTrace();
       }
       //创建连接
       try {
   		con=DriverManager.getConnection(DB_URL);
         	list.add(con);
       }catch (SQLException e) {
        	 // TODO: handle exception
         	e.printStackTrace();
        }
      }
    }
经验分享 程序员 微信小程序 职场和发展