Java使用JDBC连接mysql数据库实现 增删改查操作

使用到的环境如下:

IEDA19.0.1

Navicat16.0.11

mysql依赖包:mysql-connector-j-8.0.32.jar

1.要使用JDBC连接mysql实现基本的表操作,我们首先要知道 JDBC 是什么?

 网上的资料:

概念:JDBC(Java DataBase Connectivity) :Java数据库连接技术:具体讲就是通过Java连接广泛的数据库,并对表中数据执行增、删、改、查等操作的技术。

简单的来说 JDBC 在JAVA和mysql(或者其他数据库)扮演着一个中间人的角色 ,java编程要结合数据库管理用户数据的话,就会通过jdbc。

至于JDBC的安装配置和一些基本的概念,可以自行检索。

2.mysql语句的使用和建表和插入数据

这里为了方便后续的演示,直接使navicat建表 插入演示数据

当navicat 版本为16.0 .11 这里稍微需要一点mysql基础

3.IEDA新建项目,开始‘部署配置环境’

   3.1创建新项目

打开IEDA主页面-->左上角的-->file-->new-->project 随便给个命名 (建议不要用中文)

演示项目名为Project01

 3.2 JAVA代码分包分层,新建两个包 分别是dao层和util工具包

Project01-->src-->new-->package

 3.3 新建项目依赖 导入mysql依赖包

在src文件同层级新建一个Directory类型文件 命名为lib

 

可以根据相应的版本需求,下载适配的mysql依赖包

下载mysql依赖包的方法 可以参考这位博主的博客

参考地址:(1条消息) JDBC数据库驱动的下载、安装与连接_jdbc驱动下载_pan_junbiao的博客-CSDN博客

下载地址:MySQL :: Download Connector/J

下载完成之后,将mysql依赖包放到lib文件夹中

 此时mysql依赖包还没有完全得导入(配置)到项目之中,还需要进一步配置

配置方法如下:

打开IEDA主页面-->file-->Project Structure-->

选择第一个

 

 然后知道mysql依赖包的文件位置

接下来

 

 

这样纸就算导入配置完成啦 

3.4 配置数据库properties文件

在src文件下,dao包和utils包同层级 新建一个文件

 命名为db.properties

当这个文件的图标变化的时候,就说明成功了

打开这个文件 写入链接的数据库信息

 

driver=com.mysql.cj.jdbc.Driver //加载驱动程序
url=jdbc:mysql://localhost:3306/test //localhost表示本机 test表示要操作的数据库
user=root //用户名
password=weiyihang666 //密码

4.具体代码展示 实现对mysql数据表的基本操作(具体实现代码放在文章末尾)

4.1 .mysqlutil包代码如下

 4.2 .dao层 GetInfo接口代码如下

 

4.3 . dao层 GetInfoImpl接口实现类 代码如下

包括主函数测试方法

 

运行结果

 

 5.基本实现JAVA通过JDBC实现对数据库的基本操作

当然还有好多数据库的操作可以实现 这里就不多做叙述,

最后代码如下 仅供参考

mysqlutil包

public class MysqlUtil {
    public static String driver=null;  //驱动程序
    public static String url=null;  //数据库地址
    public static String user=null;  //用户名
    public static String password=null;  //密码
    static{
        //怎么读取properties里在内容
        Properties properties = new Properties();  //
        try {
            InputStream in = new FileInputStream("src/db.properties");  //创建一个FileInputStream实例
            properties.load(in);  //用于读取db.properties文件中的内容
        } catch (FileNotFoundException e) {

            e.printStackTrace();
        } catch (IOException e) {

            e.printStackTrace();
        }
        //分别读取赋值信息
        driver = properties.getProperty("driver");
        url = properties.getProperty("url");
        user = properties.getProperty("user");
        password = properties.getProperty("password");
    }

    public static Connection getMysqlConnection() {
        //注册驱动
        Connection conn = null;
        try {
            //加载数据库驱动类
            Class.forName(driver);
            //获取数据库链接对象
            conn = DriverManager.getConnection(url,user,password);
        } catch (ClassNotFoundException e) {

            e.printStackTrace();
        } catch (SQLException e) {

            e.printStackTrace();
        }
        return conn;
    }
    //简单的判断返回值的状态是否为空
    public static void closeResource(ResultSet rs, PreparedStatement pre, Connection conn) {
        try {
            if(rs!=null) {
                rs.close();
            }
            if(pre!=null) {
                pre.close();
            }
            if(conn!=null) {
                conn.close();
            }
        } catch (SQLException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
    }
}

GetInfo接口代码

public interface GetInfo {
    public  void getInfo() throws SQLException; //查询全表数据
    public void IntoInfo(String id,String dname,String type) throws SQLException;  //传入相应的数据
    public void deleteInfo(String id) throws SQLException;  //传入id删除对应数据
    public void removeInfo(String id,String str) throws SQLException;  //传入id修改对应数据
 }

GetInfoImpl接口实现类和主函数测试代码

public class GetInfoImpl implements GetInfo{
    public static void main(String[] args) throws SQLException {
        GetInfoImpl getInfoImpl=new GetInfoImpl();  //初始化对象实例 开始测试
        getInfoImpl.getInfo();  //查询全表信息

        getInfoImpl.IntoInfo("1005","校园志愿者","志愿服务");  //插入新的数据
        getInfoImpl.getInfo();  //查询全表信息

        getInfoImpl.removeInfo("1005","单车摆放志愿者");  //修改1005的dname
        getInfoImpl.getInfo();  //查询全表信息

        getInfoImpl.deleteInfo("1005");  //删除1005的数据
        getInfoImpl.getInfo();  //查询全表信息

    }

    @Override
    public void getInfo() throws SQLException {
        String sql_select = "select * from demo";  //操作的mysql语句
        Connection conn = MysqlUtil.getMysqlConnection();  //加载驱动
        PreparedStatement pre = conn.prepareStatement(sql_select);  //将mysql语句执行结果
        ResultSet rs = pre.executeQuery(); //增删改 executeUpdate()   查 executeQuery()  rs就是一个结果集
        while(rs.next()) {
            String id = rs.getString("id");  //rs 通过getstring获取值
            String dname = rs.getString("dname");
            String type = rs.getString("type");
            System.out.println("项目id: "+id);  //输出打印
            System.out.println("项目名称: "+dname);
            System.out.println("项目类型: "+type);
            System.out.println();
        }
        MysqlUtil.closeResource(rs,pre,conn);  //关闭
    }

    @Override
    public void IntoInfo(String id, String dname, String type) throws SQLException {
        String sql_select ="insert into demo(id,dname,type) values(?,?,?)";  // ?的作用就是一个占位符
        Connection conn = MysqlUtil.getMysqlConnection();
        PreparedStatement pre = conn.prepareStatement(sql_select);
        pre.setString(1, id); //通过setstring方法 将id传入mysql语句中
        pre.setString(2, dname);
        pre.setString(3, type);
        int rs = pre.executeUpdate(); //增删改 executeUpdate()   查 executeQuery()
        if(rs==1){
            System.out.println("数据添加成功!");
        }
        else {
            System.out.println("数据添加失败!");
        }
    }

    @Override
    public void deleteInfo(String id) throws SQLException {
        String sql_delete ="delete from demo where id= ?";
        Connection conn = MysqlUtil.getMysqlConnection();
        PreparedStatement pre = conn.prepareStatement(sql_delete);
        pre.setString(1, id);
        int rs = pre.executeUpdate(); //增删改 executeUpdate()   查 executeQuery()
        if(rs==1){
            System.out.println("删除成功!");
        }
        else {
            System.out.println("删除失败!");
        }
    }

    @Override
    public void removeInfo(String id,String str) throws SQLException {
        String sql_delete ="update  demo set dname = ? where id= ?";
        Connection conn = MysqlUtil.getMysqlConnection();
        PreparedStatement pre = conn.prepareStatement(sql_delete);
        pre.setString(1, str);
        pre.setString(2, id);

        int rs = pre.executeUpdate(); //增删改 executeUpdate()   查 executeQuery()
        if(rs==1){
            System.out.println("修改成功!");
        }
        else {
            System.out.println("修改失败!");
        }
    }
}

制作不易 ,点点关注收藏呗!!!

  • 4
    点赞
  • 32
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

37.2°C i love

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值