软件项目开发高手之路1-Java连接数据库

目录

下载安装phpstudy工具

下载安装数据库远程连接工具

准备好数据

jdbc

idea开发java连接数据库

新建一个maven项目,导入java连接mysql依赖包

创建包,新建查询类

运行查看结果

添加数据的方法

字符串拼接

主类调用

运行,查看结果

参数化执行对象

创建DTO对象用于传递数据

改写参数化对象添加数据方法

改写调用方法

抽取创建连接connection对象的代码为一个方法

改写查询和插入代码

实现数据的删除

数据的修改


下载安装phpstudy工具

下载安装数据库远程连接工具

navcat

准备好数据

创建数据库,建立表,添加记录

jdbc

java连接数据库的驱动

JDBC的全称是Java数据库连接(Java Database Connectivity),它是一套用于执行SQL语句的Java API。应用程序可通过这套API连接到关系型数据库,并使用SQL语句来完成对数据库中数据的查询、新增、更新和删除等操作。

idea开发java连接数据库

新建一个maven项目,导入java连接mysql依赖包

创建包,新建查询类

package cn.edu.hgu;
import java.sql.*;
/**
 * description:java连接mysql,实现增删改查
 * author:不知名小元
 * date:2023/11/2 15:32
 */
public class StudentCRUD {
    public static void main(String[] args) throws ClassNotFoundException, SQLException {
        //1.导入驱动类
        Class.forName("com.mysql.jdbc.Driver");
        //2.用户信息和URL
        String url = "jdbc:mysql://localhost:3307/edu?useUnicode=true&characterEncoding=utf8&useSSL=true";
//        localhost:指定为本地。
//        3307:为数据库端口。
//        test1:为所需连接的数据库名。
//        useUnicode=true&characterEncoding=gbk:为添加编码和解码的格式要求。
//        useSSL:安全连接。
//        user和password:即是数据库用户名和密码
        String user = "root";
        String password = "root";
        //3.单例模式获取连接
        Connection conn = DriverManager.getConnection(url,user,password);
        //4.执行SQL的对象
        Statement st = conn.createStatement();
        //5.执行SQL
        String sql = "select * from students";
        ResultSet rs = st.executeQuery(sql);
        while(rs.next()){
            System.out.println("id="+rs.getObject("id"));
            System.out.println("sno="+rs.getObject("sno"));
            System.out.println("name="+rs.getObject("name"));
            System.out.println("sex="+rs.getObject("sex"));
            System.out.println("age="+rs.getObject("age"));
            System.out.println("addr="+rs.getObject("addr"));
        }
        //6.释放连接
        rs.close();
        st.close();
        conn.close();
    }
}

运行查看结果

 

添加数据的方法

字符串拼接

  //添加数据
    public static void dataInsert(int id,String sno,String name,String sex,int age,String addr) throws ClassNotFoundException, SQLException {
        //1.导入驱动类
        Class.forName("com.mysql.jdbc.Driver");
        //2.用户信息和URL
        String url = "jdbc:mysql://localhost:3307/edu?useUnicode=true&characterEncoding=utf8&useSSL=true";
        //        localhost:指定为本地。
//        3307:为数据库端口。
//        test1:为所需连接的数据库名。
//        useUnicode=true&characterEncoding=gbk:为添加编码和解码的格式要求。
//        useSSL:安全连接。
//        user和password:即是数据库用户名和密码
        String user = "root";
        String password = "root";
        //3.单例模式获取连接
        Connection conn = DriverManager.getConnection(url, user, password);
        //4.执行SQL的对象
        Statement st = conn.createStatement();
        //5.执行SQL
//        String sql = "insert into students values(6,4210005,'天’,'男',20,'天津')";
       String sql = "insert into student values("
               + id + ",'"
               + sno + "','"
               + name + "','"
               + sex + "',"
               + age + ",'"
               + addr + "')";
       st.executeUpdate(sql);
        //6.释放连接
        st.close();
        conn.close();
    }

主类调用

运行,查看结果

 

参数化执行对象

再添加一个方法

 

执行查看结果

创建DTO对象用于传递数据

添加getter和setter方法

最终的类

 

 

  

改写参数化对象添加数据方法

 

改写调用方法

执行查看结果

抽取创建连接connection对象的代码为一个方法

改写查询和插入代码

实现数据的删除

数据的修改

查看结果

总体代码

package cn.edu.hgu;
import cn.edu.hgu.dto.StudentDTO;

import java.sql.*;
/**
 * description:java连接mysql,实现增删改查
 * author:不知名小元
 * date:2023/11/2 15:32
 */
public class StudentCRUD {
    public static void main(String[] args) throws ClassNotFoundException, SQLException {
       //输出数据
        dataout();
        //添加数据
//        int id = 8;
//        String sno = "4210009";
//        String name = "周周";
//        String sex = "女";
//        int age = 21;
//        String addr = "广西南宁";
//        StudentDTO studnetDTO = new StudentDTO();
//        studnetDTO.setId(9);
//        studnetDTO.setSno("4210009");
//        studnetDTO.setName("威威");
//        studnetDTO.setSex("男");
//        studnetDTO.setAge(22);
//        studnetDTO.setAddr("广西南宁");
//        dataInsert(id,sno,name,sex,age,addr);
//        dataInsert2(id,sno,name,sex,age,addr);
//        dataInsert2(studnetDTO);
//        修改数据
        StudentDTO studnetDTO = new StudentDTO();
        studnetDTO.setId(8);
        studnetDTO.setSno("4210009");
        studnetDTO.setName("威威");
        studnetDTO.setSex("男");
        studnetDTO.setAge(22);
        studnetDTO.setAddr("广西南宁");
        dataUpdateById(studnetDTO);
//        //删除数据
//        dataDeleteById(9);
    }
    //输出数据
    public static void dataout() throws ClassNotFoundException,SQLException {
//        //1.导入驱动类
//        Class.forName("com.mysql.jdbc.Driver");
//        //2.用户信息和URL
//        String url = "jdbc:mysql://localhost:3307/edu?useUnicode=true&characterEncoding=utf8&useSSL=true";
//        //        localhost:指定为本地。
        3307:为数据库端口。
        test1:为所需连接的数据库名。
        useUnicode=true&characterEncoding=gbk:为添加编码和解码的格式要求。
        useSSL:安全连接。
        user和password:即是数据库用户名和密码
//        String user = "root";
//        String password = "root";
//        //3.单例模式获取连接
//        Connection conn = DriverManager.getConnection(url, user, password);
        Connection conn = getConnection();
        //4.执行SQL的对象
        Statement st = conn.createStatement();
        //5.执行SQL
        String sql = "select * from students";
        ResultSet rs = st.executeQuery(sql);
        while (rs.next()) {
            System.out.println("id=" + rs.getObject("id"));
            System.out.println("sno=" + rs.getObject("sno"));
            System.out.println("name=" + rs.getObject("name"));
            System.out.println("sex=" + rs.getObject("sex"));
            System.out.println("age=" + rs.getObject("age"));
            System.out.println("addr=" + rs.getObject("addr"));
        }
        //6.释放连接
        st.close();
        conn.close();
    }
    //添加数据
    public static void dataInsert(int id,String sno,String name,String sex,int age,String addr) throws ClassNotFoundException, SQLException {
//        //1.导入驱动类
//        Class.forName("com.mysql.jdbc.Driver");
//        //2.用户信息和URL
//        String url = "jdbc:mysql://localhost:3307/edu?useUnicode=true&characterEncoding=utf8&useSSL=true";
//        //        localhost:指定为本地。
        3307:为数据库端口。
        test1:为所需连接的数据库名。
        useUnicode=true&characterEncoding=gbk:为添加编码和解码的格式要求。
        useSSL:安全连接。
        user和password:即是数据库用户名和密码
//        String user = "root";
//        String password = "root";
//        //3.单例模式获取连接
//        Connection conn = DriverManager.getConnection(url, user, password);
        Connection conn = getConnection();
        //4.执行SQL的对象
        Statement st = conn.createStatement();
        //5.执行SQL
//        String sql = "insert into students values(6,4210005,'天’,'男',20,'天津')";
       String sql = "insert into students values("
               + id + ",'"
               + sno + "','"
               + name + "','"
               + sex + "',"
               + age + ",'"
               + addr + "')";
       st.executeUpdate(sql);
        //6.释放连接
        st.close();
        conn.close();
    }
    //参数化执行对象
//    public static void dataInsert2(int id,String sno,String name,String sex,int age,String addr) throws ClassNotFoundException, SQLException {
    public static void dataInsert2(StudentDTO studentDTO) throws ClassNotFoundException, SQLException {
        //1.导入驱动类
        Class.forName("com.mysql.jdbc.Driver");
        //2.用户信息和URL
        String url = "jdbc:mysql://localhost:3307/edu?useUnicode=true&characterEncoding=utf8&useSSL=true";
        //        localhost:指定为本地。
//        3307:为数据库端口。
//        test1:为所需连接的数据库名。
//        useUnicode=true&characterEncoding=gbk:为添加编码和解码的格式要求。
//        useSSL:安全连接。
//        user和password:即是数据库用户名和密码
        String user = "root";
        String password = "root";
        //3.单例模式获取连接
        Connection conn = DriverManager.getConnection(url, user, password);
        //4.创建参数化的执行对象
        String sql = "insert into students values(?,?,?,?,?,?)";
        PreparedStatement ps =conn.prepareStatement(sql);
//        ps.setInt(1,id);
//        ps.setString(2,sno);
//        ps.setString(3,name);
//        ps.setString(4,sex);
//        ps.setInt(5,age);
//        ps.setString(6,addr);
        ps.setInt(1,studentDTO.getId());
        ps.setString(2,studentDTO.getSno());
        ps.setString(3,studentDTO.getName());
        ps.setString(4,studentDTO.getSex());
        ps.setInt(5,studentDTO.getAge());
        ps.setString(6,studentDTO.getAddr());
        ps.executeUpdate();
        //5.释放连接
        ps.close();
        conn.close();
    }
    //获取连接
    public static Connection getConnection() throws ClassNotFoundException, SQLException {
        //1.导入驱动类
        Class.forName("com.mysql.jdbc.Driver");
        //2.用户信息和URL
        String url = "jdbc:mysql://localhost:3307/edu?useUnicode=true&characterEncoding=utf8&useSSL=true";
        //        localhost:指定为本地。
//        3307:为数据库端口。
//        test1:为所需连接的数据库名。
//        useUnicode=true&characterEncoding=gbk:为添加编码和解码的格式要求。
//        useSSL:安全连接。
//        user和password:即是数据库用户名和密码
        String user = "root";
        String password = "root";
        //3.单例模式获取连接
        Connection conn = DriverManager.getConnection(url, user, password);
        return conn;
    }
    //删除数据
    public static void dataDeleteById(int id) throws SQLException, ClassNotFoundException {
        //获取连接
        Connection conn = getConnection();
        //创建参数化的执行对象
        String sql = "delete from students where id = ?";
        PreparedStatement ps = conn.prepareStatement(sql);
        ps.setInt(1,id);
        ps.executeUpdate();
        //关闭资源
        ps.close();
        conn.close();
    }
    //参数化修改数据
    public static void dataUpdateById(StudentDTO studentDTO) throws SQLException, ClassNotFoundException {
    //获取连接
    Connection conn = getConnection();
    //创建参数化的执行对象
    String sql = "update students set sno = ? ,name = ? ,sex = ? ,age = ? ,addr = ? where id = ?";
    PreparedStatement ps = conn.prepareStatement(sql);
    ps.setString(1,studentDTO.getSno());
    ps.setString(2,studentDTO.getName());
    ps.setString(3,studentDTO.getSex());
    ps.setInt(4,studentDTO.getAge());
    ps.setString(5,studentDTO.getAddr());
    ps.setInt(6,studentDTO.getId());
    ps.executeUpdate();
    //关闭资源
    ps.close();
    conn.close();
    }
}
package cn.edu.hgu.dto;

/**
 * description:学生类对应表studennts
 * author:不知名小元
 * date:2023/11/2 18:56
 */
public class StudentDTO {
    int id;
    String sno;
    String name;
    String sex;
    int age;
    String addr;

    public int getId() {
        return id;
    }

    public void setId(int id) {
        this.id = id;
    }

    public String getSno() {
        return sno;
    }

    public void setSno(String sno) {
        this.sno = sno;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public String getSex() {
        return sex;
    }

    public void setSex(String sex) {
        this.sex = sex;
    }

    public int getAge() {
        return age;
    }

    public void setAge(int age) {
        this.age = age;
    }

    public String getAddr() {
        return addr;
    }

    public void setAddr(String addr) {
        this.addr = addr;
    }
}
  • 4
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值