一、使用maven管理项目的好处
- maven项目的jar包是放在本地仓库的,使用依赖管理jar包,大大减少了项目所占的空间。
- 使用maven项目可以实现一键构建,一键完成编译、测试、运行、打包、安装、部署。
二、创建maven工程访问数据库
1、使用IDEA创建新建一个maven工程
在src->main->java文件夹下放置核心代码,在src->main->resources文件夹下存放对应配置文件
在src->test->java文件夹下放置测试代码,在src->test->resources文件夹下存放测试对应的配置文件
2、数据库表如下图所示
3、在pom.xml文件夹下添加依赖,导入jar包
<packaging>jar</packaging> <dependencies> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <version>5.1.38</version> <scope>runtime</scope> </dependency> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>4.13</version> <scope>test</scope> </dependency> </dependencies>
4、在src->main->java下新建com.itheima.domain的包,并新建名为Items的类,代码如下
package com.itheima.domain; public class Items { private Integer id; private String name; public Integer getId() { return id; } public void setId(Integer id) { this.id = id; } public String getName() { return name; } public void setName(String name) { this.name = name; } }
这个类对应了数据库表中的数据,并用get和set方法对其进行封装
5、在src->main->java下新建com.itheima.dao的包,并新建名为ItemsDao的接口,代码如下
package com.itheima.dao; import com.itheima.domain.Items; import java.util.List; public interface ItemsDao { public List<Items> fillAll() throws Exception; }
在src->main->java下新建com.itheima.dao.impl的包,并新建名为ItemsDaoImpl的类,实现ItemsDao的接口,代码如下
package com.itheima.dao.impl; import com.itheima.dao.ItemsDao; import com.itheima.domain.Items; 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 ItemsDaoImpl implements ItemsDao { public List<Items> fillAll() throws Exception{ Connection con = null; PreparedStatement pst = null; ResultSet rs = null; List<Items> list = new ArrayList<Items>(); try{ //先加载jdbc驱动 Class.forName("com.mysql.jdbc.Driver"); //获取connection对象 con = DriverManager.getConnection("jdbc:mysql:///maven","root","root"); //获取真正操作数据的对象 pst = con.prepareCall("select * from items"); //执行数据库查询操作 rs = pst.executeQuery(); //把数据库结果集转成java的List集合 while(rs.next()){ Items items = new Items(); items.setId(rs.getInt("id")); items.setName(rs.getString("name")); list.add(items); } }catch (Exception e){ e.printStackTrace(); }finally { con.close(); pst.close(); rs.close(); } return list; } }
6、在src->test->java下新建com.itheima.test的包,并新建名为ItemsTest的类,用来测试是否能正常访问数据库里的数据,代码如下
package com.itheima.test; import com.itheima.dao.ItemsDao; import com.itheima.dao.impl.ItemsDaoImpl; import com.itheima.domain.Items; import org.junit.Test; import org.omg.Messaging.SyncScopeHelper; import java.util.ArrayList; import java.util.List; public class ItemsTest { @Test public void findAll() throws Exception { ItemsDao itemsDao = new ItemsDaoImpl(); List<Items> list = itemsDao.fillAll(); for (Items items:list){ System.out.println(items.getName()); } } }
此时项目的目录结构图如下
7、运行测试代码,测试成功