亲宝软件园·资讯

展开

IDEA用maven连接数据库 IDEA中用maven连接数据库的教程

山风fly 人气:0
想了解IDEA中用maven连接数据库的教程的相关内容吗,山风fly在本文为您仔细讲解IDEA用maven连接数据库的相关知识和一些Code实例,欢迎阅读和指正,我们先划重点: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() 方法,测试成功

在这里插入图片描述

加载全部内容

相关教程
猜你喜欢
用户评论