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() 方法,测试成功
加载全部内容