IDEA中用maven連接數(shù)據(jù)庫(kù)的教程
采用原生jdbc方式,maven項(xiàng)目連接數(shù)據(jù)庫(kù)
1、數(shù)據(jù)庫(kù)準(zhǔn)備
2、構(gòu)建一個(gè)原生maven項(xiàng)目
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、編寫(xiě)代碼
4.1、具體類(lèi)
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 實(shí)現(xiàn)類(lèi)
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{ /** * 從數(shù)據(jù)庫(kù)中取數(shù),須有四個(gè)屬性 * 數(shù)據(jù)庫(kù)驅(qū)動(dòng),連接數(shù)據(jù)庫(kù)的地址,數(shù)據(jù)庫(kù)用戶名稱,數(shù)據(jù)庫(kù)密碼 */ List<Province> list = new ArrayList<>(); Connection conn = null; PreparedStatement pst = null; ResultSet rs = null; try{ //1、注冊(cè)驅(qū)動(dòng) Class.forName('com.mysql.jdbc.Driver'); //2、獲取連接對(duì)象 conn = DriverManager.getConnection('jdbc:mysql://localhost/test?useUnicode=true&characterEncoding=UTF-8','root','root'); //3、獲取執(zhí)行數(shù)據(jù)的對(duì)象 pst= conn.prepareCall('select * from province'); //4、執(zhí)行sql,獲得結(jié)果集對(duì)象 rs = pst.executeQuery(); //5、把結(jié)果集轉(zhuǎn)為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、測(cè)試
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、問(wèn)題-Error:(6, 17) java: 程序包org.junit不存在 測(cè)試find()方法時(shí),出現(xiàn)包找不到的問(wèn)題,然而在pom.xml中已經(jīng)配置好jar包,本地maven倉(cāng)庫(kù)中也下載好了jar包,maven的Dependencies也存在此jar包。
最終找到原因:查看IDEA安裝目錄的lib文件夾,可發(fā)現(xiàn)存在,包含關(guān)于單元測(cè)試的jar包,因此導(dǎo)致在構(gòu)建項(xiàng)目時(shí)出現(xiàn)兩個(gè)jar包,因而報(bào)錯(cuò)。解決:
重新導(dǎo)入maven
再次測(cè)試 find() 方法,測(cè)試成功
到此這篇關(guān)于IDEA中用maven連接數(shù)據(jù)庫(kù)的教程的文章就介紹到這了,更多相關(guān)IDEA用maven連接數(shù)據(jù)庫(kù)內(nèi)容請(qǐng)搜索好吧啦網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持好吧啦網(wǎng)!
相關(guān)文章:
1. React+umi+typeScript創(chuàng)建項(xiàng)目的過(guò)程2. ASP調(diào)用WebService轉(zhuǎn)化成JSON數(shù)據(jù),附j(luò)son.min.asp3. php測(cè)試程序運(yùn)行速度和頁(yè)面執(zhí)行速度的代碼4. php網(wǎng)絡(luò)安全中命令執(zhí)行漏洞的產(chǎn)生及本質(zhì)探究5. ASP.NET Core 5.0中的Host.CreateDefaultBuilder執(zhí)行過(guò)程解析6. 無(wú)線標(biāo)記語(yǔ)言(WML)基礎(chǔ)之WMLScript 基礎(chǔ)第1/2頁(yè)7. Warning: require(): open_basedir restriction in effect,目錄配置open_basedir報(bào)錯(cuò)問(wèn)題分析8. ASP中常用的22個(gè)FSO文件操作函數(shù)整理9. SharePoint Server 2019新特性介紹10. 三個(gè)不常見(jiàn)的 HTML5 實(shí)用新特性簡(jiǎn)介
