JDBC-实现Java代码连接数据库

本文介绍了如何使用Java的JDBC API连接并操作数据库,包括导入数据库驱动、建立连接、执行SQL语句(增删改查)。还提到了JDBC的目录结构,包括BaseDao、DeptDao、DeptImpl等类的设计,以及实体类和工具类的使用。此外,文章涵盖了MySQL的数据库管理命令,如显示库、创建表和删除表。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

JDBC

Java代码实现与服务器的连接思路:

一、导入数据库jar包
1、导入的jar包:mysql-connector-java-5.1.0-bin.jar或者更新的jar包

二、通过反射链接JDBC,链接JDBC驱动
1、获取JDBC引擎:Class.forName(驱动);

三、获取链接
1、DriverManager.getConnection(url,user,password);

四、实现数据库操作
1、添加数据:insert
2、删除数据:delete
3、修改数据:update
3、查询数据:selecte


JDBC及扩展

JDBC(Java DataBase Connectivity,java数据库连接)是一种用于执行SQL语句的Java API,可以为多种关系数据库提供统一访问,它由一组用Java语言编写的类和接口组成。JDBC提供了一种基准,据此可以构建更高级的工具和接口,使数据库开发人员能够编写数据库应用程序,同时,JDBC也是个商标名。

目录

[TOC]来生成目录:

建立数据库

MySQL 表格语法:

语法 | 含义

——– | —

show databases | 显示库

show create database +库名 | 显示创建数据库的语句

show create table +库名 | 显示创建表的语句

use 库名 | 使用这个库

desc student | 查询表

desc student | 查询表

drop database 库名 | 删除库

drop database table 库名 | 删除表

insert into dept values(字段的值) | 添加表的值

select *from 库名t\G | 查询表的所有信息

静态包

JDBC 定义列表语法:

处理数据库层
实体类
工具类
服务类

dao包

1、BaseDao.java

package com.bdqn.dao;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;

import com.bdqn.utils.Pr;



public class BaseDao {
    public static Connection connection=null;
    public static Statement statement=null;
    public static ResultSet resultSet=null;
    public static PreparedStatement preparedStatement=null;

    public static Connection getconnection(){
        try {
            //通过反射链接JDBC,链接JDBC驱动
            Class.forName(Pr.getProperty("driver"));
            //获取链接
            connection=DriverManager.getConnection(Pr.getProperty("url"), Pr.getProperty("user"), Pr.getProperty("password"));
        } catch (ClassNotFoundException e) {
            e.printStackTrace();
        } catch (SQLException e) {
            e.printStackTrace();
        }
        return connection;
    }   

    //增删改
    public static int update(String sql,Object []objects){
        int num= 0;
        try {
            connection=getconnection();
            preparedStatement=connection.prepareStatement(sql);
            if (objects!=null&&objects.length>0) {
                for (int i = 0; i < objects.length; i++) {
                    preparedStatement.setObject((i+1), objects[i]);
                }
            }
            num=preparedStatement.executeUpdate();
            close(connection, preparedStatement, resultSet);
        } catch (SQLException e) {
            e.printStackTrace();
        }
        return num;
    }
    //查询数据
    public static ResultSet select(String sql,Object []objects){
        connection=getconnection();
        ResultSet resultSet=null;
        try {
            preparedStatement =connection.prepareStatement(sql);
            if (objects!=null&&objects.length>0) {
                for (int i = 0; i < objects.length; i++) {
                    preparedStatement.setObject((i+1), objects[i]);
                }
            }
            resultSet=preparedStatement.executeQuery();
        } catch (SQLException e) {
            e.printStackTrace();
        }
        return resultSet;
    }
    //关闭资源
    public static void close(Connection connection,Statement statement,ResultSet resultSet){
        try {
            if (resultSet!=null) {
                resultSet.close();
            }
            if (statement!=null) {
                statement.close();
            }
            if (connection!=null) {
                connection.close();
            }
        } catch (SQLException e) {
            e.printStackTrace();
        }
    }
}
2、DeptDao.java
package com.bdqn.dao;

import java.util.List;

import com.bdqn.entity.Dept;

public interface DeptDao {
    //添加数据
    int insert(Dept dept);
    //删除数据
    int delete(int id);
    //修改数据
    int update(Dept dept);
    //全查
    List<Dept> Allselect();
    //根据ID查
    List<Dept> IdSelect(int Id);
    //模糊查询
    List<Dept> LikeSelect(Dept dept);   
}

impl包

1、DeptImpl.java
package com.bdqn.dao.impl;

import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;

import com.bdqn.dao.BaseDao;
import com.bdqn.dao.DeptDao;
import com.bdqn.entity.Dept;

public class DeptImpl extends BaseDao implements DeptDao{
    //添加数据
    public int insert(Dept dept) {
        int num=0;
        String sql="insert into dept values(?,?,?,?)";
        Object [] objects={dept.getId(),dept.getName(),dept.getAge(),dept.getDmesc()};
        num=BaseDao.update(sql,objects );
        return num;
    }
    //根据id删除数据
    public int delete(int id) {
        int num=0;
        String sql="delete from dept where id=?";
        Object [] objects={id};
        num=BaseDao.update(sql,objects);
        return num;
    }
    //根据id修改名字
    public int update(Dept dept) {
        int num=0;
        String sql="update dept set name=? where id=?";
        Object [] objects={dept.getName(),dept.getId()};
        num=BaseDao.update(sql,objects);
        return num;
    }
    //全查
    public List<Dept> Allselect() {
        List<T> list=new ArrayList<T>();
        String sql="select *from dept";
        ResultSet resultSet=null;
        try {
            resultSet=BaseDao.select(sql, null);
            while (resultSet.next()) {
                list.add(new Dept(resultSet.getInt("id"), resultSet.getString("name"), resultSet.getInt("age"), resultSet.getString("dmesc")));
            }
        } catch (SQLException e) {
            e.printStackTrace();
        }
        return list;
    }
    //根据IDpublic List<Dept> IdSelect(int Id) {
        List<T> list=new ArrayList<T>();
        String sql="select *from dept where id=?";
        Object [] objects={Id};
        ResultSet resultSet=null;
        try {
            resultSet=BaseDao.select(sql, objects);
            while (resultSet.next()) {
                list.add(new Dept(resultSet.getInt("id"), resultSet.getString("name"), resultSet.getInt("age"), resultSet.getString("dmesc")));
            }
        } catch (SQLException e) {
            e.printStackTrace();
        }finally{
            close(BaseDao.connection, BaseDao.preparedStatement, resultSet);
        }
        return list;

    }
    //模糊查询
    public  List<T> LikeSelect(Dept dept) {
        List<T> list=new ArrayList<T>();
        String sql="select *from dept like %?%";
        ResultSet resultSet=null;
        Object []objects={dept.getName()};
        try {
            resultSet=BaseDao.select(sql, objects);
            while (resultSet.next()) {
                list.add(new Dept(resultSet.getInt("id"), resultSet.getString("name"), resultSet.getInt("age"), resultSet.getString("dmesc")));
            }
        } catch (SQLException e) {
            e.printStackTrace();
        }finally{
            close(BaseDao.connection, BaseDao.preparedStatement, resultSet);
        }
        return list;
    }
}

entity包

1、Dept.java
package com.bdqn.entity;

public class  Dept {
    private int  id;
    private String name;
    private int age;
    private String dmesc;
    public int getId() {
        return id;
    }
    public void setId(int id) {
        this.id = id;
    }
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
    public int getAge() {
        return age;
    }
    public void setAge(int age) {
        this.age = age;
    }
    public String getDmesc() {
        return dmesc;
    }
    public void setDmesc(String dmesc) {
        this.dmesc = dmesc;
    }
    public Dept(int id, String name, int age, String dmesc) {
        this.id = id;
        this.name = name;
        this.age = age;
        this.dmesc = dmesc;
    }
    public Dept() {

    }
    @Override
    public String toString() {
        return "Dept [id=" + id + ", name=" + name + ", age=" + age
                + ", dmesc=" + dmesc + "]";
    }


}

utils包

1、DeptImpl.java
package com.bdqn.utils;


import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.InputStream;
import java.util.Properties;

public class Pr {
    private static Properties properties=new Properties();
    /*静态块的作用:运行程序前先实现方法 */
    static {
        InputStream is=null;
        try {
            //使用IO流读取文件
            is = new FileInputStream("database.properties");//properties文件的地址
            //写入文件信息
            properties.load(is);
        } catch (FileNotFoundException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        }finally {
            if (is!=null) {
                try {
                    is.close();
                } catch (IOException e) {
                    e.printStackTrace();
                }
            }
        }
    }
    public static String getProperty(String key) {
        return properties.getProperty(key);
    }   
}


注意:操作数据库的流程需先熟悉Properties方法是对数据库地址等配置请务必熟悉Java基础

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值