欢迎来到代码驿站!

JAVA代码

当前位置:首页 > 软件编程 > JAVA代码

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

时间:2021-03-09 10:10:14|栏目:JAVA代码|点击:

采用原生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() 方法,测试成功

在这里插入图片描述

上一篇:Java异常基础知识解析

栏    目:JAVA代码

下一篇:利用Spring IOC技术实现用户登录验证机制

本文标题:IDEA中用maven连接数据库的教程

本文地址:http://www.codeinn.net/misctech/77571.html

推荐教程

广告投放 | 联系我们 | 版权申明

重要申明:本站所有的文章、图片、评论等,均由网友发表或上传并维护或收集自网络,属个人行为,与本站立场无关。

如果侵犯了您的权利,请与我们联系,我们将在24小时内进行处理、任何非本站因素导致的法律后果,本站均不负任何责任。

联系QQ:914707363 | 邮箱:codeinn#126.com(#换成@)

Copyright © 2020 代码驿站 版权所有