java如何连接数据库并进行操作

如何用jdbc连接数据库

1.加载数据库驱动程序

在使用JDBC连接数据库之前,需要加载对应的数据库驱动程序。 加载数据库驱动程序需要先下载相应的数据库驱动jar包。每个数据库都有其特定的驱动程序,因此需要确定要连接的数据库类型,并下载相应的驱动程序。


例如,如果您要连接MySQL数据库,可以下载MySQL官方提供的JDBC驱动程序,也可以使用第三方提供的MySQL JDBC驱动程序。MySQL官方提供的驱动程序可以在官方网站上下载,例如:


一旦下载了驱动程序,您需要将其添加到Java项目的类路径中,以便在项目中使用。具体来说,您可以将驱动程序jar包复制到项目的lib目录中,并将其添加到类路径中,或者在项目中使用Maven等依赖管理工具来管理驱动程序依赖。

2.创建数据库连接的源对象

DataSource dataSource=new MysqlDataSource();

创建了 MysqlDataSource 对象,就可以通过设置其属性来指定数据库连接所需的详细信息,例如主机名、端口号、用户名、密码、数据库名称等。


        ((MysqlDataSource)dataSource).setUrl("jdbc:mysql://127.0.0.1:3306/stu?characterEncoding=utf8&useSSl=false");
        ((MysqlDataSource)dataSource).setUser("root");
        ((MysqlDataSource)dataSource).setPassword("DKY020717.");

“jdbc:mysql://”:指示使用 MySQL JDBC 驱动程序连接数据库的协议前缀。

127.0.0.1:3306 是 MySQL 数据库服务器的地址和端口号,它指的是本地计算机(即当前计算机)上运行的 MySQL 数据库服务器,使用的端口号是 3306。

stu指的是数据库名称

3.数据源对象获取数据库连接

Connection connection= dataSource.getConnection();

4.执行编译的sql语句

 PreparedStatement statement=connection.prepareStatement(sql);

5.执行查询语句

ResultSet resultSet=statement.executeQuery();

executeQuery()方法用于执行查询语句,并返回一个ResultSet对象,

6.执行插入语句,删除,更新语句

//在其中嵌入需求语句
String sql="insert into 表名 values(?,?)";

statement.setInt(1,Sage);
statement.setString(2,Sname);

int ret=statement.executeUpdate();

7.整体代码实现

package selectDemo;


import com.mysql.jdbc.jdbc2.optional.MysqlDataSource;

import javax.sql.DataSource;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;

/**
 * Created with IntelliJ IDEA.
 * Description:
 * User: DKunyu
 * Date: 2023-05-13
 * Time: 16:07
 */
public class selectDemo {
    public static void main(String[] args) throws SQLException {
        //创建数据库连接的数据源对象
        DataSource dataSource=new MysqlDataSource();

        ((MysqlDataSource)dataSource).setUrl("jdbc:mysql://127.0.0.1:3306/stu?characterEncoding=utf8&useSSl=false");
        ((MysqlDataSource)dataSource).setUser("root");
        ((MysqlDataSource)dataSource).setPassword("DKY020717.");

        Connection connection= dataSource.getConnection();
        String sql="select *from student";

        PreparedStatement statement=connection.prepareStatement(sql);

        //结果集合
        ResultSet resultSet=statement.executeQuery();
        System.out.println("Sno    Sname  Sex  Sage  Dno  Dormno");
        while(resultSet.next()){
            //next相当于光标
            String Sno=resultSet.getString("Sno");
            String Sname=resultSet.getString("Sname");
            String Sex=resultSet.getString("Sex");
            int  Sage=resultSet.getInt("Sage");
            String Dno=resultSet.getString("Dno");
            String Dormno=resultSet.getString("Dormno");
            System.out.printf("%6s %5s%5s%4d%5s%5s\n", Sno, Sname, Sex,Sage, Dno, Dormno);

        }
        resultSet.close();
        statement.close();
        connection.close();
    }
}

import com.mysql.jdbc.jdbc2.optional.MysqlDataSource;

import javax.sql.DataSource;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.SQLException;
import java.util.Scanner;

/**
 * Created with IntelliJ IDEA.
 * Description:
 * User: DKunyu
 * Date: 2022-11-19
 * Time: 19:11
 */
public class JDBCInsertDemo {
    public static void main(String[] args) throws SQLException {
        //使用jdbc往数据库中插入一个记录
        //提前准备好数据库(Java106)和数据表(student)


        /**   1.创建数据源,描述数据库服务器在哪*/
        DataSource dataSource=new MysqlDataSource();
        //url    唯一资源地址符
        //设置数据库所在位置
        ((MysqlDataSource)dataSource).setUrl("jdbc:mysql://127.0.0.1:3306/java717?characterEncoding=utf8&useSSL=false");
        //设置用户名
        ((MysqlDataSource)dataSource).setUser("root");
        //设置密码
        ((MysqlDataSource)dataSource).setPassword("DKY020717.");

         /**   2.和数据库建立连接(写的jdbc代码本质是一个mysql客户端,要通过网络和服务器进行通信)*/
         Connection connection=dataSource.getConnection();

         /**   3.构造一个sql语句,完成插入操作*/
         Scanner scan=new Scanner(System.in);
         System.out.println("请输入学号:");
         int id=scan.nextInt();
         System.out.println("请输入姓名:");
         String name=scan.next();
         //String sql="insert into student values(1,'张三')";
         String sql="insert into student values(?,?)";
         //jdbc中还需要搭配一个特定对象,来描述sql的情况
         PreparedStatement statement=connection.prepareStatement(sql);
         statement.setInt(1,id);
         statement.setString(2,name);
         System.out.println("sql"+statement);

         /**   4.执行sql语句(控制客户端给服务器发送请求)*/
         //执行SQL,针对增删改,使用excuteUpdate来执行
         //执行SQL,针对查,使用excuteQuery来执行
         //执行就是给服务器发送网络请求
        int ret=statement.executeUpdate();
        System.out.println(ret);

        /**   5.断开和数据库的连接,释放必要的资源*/
        statement.close();
        connection.close();
    }
}

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值