>  기사  >  주제  >  Java는 데이터베이스에 접속하여 데이터를 읽는 작업을 구현합니다.

Java는 데이터베이스에 접속하여 데이터를 읽는 작업을 구현합니다.

王林
王林앞으로
2020-11-19 15:18:584096검색

Java는 데이터베이스에 접속하여 데이터를 읽는 작업을 구현합니다.

구체적인 단계는 다음과 같습니다.

1. 액세스 데이터베이스에 연결합니다.

AccessDbUtil 클래스를 생성하고 데이터베이스에 연결합니다.

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

/**
 * 获取Access连接
 * 
 * @author dofun
 *
 */
public class AccessDbUtil
{
    public static Connection getDbConnection()
    {
    	// 数据库url
        String url = "jdbc:Access:///E:ICD10.mdb";
        Connection conn = null;
        try
        {
        	// 驱动加载
            Class.forName("com.hxtt.sql.access.AccessDriver").newInstance();
            conn = DriverManager.getConnection(url);
            return conn;
        }
        catch (Exception e)
        {
            System.out.println("Access连接失败");
        }
        return conn;
    }
}

2. 액세스 데이터를 읽고 mysql 데이터베이스에 저장합니다. .액세스 데이터베이스 연결을 가져옵니다

2. 테이블 데이터를 쿼리하고 저장합니다

3. 연결 리소스를 닫습니다

/**
     * 同步疾病,手术
     * 
     * @return
     */
    @RequestMapping(value = "importJbbm")
    @ResponseBody
    public String importJbbm()
    {
    	// 获取数据库连接
        Connection conn = AccessDbUtil.getDbConnection();
        PreparedStatement pst = null;
        ResultSet rs = null;
        Boolean a = true;
        int id = 30000;
        try
        {
            for (int i = 1; i > 0; i++)
            {
                
                // 手术
                pst = conn.prepareStatement("select * from sJBBMML where id > " + id + " and LB = 'S' ");
                List<IcdSsbm> jbs = new ArrayList<>();
                
                rs = pst.executeQuery();
                while (a == rs.next())
                {
                    if (StringUtils.isNotBlank(rs.getString(2)))
                    {
                        IcdSsbm jb = new IcdSsbm();
                        jb.setCode(rs.getString(2));
                        jb.setName(rs.getString(5));
                        jb.setType(rs.getString(11));
                        jbs.add(jb);
                    }
                    else
                    {
                        a = false;
                        i = 0;
                    }
                    // System.out.println(rs.getString(2));
                    // System.out.println(rs.getString(5));
                    // System.out.println(rs.getString(11));
                }
                if (ListUtils.isNotEmpty(jbs))
                {
                    // 批量保存
                    icdSsbmService.saveBatch(jbs);
                }
                id += 1000;
            }
        }
        catch (SQLException e)
        {
        }
        finally
        {
            try
            {
                // 关闭资源
                rs.close();
                pst.close();
                conn.close();
            }
            catch (SQLException e)
            {
            }
        }
        return "导入完成";
    }

문제:

액세스 데이터베이스에 비밀번호가 설정되어 있고 가져올 때 비밀번호 매개변수도 추가됩니다. 연결해도 오류가 계속 발생하고 이유를 찾을 수 없으며 마침내 Access 데이터베이스에서 비밀번호가 제거되었습니다.

Access의 페이징 문제는 한 번에 1,000개의 데이터만 쿼리할 수 있다는 점입니다. 사실 Access 자체에도 페이징 쿼리가 있지만 굉장히 번거롭고 쓸데도 없고 성능도 별로 좋지 않습니다. 데이터의 양이 많을 때. 그래서 저는 간단한 루프 형태를 채택했습니다.

Access_JDBC30.jar을 사용하고 있는데 java1.8은 Access를 지원하지 않습니다. 인터넷상에 크랙된 드라이버가 있는 것 같은데, 이는 페이징 쿼리의 한계를 깨뜨린다고 합니다.

추천 튜토리얼:

데이터베이스 액세스 튜토리얼

위 내용은 Java는 데이터베이스에 접속하여 데이터를 읽는 작업을 구현합니다.의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
이 기사는 csdn.net에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제