Maven的安装和配置与jdbc的封装
一、下载
打开官网https://www.apache.org/dyn/closer.cgi,选择任意一个都行
点进去后下拉找到maven:
选择你要的版本 ,这里我们选择maven3:
然后选择你要的版本进行下载 ,下载的是压缩文件:
二、安装
把下载好的压缩包放到你想要放到的文件夹内,并解压:
三、配置环境变量:
右键此电脑—高级系统设置—环境变量 ;
新建一个变量名为MAVEN_HOME的系统变量:
再编辑path变量 新建一个如下图所示内容;
以管理员身份运行cmd命令行,输入mvn -v,出现如下结果 ,则是配置成功:
四、配置eclipse的Maven;
-
创建maven仓库:
默认的本地仓库的目录是在C:\Users\viruser.v-desktop.m2\repository\如果使用系统默认的maven插件,那么建议还是修改下本地仓库的路径,这样节省C盘空间
在你的maven同级目录下创建一个自己能够看懂的仓库文件夹:
-
打开maven路径下的conf文件夹 找到settings.xml文件以记事本或轻文本工具打开,在localRepository下创建一个你所创建路径的标签:
再在mirrors标签下加上阿里云的镜像连接站点,这样能极大的加快下载jar包的速度
接下来打开Eclipse–>window–>Prefrences–>Maven---->Installations , 点击右侧的Add按钮,在弹出的窗口中,选择刚刚解压玩的文件夹,如图:
完成之后,还要把新增的maven勾上:
打开window---->Preferences —>Maven---->User Settings:
完成以上步骤后,maven就已经配置完毕!
五、创建maven项目:
打开file—new—other 或者按下 Ctrl+n 找到maven 新建一个maven project:
选择工作区
选择internal本地,filter我们选择1.1;
输入maven项目的基本信息,如下图所示:
新建maven工程后,初始的目录是这样的(可能因为有些设置不同,初始的目录有所不同)初始目录中可以发现,目录中并没有“src/main/java”和“srr/main/test”两个源文件夹:
点击项目名,右击选择“Build Path”——》“Configrue Build Path”出现如图:
点击”JRE System Library [jdk-11.0.2]”(不能eclipse可能出现的版本不一样),再点击“edit”
点击finish即项目包创建完成:
接下来我们还需添加mysql依赖以及一些版本上的问题:
打开项目包下面的 pom.xml;修改和添加下图所示代码:
以上一个mysql依赖的maven项目创建完成:
五、基本的连接数据库
在你刚创建好的项目下创建一个main类,进行数据库的连接:
连接步骤:1、加载驱动----2、建立链接----3、获取预定义对象(书写SQL)----4、执行SQL----5、处理SQL执行完的结果-----6、释放资源
代码如下:
六、jdbc的封装:
import java.sql.*; import java.util.*; /**
* JDBC工具类:负责数据库操作。
*
* @author hyp
* @date 2020-8-9
*/ public class JdbcUtil { /** 加载数据库驱动程序 */ private final static String DRIVER = "com.mysql.jdbc.Driver"; /** URL */ private final static String URL = "jdbc:mysql://127.0.0.1:3306/demo?useUnicode=true&characterEncoding=UTF-8"; /** 数据库用户名 */ private final static String USERNAME = "root"; /** 数据库密码 */ private final static String PASSWORD = "root"; private static Connection conn; private static PreparedStatement ps; private static ResultSet rs; public static void main(String[] args) { // 连接测试 jdbcConnTest(); // 增删改使用演示。(demo中sql语句与参数仅供参考) int i = executeUpdateDemo(); System.out.println(i); // 查询使用演示。(demo中sql语句与参数仅供参考) List<Map<String, Object>> list = executeQueryDemo(); System.out.println(list+"\n"); // 将List<Map<String, Object>>转成List<ProductType> List<ProductType> pts = new ArrayList<>(); for (Map<String, Object> map : list) {
pts.add(new ProductType(Integer.parseInt(map.get("product_type_id")+""), map.get("product_type_name")+"", map.get("product_type_picture")+"")); }
System.out.println(pts); } /**
* JDBC连接测试
*/ public static void jdbcConnTest() { if (JdbcUtil.getConn() != null) {
System.out.println("Connection success."); }
} /**
* 获得数据库连接
*
* @return 数据库连接
*/ public static Connection getConn() {
try {
Class.forName(DRIVER); conn = DriverManager.getConnection(URL, USERNAME, PASSWORD); } catch (ClassNotFoundException | SQLException e) {
e.printStackTrace(); } return conn; } /**
* 释放资源
*
* @param conn 数据库连接
* @param ps PreparedStatement对象
* @param rs 结果集
*/ public static void closeAll(Connection conn, PreparedStatement ps, ResultSet rs) { if (rs != null) {
try {
rs.close(); } catch (SQLException e) {
e.printStackTrace(); }
} if (ps != null) {
try {
ps.close(); } catch (SQLException e) {
e.printStackTrace(); }
} if (conn != null) {
try {
conn.close(); } catch (SQLException e) {
e.printStackTrace(); }
}
} /**
* 封装增加、删除、修改。
*
* @param preparedSql 预编译的 SQL 语句
* @param params 预编译的 SQL 语句中的"?"占位符
* @return 影响的条数
*/ public static int executeUpdate(String preparedSql, Object... params) {
try { // 1.建立连接 conn = getConn(); // 2.处理预编译SQL语句 ps = conn.prepareStatement(preparedSql); // 3.给占位符赋值 if (params != null) { for (int i = 0; i < params.length; i++) { // 为预编译sql设置参数 ps.setObject(i + 1, params[i]); }
} // 4.执行预编译SQL语句 return ps.executeUpdate(); } catch (SQLException e) {
e.printStackTrace(); } finally {
closeAll(conn, ps, null); } return 0; } /**
* 封装查询。
*
* @param preparedSql 预编译的 SQL 语句
* @param params 预编译的 SQL 语句中的"?"占位符
* @return 结果集
*/ public static List<Map<String, Object>> executeQuery(String preparedSql, Object... params) {
List<Map<String, Object>> list = new ArrayList<>(); try { // 1.建立连接 conn = JdbcUtil.getConn(); // 2.处理预编译SQL语句 ps = conn.prepareStatement(preparedSql); // 3.给占位符赋值 if (params != null) { for (int i = 0; i < params.length; i++) {
ps.setObject(i + 1, params[i]); }
} // 4.执行预编译SQL语句(获得结果集) rs = ps.executeQuery(); // 获得表结构(用于获取ResultSet对象中列的类型和属性的信息的对象。如字段数、字段名等等) ResultSetMetaData rsmd = rs.getMetaData(); // 获取表中列的数量(ResultSet对象中的列数) int cols = rsmd.getColumnCount(); // 5.遍历结果集 while (rs.next()) {
Map<String, Object> map = new HashMap<>(cols); for (int i = 0; i < cols; i++) {
String colName = rsmd.getColumnName(i + 1); Object colValue = rs.getObject(colName); if (colValue == null) {
colValue = ""; }
map.put(colName, colValue); }
list.add(map); } return list; } catch (SQLException e) {
e.printStackTrace(); } finally {
JdbcUtil.closeAll(conn, ps, rs); } return null; } /**
* 工具类JdbcUtil,查询使用演示。
*/ static List<Map<String, Object>> executeQueryDemo() { // 参数 String sql = "select * from product_type where product_type_name=? and product_type_picture=?"; Object[] params = new Object[]{"类型名称1", "图片1"}; // 执行查询 return JdbcUtil.executeQuery(sql, params); } /**
* 工具类JdbcUtil,增删改使用演示。
*/ static int executeUpdateDemo() { // 参数 String sql = "insert into product_type(product_type_name, product_type_picture) values(?, ?)"; Object[] params = new Object[]{"类型名称1", "图片1"}; // 执行增删改 return JdbcUtil.executeUpdate(sql, params); }
}
本文地址:https://blog.csdn.net/qq_46052939/article/details/107894660
上一篇: 面向对象编程(类和对象、构造方法、关键字this)
下一篇: Xcode12升级后在模拟器上编译错误