1. 程式人生 > 程式設計 >IDEA中用maven連線資料庫的教程

IDEA中用maven連線資料庫的教程

採用原生jdbc方式,maven專案連線資料庫

1、資料庫準備

在這裡插入圖片描述

2、構建一個原生maven專案

在這裡插入圖片描述
在這裡插入圖片描述

3、配置 pom.xml

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
     xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
  <modelVersion>4.0.0</modelVersion>

  <groupId>org.example</groupId>
  <artifactId>Connection_mysql</artifactId>
  <version>1.0-SNAPSHOT</version>

  <properties>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
  </properties>

  <dependencies>
    <dependency>
      <groupId>mysql</groupId>
      <artifactId>mysql-connector-java</artifactId>
      <version>5.1.37</version>
    </dependency>
    <dependency>
      <groupId>junit</groupId>
      <artifactId>junit</artifactId>
      <version>4.12</version>
      <scope>test</scope>
    </dependency>
  </dependencies>

</project>

4、編寫程式碼

在這裡插入圖片描述

4.1、具體類

Province.java

package cn.she.domain;

public class Province {
  private int id;
  private String name;

  public int getId() {
    return id;
  }

  public void setId(int id) {
    this.id = id;
  }

  public String getName() {
    return name;
  }

  public void setName(String name) {
    this.name = name;
  }
}

4.2、DAO層

ProvinceDao.java 介面

package cn.she.dao;

import cn.she.domain.Province;

import java.util.List;

public interface ProvinceDao {
  public List<Province> findAll() throws Exception;
}

ProvinceDaoImpl.java 實現類

package cn.she.dao.impl;

import cn.she.dao.ProvinceDao;
import cn.she.domain.Province;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.util.ArrayList;
import java.util.List;

public class ProvinceDaoImpl implements ProvinceDao {
  @Override
  public List<Province> findAll() throws Exception{

    /**
     * 從資料庫中取數,須有四個屬性
     * 資料庫驅動,連線資料庫的地址,資料庫使用者名稱稱,資料庫密碼
     */

    List<Province> list = new ArrayList<>();
    Connection conn = null;
    PreparedStatement pst = null;
    ResultSet rs = null;

    try{
      //1、註冊驅動
      Class.forName("com.mysql.jdbc.Driver");
      //2、獲取連線物件
      conn = DriverManager.getConnection("jdbc:mysql://localhost/test?useUnicode=true&characterEncoding=UTF-8","root","root");
      //3、獲取執行資料的物件
      pst= conn.prepareCall("select * from province");
      //4、執行sql,獲得結果集物件
      rs = pst.executeQuery();
      //5、把結果集轉為java的List集合
      while(rs.next()){
        Province p = new Province();
        p.setId(rs.getInt("id"));
        p.setName(rs.getString("name"));
        list.add(p);
      }

    }catch(Exception e){
      e.printStackTrace();
    }finally{
      conn.close();
      pst.close();
      rs.close();
    }
    
    return list;
  }
}

4.3、測試

ProvinceTest.java

package cn.she.test;

import cn.she.dao.ProvinceDao;
import cn.she.dao.impl.ProvinceDaoImpl;
import cn.she.domain.Province;
import org.junit.Test;
import java.util.List;

public class ProvinceTest {
  @Test
  public void find() throws Exception {
    ProvinceDao dao = new ProvinceDaoImpl();
    List<Province> list = dao.findAll();
    for(Province p : list){
      System.out.println(p.getId()+" : "+p.getName());
    }
  }

}

5、問題-Error:(6,17) java: 程式包org.junit不存在 測試find()方法時,出現包找不到的問題,然而在pom.xml中已經配置好jar包,本地maven倉庫中也下載好了jar包,maven的Dependencies也存在此jar包。

在這裡插入圖片描述
在這裡插入圖片描述

最終找到原因:檢視IDEA安裝目錄的lib資料夾,可發現存在,包含關於單元測試的jar包,因此導致在構建專案時出現兩個jar包,因而報錯。解決:

在這裡插入圖片描述
在這裡插入圖片描述

重新匯入maven

在這裡插入圖片描述

再次測試 find() 方法,測試成功

在這裡插入圖片描述

到此這篇關於IDEA中用maven連線資料庫的教程的文章就介紹到這了,更多相關IDEA用maven連線資料庫內容請搜尋我們以前的文章或繼續瀏覽下面的相關文章希望大家以後多多支援我們!