JDBC:喂?是数据库吗?我怎么联系你啊?

在项目下常见一个文件夹lib(可以为任意名字,一般我们起lib)

在这里插入图片描述

然后将刚才的jar包复制到目录下

在这里插入图片描述

右击jar包选择Build Path下的Add to Build Path,添加指定路径

在这里插入图片描述

然后你的这个目录下就有这个东西了

在这里插入图片描述

里面就是我们需要用到的的一些JDBC类

在项目的结构中有util包,我们在util包下专门创建一个类来进行数据库的连接

在这里插入图片描述

首先我们定义四个变量 分别为url(数据库地址),name(数据库名称),password(数据库密码),con(和数据库连接的对象)。

public class MyCon {

//此处的store为你要操作的数据库的库名

private String url=“jdbc:mysql://localhost:3306/store? useUnicode=true&characterEncoding=utf8&useSSL=false&serverTimezone=UTC&allowPublicKeyRetrieval=true”;

//用户名

private String name = “root”;

//密码

private String password = “”;

//连接对象

private Connection con = null ;

}

然后我们创建一个方法用来得到我们的连接。

public Connection getCon() {}

怎么建立连接,首先我们要加载驱动,驱动在哪呢?

在这里插入图片描述

我们使用Class.forName("com.mysql.cj.jdbc.Driver");

来加载我们的驱动,然后得到我们的连接

public Connection getCon() {

try {

//加载驱动

Class.forName(“com.mysql.cj.jdbc.Driver”);

} catch (ClassNotFoundException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

try {

//得到连接

con = DriverManager.getConnection(url, name, password);

} catch (SQLException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

return con;

}

我们可以在添加一个方法用来释放我们的链接

public void setClose(ResultSet res,PreparedStatement ps,Connection con) throws SQLException {

//查询的结果集

if (res!=null) {

res.close();

}

//用来进行sql操作sql语句的面板

if (ps!=null) {

ps.close();

}

//和数据库的连接

if (con!=null) {

con.close();

}

}

然后我们进行测试

在dao包下建一个关于emp的接口,其中 是最基本的功能,也就是最基本的增删改查

在这里插入图片描述

其中的方法都有如下几部分

package com.dyit.store.dao;

import java.sql.SQLException;

import java.util.List;

import com.dyit.store.eneity.Emp;

/**

  • 定义对数据库的增删改查操作

  • @author strve

*/

public interface EmpDao {

/**

  • 插入员工信息

  • @param emp 员工

  • @return 是否插入成功

  • @throws SQLException

*/

public boolean insertEmp(Emp emp) throws SQLException;

/**

  • 修改员工信息

  • @param emp

  • @return

*/

public boolean updateEmp(Emp emp);

/**

  • 删除员工信息

  • @param emp

  • @return

*/

public boolean deleteByEmp(Emp emp);

public boolean deleteByEmpId(int empId);

/**

  • 查找员工

  • @param id

  • @return

*/

public Emp queryById(int id);

/**

  • 查找所有员工的信息

  • @return

*/

public List queryAll();

/**

  • 分页查询

  • @param page

  • @param pagesize

  • @return

*/

public List queryByPage(int page,int pagesize);

/**

  • 返回总数

  • @return

*/

public int getTotal();

List queryByLike(String empname);

}

然后我们创建其的实现类

在这里插入图片描述

实现类中实现的是对数据库的基本操作,增上改查。首先我们定义几个基本属性。

private String sql;

private Connection con;

private PreparedStatement ps;

private ResultSet rs;

首先我们来看插入操作,代码如下:

@Override

public boolean insertEmp(Emp emp) {

boolean flag = false;

sql = “INSERT INTO emp VALUES(0,?,?,?,?,?,?,?,?)”;

MyCon mc = new MyCon();

con = mc.getCon();

try {

/*

  • private int empId; private int deptId; private String eName; private String

  • pwd; private String sex; private int age; private String address; private

  • String tel; private double salary; private String deptName;

*/

ps = con.prepareStatement(sql);

ps.setInt(1, emp.getDeptId());

ps.setString(2, emp.geteName());

ps.setString(3, emp.getPwd());

ps.setString(4, emp.getSex());

ps.setInt(5, emp.getAge());

ps.setString(6, emp.getAddress());

ps.setString(7, emp.getTel());

ps.setDouble(8, emp.getSalary());

int res = ps.executeUpdate();

if (res > 0) {

flag = true;

}

} catch (SQLException e) {

// TODO Auto-generated catch block

e.printStackTrace();

} finally {

try {

mc.setClose(rs, ps, con);

} catch (SQLException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

}

return flag;

}

  • flag用来标记sql语句是否执行成功。

  • sql中的我们称为占位符,也就是字段的值。

  • con得到一个连接,用我们刚才封装的mycon直接返回即可。

  • 然后通过con.prepareStatement(sql)得到一个控制面板用来执行我们的sql操作

  • 然后同过ps来设置占位符出的参数,我们通过传进来的emp类进行设置

  • 最后执行操作,返回的值是收到影响的行数

  • 如果res>0说明执行成功,返回true。

其他的基本类似,只要写好sql就可以了,略有不同的是查询语句。

查询语句:查询所有的员工,并以链表的方式返回。

@Override

public List queryAll() {

List list = new ArrayList();

sql = “SELECT * FROM emp”;

MyCon mc = new MyCon();

con = mc.getCon();

try {

ps = con.prepareStatement(sql);

ResultSet res = ps.executeQuery();

最后

自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。

深知大多数Java工程师,想要提升技能,往往是自己摸索成长,自己不成体系的自学效果低效漫长且无助。

因此收集整理了一份《2024年Java开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上Java开发知识点,不论你是刚入门Java开发的新手,还是希望在技术上不断提升的资深开发者,这些资料都将为你打开新的学习之门!

如果你觉得这些内容对你有帮助,需要这份全套学习资料的朋友可以戳我获取!!

由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!
*

因此收集整理了一份《2024年Java开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。

[外链图片转存中…(img-TzRbYYkH-1715822791414)]

[外链图片转存中…(img-dQ888mbc-1715822791415)]

[外链图片转存中…(img-Pccmta5u-1715822791416)]

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上Java开发知识点,不论你是刚入门Java开发的新手,还是希望在技术上不断提升的资深开发者,这些资料都将为你打开新的学习之门!

如果你觉得这些内容对你有帮助,需要这份全套学习资料的朋友可以戳我获取!!

由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!

  • 5
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值