Java中数据库连接的方法,以及代码演示

1.步骤

1.导入jar包
一般可以在百度直接搜索可以找到,如果对版本有要求的话进行相应版本的搜索,我这里是8.0.16版本的
点我也可以下载
2.加载驱动:

Class.forName("com.mysql.jdbc.Driver");

此时会抛出一个异常,可以根据idea的提示将其抛出。
3.通过驱动管理器获取连接对象
注意url中要带参数的话用?进行连接,连接第二个参数时使用&连接,在这里我已经将其乱码问题解决,大家可以放心使用,用户名称和密码根据自己设置的自行修改。

 Connection conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/fruitdb?useSSL=false&useUnicode=true&characterEncoding=utf-8","root","123456");

4.sql语句的编写:

String sql = "insert into t_fruit values(0,?,?,?,?)";

5.创建预处理命令:

 PreparedStatement psmt = conn.prepareStatement(sql);

6.填充参数:

 psmt.setString(1,"榴莲");
        psmt.setInt(2,15);
        psmt.setInt(3,100);
        psmt.setString(4,"榴莲是一种神奇的水果");

6.执行更新(增删改),返回影响的行数

int count = psmt.executeUpdate();;
System.out.printf(count>0 ? "添加成功!" :"添加失败!");

7.释放资源(关闭链接,先关闭psmt,再关闭conn)

psmt.close();
conn.close();

2.增删改查的代码演示:

1.插入一个数:

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

public class demo02 {
    public static void main(String[] args) throws ClassNotFoundException, SQLException {
        //    1.加载驱动
        Class.forName("com.mysql.jdbc.Driver");
//        2.通过驱动管理器获取链接对象
//        url中需要带参数用?连接第二个参数开始使用&连接
        Connection conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/fruitdb?useSSL=false&useUnicode=true&characterEncoding=utf-8","root","123456");
//        3.编写SQL语句
//        id ,fanme,price,fcount,remark
        String sql = "insert into t_fruit values(0,?,?,?,?)";
//        4.创建预处理命令
        PreparedStatement psmt = conn.prepareStatement(sql);
//        5.填充参数
        psmt.setString(1,"榴莲");
        psmt.setInt(2,15);
        psmt.setInt(3,100);
        psmt.setString(4,"榴莲是一种神奇的水果");
//        6.执行更新(增删改),返回影响的行数
        int count = psmt.executeUpdate();;
        System.out.printf(count>0 ? "添加成功!" :"添加失败!");
//        7.释放资源(关闭链接,先关闭psmt,再关闭conn)
        psmt.close();
        conn.close();
    }

}

2.更新一个数

import org.gjt.mm.mysql.Driver;

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

public class demo03 {
    public static void main(String[] args) throws ClassNotFoundException, SQLException {
        Fruit fruit = new Fruit(33, "猕猴桃", "它是水果之王");

        Class.forName("org.gjt.mm.mysql.Driver");
        Connection conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/fruitdb?useSSL=false&useUnicode=true&characterEncoding=utf-8", "root", "123456");
        String sql = "update t_fruit set fname =?,remark = ? where fid = ?";
        PreparedStatement psmt = conn.prepareStatement(sql);
        psmt.setString(1, fruit.getFname());
        psmt.setString(2, fruit.getRemark());
        psmt.setInt(3, fruit.getFid());
        int count = psmt.executeUpdate();;
        System.out.printf(count>0 ? "修改成功!" :"修改失败!");
        psmt.close();
        conn.close();
    }
}

3.删除一个数

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

public class demo04 {
    public static void main(String[] args) throws ClassNotFoundException, SQLException {
        Class.forName("org.gjt.mm.mysql.Driver");
        Connection conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/fruitdb?useSSL=false&useUnicode=true&characterEncoding=utf-8", "root", "123456");
        String  sql ="delete from t_fruit where fid = ?";
        PreparedStatement psmt = conn.prepareStatement(sql);
        psmt.setInt(1,4);
        int count = psmt.executeUpdate();;
        System.out.printf(count>0 ? "删除成功!" :"删除失败!");
        psmt.close();
        conn.close();
    }
}

5,查找所有列的信息:

import java.sql.*;
import java.util.ArrayList;
import java.util.List;
//JDBC查询所有列的信息
public class demo05 {
    public static void main(String[] args) throws ClassNotFoundException, SQLException {
        Class.forName("org.gjt.mm.mysql.Driver");
        Connection conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/fruitdb?useSSL=false&useUnicode=true&characterEncoding=utf-8", "root", "123456");
//        3.编写SQL语句
        String  sql ="select *from t_fruit ";

        PreparedStatement psmt = conn.prepareStatement(sql);
//       5.执行查询返回的结果集
        ResultSet rs = psmt.executeQuery();
//        6.解析结果集
        List<Fruit> fruitList = new ArrayList<>();
        while (rs.next()){
//            1表示读取当前行第一列的数据
//            getint,因为这一列是int类型
//            也可以为结果集的列名
            int fid = rs.getInt(1);
            String fname =rs.getString("fname");
            int price  = rs.getInt(3);
            int fcount = rs.getInt(4);
            String remark = rs.getString(5);
            Fruit fruit = new Fruit( fid,fname,price,fcount,remark);
            fruitList.add(fruit);
        }
        rs.close();
        psmt.close();
        conn.close();
        fruitList.forEach(System.out::println);
    }
}

6.查找指定信息:

import java.sql.*;
import java.util.ArrayList;
import java.util.List;
//JDBC查寻指定的fid的库存记录
public class demo06 {
    public static void main(String[] args) throws ClassNotFoundException, SQLException {
        Class.forName("org.gjt.mm.mysql.Driver");
        Connection conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/fruitdb?useSSL=false&useUnicode=true&characterEncoding=utf-8", "root", "123456");
//        3.编写SQL语句
        String  sql ="select *from t_fruit where fid = ?";

        PreparedStatement psmt = conn.prepareStatement(sql);
        psmt.setInt(1,33);
//       5.执行查询返回的结果集
        ResultSet rs = psmt.executeQuery();

//        6.解析结果集
        if(rs.next()){
//            1表示读取当前行第一列的数据
//            getint,因为这一列是int类型
//            也可以为结果集的列名
            int fid = rs.getInt(1);
            String fname =rs.getString("fname");
            int price  = rs.getInt(3);
            int fcount = rs.getInt(4);
            String remark = rs.getString(5);
            Fruit fruit = new Fruit( fid,fname,price,fcount,remark);
            System.out.println(fruit);
        }
        rs.close();
        psmt.close();
        conn.close();
    }
}

其实这么多代码的演示就是修改sql语句,然后注意对获取数据的处理方式就行,

补充

为什要有预处理命令呢:
如果没有预处理命令的话,当处理用户输入进来的不规范的符号,就会使计算机在处理代码的时候将其认为时内部命令,从而不能达到原本的需求,增加预处理命令,就是为了防止不安全事件的发生。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值