JAVA连接Access数据库

                                                        JAVA连接Access数据库

     最近有个项目,刚好用到ACCESS数据库,查好一些资料,结果很多都是使用Access_jdbc30或者40,我也使用了,结果用了50次就提示让交费,把我恶心住。不要使用这个驱动程序。JDK1.7去掉了sun.jdbc.odbc.JdbcOdbcDriver这个驱动,1.6会有这个驱动,有很多朋友让退回1.6版本,这个太老了。目前都10了,1.6版本?

      请使用UCANACCESS jar包, 这是很好用的JAR包,官网下载地址为:https://sourceforge.net/projects/ucanaccess/,  你下载后,只需要取ucanaccess-4.0.4.jar,commons-lang-2.6.jar,commons-logging-1.1.3.jar,hsqldb.jar,jackcess-2.1.11.jar加入你的IDE。工具类的连接代码如下所示:

import java.sql.Connection;
import java.sql.DriverManager;

public final class DBUtil
{
    private static final String dbDirectory = ResourceFileUtil.getValue(
        "db.directory");

    private static final String dbDriver = "net.ucanaccess.jdbc.UcanaccessDriver";

    private static DBUtil dbUtil = null;

    private static Connection connection = null;

    private static String dbUrl = "jdbc:ucanaccess://" + “./db/student.accdb;

    static
    {
        try
        {
            Class.forName("net.ucanaccess.jdbc.UcanaccessDriver");
        }
        catch (Exception e)
        {
            e.printStackTrace();
        }
    }

    private DBUtil()
    {

    }

    public static DBUtil getInstance()
    {
        if (dbUtil == null)
        {
            dbUtil = new DBUtil();
        }

        return dbUtil;
    }

    public static Connection getConnection()
    {
            try
            {
                connection = DriverManager.getConnection(dbUrl, "","");
            }
            catch (Exception e)
            {
                e.printStackTrace();
            }

        return connection;
    }
}
2. 自己去创建Student对象吧。

public class student

{

        String studentId;

       get函数

       set函数 

}

3. 使用连接批量插入数据库:
public static int insertStudent(List<Student> studentList)
{
    Connection connection = DBUtil.getInstance().getConnection();
    String sqlInsert = "INSERT INTO studentinfo(student_id" )VALUES(?)";
    PreparedStatement prest = null;
    try
    {

        if (connection == null)
        {
            return FAIL;
        }

        prest = connection.prepareStatement(sqlInsert,
            ResultSet.TYPE_SCROLL_SENSITIVE, ResultSet.CONCUR_READ_ONLY);
        connection.setAutoCommit(false);

        for (Student student: studentList)
        {
            prest.setString(1, student.getStudentId());
            prest.addBatch();
        }

        prest.executeBatch();
        connection.commit();

    }
    catch (Exception e)
    {
        e.printStackTrace();
        return FAIL;
    }
    finally
    {
        try
        {
            connection.close();
            prest.close();
        }
        catch (Exception e)
        {
            e.printStackTrace();
            return FAIL;
        }
    }

    return SUCCESS;
}

根据学号查询姓名:
public static String getStudentName(String studentId)
{
    Connection connection = DBUtil.getInstance().getConnection();

    String sqlQuery = "select user_name from studentinfo where student_id='" + studentId + "'";
    System.out.println(sqlQuery);
    ResultSet rs = null;

    String userName = null;

    try
    {
        if (connection == null)
        {
            return null;
        }

        Statement stmt = connection.createStatement();
        rs = stmt.executeQuery(sqlQuery);
        System.out.println(rs);
        while (rs.next())
        {
            System.out.println(rs.getString("user_name"));
            userName = rs.getString("user_name");
        }
    }
    catch (Exception e)
    {
        e.printStackTrace();
        return null;
    }
    finally
    {
        try
        {
            connection.close();
            rs.close();

        }
        catch (Exception e)
        {
            e.printStackTrace();
        }
    }

    return userName;
}

猜你喜欢

转载自blog.csdn.net/geman1985/article/details/80863971