JDBC连接数据库,并实现对数据库的增删改操作

2 篇文章 0 订阅
1 篇文章 0 订阅
/**
 * @description:
 * 	1、以下代码实现了JDBC连接 Mysql数据库,并实现增删改操作。
 * 	2、本代码将数据库的增删改操作的共用方法提取出来,因此 Utils类的方法同时适合
 * 		对数据库的增删改的操作,测试代码中仅放需要修改的具体数据。
 * 	3、(**重要**)由于本代码涉及到 IO流和数据库连接,需要关闭资源,因此对异常的
 * 		正确处理方式为:try...catch...finally。但这样做会颠倒步骤的顺序,代码的
 * 		主体将被不必要的捕捉异常所掩盖。为清晰显示步骤的前后连贯性,本代码使用throws抛出异常。
 */
//在jdbc.properties文件中配置资源,实现代码与数据分离,降低耦合性
user=root
password=123456
url=jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=utf-8
// ?useUnicode=true&characterEncoding=utf-8 设置避免在数据库中显示中文乱码
driverClass=com.mysql.jdbc.Driver
import java.io.InputStream;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.SQLException;
import java.util.Properties;

/**
 * @author :Prannt
 * @description:定义三个静态方法,分别用于:获取数据库的连接、执行sql语句、关闭资源
 * @program : 1_14
 * @date :2021/1/18 3:36
 */
public class Utils {
    //获取数据库连接的方法
    public static Connection getConnection() throws Exception {
        InputStream is = ClassLoader.getSystemClassLoader().getResourceAsStream("jdbc.properties");
        Properties pros = new Properties();
        pros.load(is);

        String user = pros.getProperty("user");
        String password = pros.getProperty("password");
        String url = pros.getProperty("url");
        String driverClass = pros.getProperty("driverClass");

        //加载驱动
        Class.forName(driverClass);
        //获取连接
        Connection conn = DriverManager.getConnection(url, user, password);
        return conn;
    }

    //执行sql语句的方法
    public static void update(String sql,Object...args) throws Exception { //sql中占位符的个数与可变形参的长度必须一致
        //1.获取数据库的连接
        Connection conn = Utils.getConnection();
        //2.预编译sql语句,返回PreparedStatement的实例
        PreparedStatement ps = conn.prepareStatement(sql);
        //3.填充占位符
        for (int i = 0; i < args.length; i++) {
            ps.setObject(i + 1,args[i]);
        }
        //4.执行
        ps.execute();
        //5.关闭资源
        Utils.closeResource(conn,ps);
    }

    //关闭资源的方法
    public static void closeResource(Connection conn, PreparedStatement ps) throws Exception {
        conn.close();
        ps.close();
    }
}
import java.sql.Connection;

/**
 * @author :Prannt
 * @description:测试在 user表中增添一条数据
 * @program : 1_14
 * @date :2021/1/18 3:48
 */
public class Test {
    public static void main(String[] args) throws Exception {
        //1.获取数据库的连接
        Connection conn = Utils.getConnection();
        //2.预编译sql语句,返回PreparedStatement的实例
        String sql = "insert into user(id,name,password,address,phone) values(?,?,?,?,?)";
        Utils.update(sql,"6","测试","523652","China","14598654896");
    }
}

//结果如下图所示
在这里插入图片描述同理可实现数据库的删、该操作,查询操作与之不同。

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值