maven依赖、使用JDBC操作MySql数据库

使用JDBC操作MySql数据库

1、JDBC简介

1、JDBC是Java连接数据库的技术
使用Java连接并操作数据库(增加、删除、更新、查询

2、JDBC的意义
让程序更加的灵活,并且任何程序都离不开数据库。全栈工程师必须掌握这项技术。

3、如何使用JDBC
Java可是连接很多数据库,这些连接的技术却不是Java去实现的。数据库由每个不同的厂商创造,数据时不会公开的。Java只做连接并操作数据库的接口和框架。(只做接口,不具体实现

所以我们要使用Java连接数据库, 就需要下载对应数据库的驱动包。(驱动包就是Java类文件


2、Maven配置

1、在本地新建一个仓库文件夹,里面解压该maven压缩包依赖库。
在这里插入图片描述

2、进入到conf目录,打开settings文件
在这里插入图片描述

在第54行左右找到,并复制到相应的位置:
<localRepository>D:/Program Files (x86)/repository/mvn_repository</localRepository>
在这里插入图片描述
在第160多行左右,并复制到相应的位置:

      <mirror>
            <id>alimaven</id>
            <mirrorOf>central</mirrorOf>
            <name>aliyun maven</name>
            <url>http://maven.aliyun.com/nexus/content/groups/public/</url>
        </mirror>
  </mirrors>

在这里插入图片描述

不做这两处的配置,每次有新需要的jar包,都会访问maven官网,效率慢,就改成图二阿里提供的镜像,图一是把需要的都放在本地了。

3、进入Eclipse
Window
在这里插入图片描述
Preferences
在这里插入图片描述
搜索:maven,要设置的有两项,分别是:Installations、User Settings
在这里插入图片描述

先设置Installations,注意,选择maven依赖包的目录,是刚才解压的目录,选择到bin之前就好了。
在这里插入图片描述
自动 有这样的提示
在这里插入图片描述
完成之后,都要点击Apply(应用)
在这里插入图片描述

之后是设置User Settings,还是这个解压目录,选择我们刚才配置的Settings文件
在这里插入图片描述
仍然是Apply,最后再确认一次Apply and Close(应用并关闭)
在这里插入图片描述

3、Eclipse使用

Ctrl + N 新建项目,搜索maven,选择Maven Project,下一步
在这里插入图片描述
要选择本地和这个q开头的1.1
在这里插入图片描述
完成之后在左侧,会有一个项目,打开它
在这里插入图片描述
添加需要的jar包。
需要的jar包在这个网址找:https://mvnrepository.com/
在这里插入图片描述
之后就是使用Java连接数据库并操作数据库6步:

		// 1.加载驱动
		Class.forName("com.mysql.jdbc.Driver");
		// 2.建立连接
		Connection con = DriverManager.getConnection("jdbc:mysql://localhost:3306/db_0805?useSSL=false", "root",
				"123456");
		System.out.println(con);

		// 3.预处理sql语句
		// 需求:查询出id、名字,展示到控制台
		PreparedStatement pst = con.prepareStatement("select * from t_mysql_employees limit 5");

		// 4.执行sql语句
		ResultSet rs = pst.executeQuery();

		// 5.处理sql语句执行的结果
		while (rs.next()) {
			System.out.println(rs.getInt("employee_id") + "==" + rs.getString("last_name"));
		}
		// 6.释放资源(链接、结果、预定义对象[后至前])
		rs.close();
		pst.close();
		con.close();

第二步数据库名后加的(?useSSL=false),我这是jdk12,数据库是MySQL8.0.18在这里插入图片描述


但 是
这样有新的需求,都要重新编写代码,就很烦,所以我们需要封装一个JDBC工具类
在这里插入图片描述
上图中框起来的从下往上,分别是:

1、resources文件夹下jdbc.properties:连接数据库的驱动、链接、用户、密码集文件

mysql.driver=com.mysql.jdbc.Driver
mysql.url=jdbc:mysql://localhost:3306/db_0805?useSSL=false
mysql.userName=root
mysql.password=123456

2、DBAccess.java:公共的建立连接、释放资源部分就抽取出来

package com.newer.jdbc01.utils;

import java.io.BufferedReader;
import java.io.FileReader;
import java.io.IOException;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.Properties;

public class DBAccess {
	// 公共的两部分:1建立连接、2资源释放
	// 想要程序一运行就能建立连接,连接需要的东西都写成static静态的,最先执行的。
	private static String driver;
	private static String url;
	private static String userName;
	private static String password;

	static {
		Properties p = new Properties();
		try {
			p.load(new BufferedReader(new FileReader("resources/jdbc.properties")));
			driver = p.getProperty("mysql.driver");
			url = p.getProperty("mysql.url");
			userName = p.getProperty("mysql.userName");
			password = p.getProperty("mysql.password");
			// 加载驱动
			Class.forName(driver);

		} catch (IOException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		} catch (ClassNotFoundException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
	}

	// 建立连接
	public static Connection getConnection() throws SQLException {
		return DriverManager.getConnection(url, userName, password);
	}

	// 2.释放资源
	public static void close(ResultSet rs, PreparedStatement pst, Connection con) throws SQLException {
		close(rs);
		close(pst);
		close(con);
	}

	private static void close(Connection con) throws SQLException {
		if (con != null) {
			con.close();
		}
	}

	private static void close(PreparedStatement pst) throws SQLException {
		if (pst != null) {
			pst.close();
		}
	}

	private static void close(ResultSet rs) throws SQLException {
		if (rs != null) {
			rs.close();
		}
	}

}

3、User.java是从数据库中查询出数据,把相应的数据放进这个对象里。要查询什么列段的值就给这个类对象设置相应的私有属性,并做成标准的OOP对象(属性私有化,无参构造方法,有参构造方法,set、get方法,toString()方法)。

4、BaseDao.java

package com.newer.jdbc01.dao;

import java.lang.reflect.Field;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.util.ArrayList;
import java.util.List;

import com.newer.jdbc01.utils.DBAccess;

public class BaseDao<T> {

	public List<T> executeQuery(String sql, Class clz) throws Exception {
		List<T> list = new ArrayList<T>();
		// 建立连接
		Connection con = DBAccess.getConnection();
		// 预处理sql语句
		PreparedStatement pst = con.prepareStatement(sql);
		// 执行sql语句
		ResultSet rs = pst.executeQuery();
		// 处理执行sql的结果
		T t;
		while (rs.next()) {
			// 反射
			t = (T) clz.newInstance();
			// 获取对象的所有属性
			Field[] fields = clz.getDeclaredFields();
			for (Field f : fields) {
				f.setAccessible(true);
				f.set(t, rs.getObject(f.getName()));
				f.setAccessible(false);
			}
			list.add(t);
		}
		DBAccess.close(rs, pst, con);
		return list;
	}
}

5、UserDao.java:具体的实现

package com.newer.jdbc01.dao;

import java.util.List;

import com.newer.jdbc01.myEntity.User;

public class UserDao extends BaseDao<User> {

	// 定义list()方法
	public List<User> list() throws Exception {
		// 需要执行的sql语句,以及查询的所属对象
		// 返回 调用父类的executeQuery()方法 获得的返回值
		return super.executeQuery("select * from t_mysql_employees limit 5", User.class);
	}

	public static void main(String[] args) throws Exception {

		UserDao userDao = new UserDao();
		List<User> list = userDao.list();
		for (User u : list) {
			System.out.println(u);
		}
	}
}

至 此
JDBC工具类就封装好了~

  • 2
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
如何实现? 要使用 JDBC 连接 MySQL 数据库,需要先下载 MySQL Connector/J 驱动程序,然后在 IDEA 中添加该驱动程序。具体步骤如下: 1. 下载 MySQL Connector/J 驱动程序,下载链接:https://dev.mysql.com/downloads/connector/j/。 2. 在 IDEA 中打开项目,在 Project 下选择对应的模块,然后右键选择 "Add Dependency"。 3. 在弹出的窗口中,选择 "Maven",然后在搜索框中输入 "mysql-connector-java",找到对应的依赖,点击 "Add" 添加。 4. 在代码中连接 MySQL 数据库,示例代码如下: ``` import java.sql.*; public class JdbcTest { public static void main(String[] args) { Connection conn = null; try { // 加载驱动程序 Class.forName("com.mysql.jdbc.Driver"); // 建立连接 String url = "jdbc:mysql://localhost:3306/test"; String user = "root"; String password = "123456"; conn = DriverManager.getConnection(url, user, password); // 执行查询 Statement stmt = conn.createStatement(); ResultSet rs = stmt.executeQuery("SELECT * FROM user"); while (rs.next()) { System.out.println(rs.getString("username")); } // 关闭连接 rs.close(); stmt.close(); conn.close(); } catch (ClassNotFoundException e) { e.printStackTrace(); } catch (SQLException e) { e.printStackTrace(); } } } ``` 其中,url、user 和 password 分别为 MySQL 数据库的地址、用户名和密码。在获取数据库连接时,可以使用 DriverManager 类的 getConnection() 方法,然后执行查询语句,最后关闭连接。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值