采用原生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/20
采用原生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连接数据库内容请搜索易盾网络以前的文章或继续浏览下面的相关文章希望大家以后多多支持易盾网络!