java对数据库的增删改查

 

Java 数据库连接,(Java Database Connectivity,简称JDBC)是Java语言中用来规范客户端程序如何来访问数据库的应用程序接口,提供了诸如查询和更新数据库中数据的方法。JDBC也是Sun Microsystems的商标。它JDBC是面向关系型数据库的。

简单地说,就是用于执行SQL语句的一类Java API,通过JDBC使得我们可以直接使用Java编程来对关系数据库进行操作。通过封装,可以使开发人员使用纯Java API完成SQL的执行。

首先现在数据库中创建一个数据库并且创建数据表然后导入相关信息

CREATE TABLE  `byc` (
   `id` int(11) not null auto_increment,
   `name` char(20) not null default '' comment '出现错误',
   primary key (`id`)
)engine=InnoDB default charset=utf8;

insert into `byc` values ('1','byc'),('2','zyz'),('3','wj'),('4','lxg'),('5','xjh');

那么首先就是插入一条数据信息

import java.sql.*;

public class Main {

    public static void main(String[] args) throws Exception {
        Class.forName("com.mysql.jdbc.Driver");//加载驱动
        
        String jdbc="jdbc:mysql://localhost:3306/test";
        Connection conn=DriverManager.getConnection(jdbc, "root", "root");//链接到数据库
        
        Statement state=conn.createStatement();   //容器
        String sql="insert into byc values('6','zyzbyc')";   //SQL语句
        state.executeUpdate(sql);         //将sql语句上传至数据库执行
        conn.close();//关闭通道
   }
}

 

然后删除数据库中的一条数据

import java.sql.*;

public class Main {

    public static void main(String[] args) throws Exception {
        Class.forName("com.mysql.jdbc.Driver");//加载驱动
        
        String jdbc="jdbc:mysql://localhost:3306/test";
        Connection conn=DriverManager.getConnection(jdbc, "root", "root");//链接到数据库
        
        Statement state=conn.createStatement();   //容器
        String sql="delete from byc where id='4'";   //SQL语句
        state.executeUpdate(sql);         //将sql语句上传至数据库执行
        
        conn.close();//关闭通道

    }
}

 

再然后修改数据库中的一条数据

import java.sql.*;
public class Main {

    public static void main(String[] args) throws Exception {
        Class.forName("com.mysql.jdbc.Driver");//加载驱动
        
        String jdbc="jdbc:mysql://localhost:3306/test";
        Connection conn=DriverManager.getConnection(jdbc, "root", "root");//链接到数据库
        
        Statement state=conn.createStatement();   //容器
        String sql="update byc set name='这是一条被修改的数据' where id='6' ";   //SQL语句
        state.executeUpdate(sql);         //将sql语句上传至数据库执行
        
        conn.close();//关闭通道

    }

}

 

最后就是查询数据库中的信息

import java.sql.*;
public class Main {
    public static void main(String[] args) throws Exception {
        //导入驱动包
        Class.forName("com.mysql.jdbc.Driver"); 
        //链接至数据库
        String jdbc="jdbc:mysql://localhost:3306/test";
    Connection conn=DriverManager.getConnection(jdbc, "root", "root");
    Statement state=conn.createStatement();//容器
    String sql="select * from byc";           //sql语句
    ResultSet rs=state.executeQuery(sql);     //将sql语句传至数据库,返回的值为一个字符集用一个变量接收 
    
    while(rs.next()){    //next()获取里面的内容
    System.out.println(rs.getString(1)+" "+rs.getString(2));
                         //getString(n)获取第n列的内容
                            //数据库中的列数是从1开始的
    }   
    conn.close();
    }
}

 

当然在多数情况下我们可以将有关与数据库的一些用法写成函数形式,优化代码结构方便调用

private static Connection getConn() {
    String driver = "com.mysql.jdbc.Driver";
    String url = "jdbc:mysql://localhost:3306/samp_db";
    String username = "root";
    String password = "";
    Connection conn = null;
    try {
        Class.forName(driver); //classLoader,加载对应驱动
        conn = (Connection) DriverManager.getConnection(url, username, password);
    } catch (ClassNotFoundException e) {
        e.printStackTrace();
    } catch (SQLException e) {
        e.printStackTrace();
    }
    return conn;
}
private static int insert(Student student) {
    Connection conn = getConn();
    int i = 0;
    String sql = "insert into students (Name,Sex,Age) values(?,?,?)";
    PreparedStatement pstmt;
    try {
        pstmt = (PreparedStatement) conn.prepareStatement(sql);
        pstmt.setString(1, student.getName());
        pstmt.setString(2, student.getSex());
        pstmt.setString(3, student.getAge());
        i = pstmt.executeUpdate();
        pstmt.close();
        conn.close();
    } catch (SQLException e) {
        e.printStackTrace();
    }
    return i;
}

 

 

 

 

private static int update(Student student) {
    Connection conn = getConn();
    int i = 0;
    String sql = "update students set Age='" + student.getAge() + "' where Name='" + student.getName() + "'";
    PreparedStatement pstmt;
    try {
        pstmt = (PreparedStatement) conn.prepareStatement(sql);
        i = pstmt.executeUpdate();
        System.out.println("resutl: " + i);
        pstmt.close();
        conn.close();
    } catch (SQLException e) {
        e.printStackTrace();
    }
    return i;
}

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

  • 7
    点赞
  • 85
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
Java数据库增删改查操作通常需要使用JDBC API和相关的数据库驱动程序。以下是一个简单的示例,演示了如何使用JDBC在MySQL数据库中执行增删改查操作: 1. 导入JDBC驱动程序 在Java项目中使用JDBC访问MySQL数据库之前,需要导入MySQL JDBC驱动程序。可以从MySQL官方网站下载最新的MySQL JDBC驱动程序,并将其添加到Java项目的类路径中。 2. 建立数据库连接 在Java中使用JDBC访问数据库,需要首先建立与数据库的连接。可以通过以下代码建立一个MySQL数据库连接: ``` String url = "jdbc:mysql://localhost:3306/testdb"; String user = "root"; String password = "password"; Connection conn = DriverManager.getConnection(url, user, password); ``` 其中,url指定了数据库连接的URL,user和password指定了数据库用户的用户名和密码。这里的示例使用了本地MySQL服务器上的testdb数据库,可以根据实际情况修改。 3. 执行SQL语句 建立好数据库连接之后,可以使用Java中的Statement或PreparedStatement对象执行SQL语句。以下是一个执行SELECT语句的示例: ``` String sql = "SELECT * FROM users WHERE id = ?"; PreparedStatement pstmt = conn.prepareStatement(sql); pstmt.setInt(1, 1); ResultSet rs = pstmt.executeQuery(); while (rs.next()) { int id = rs.getInt("id"); String name = rs.getString("name"); int age = rs.getInt("age"); System.out.println("id: " + id + ", name: " + name + ", age: " + age); } ``` 这里使用了PreparedStatement对象,可以避免SQL注入攻击。通过setInt方法设置SQL语句中的参数,然后调用executeQuery方法执行查询,最后通过ResultSet对象获取结果集。 4. 关闭数据库连接 在完成数据库操作后,需要关闭数据库连接以释放资源。可以通过以下代码关闭连接: ``` rs.close(); pstmt.close(); conn.close(); ``` 以上就是Java数据库增删改查操作的基本步骤。需要根据具体的需求和情况进行调整和扩展。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

欲游山河十万里

你的鼓励是我们创作的动力

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

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

打赏作者

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

抵扣说明:

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

余额充值