JDBC入门知识

本文介绍如何使用Java连接并操作MySQL数据库,包括加载驱动、获取连接、执行查询等步骤,并对比了Statement与PreparedStatement的区别。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

数据库已Mysql为例子

第一步:首先要加载数据库驱动

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


第二步;得到数据库连接,方法是调用DriverManager的静态方法getConnection

String url = "jdbc:mysql://localhost:3306/databaseName?user=root&password=root";

Connection conn = DriverManager.getConnection(String url);


第三部:创建查询语句,有两种方法

String sql  ="select name, height from person where id=?";

1, Statement stmt = conn.createStatment();


2,PrepareStatment ps = conn.PrepareStatment(String sql);


这两种方法的区别是第一种有sql注入的bug,并且效率比较低

第二种可以通过使用占位符的方式,比较灵活,解决了sql注入的威胁,通过预编译,执行速度比较快


一次为占位符赋值,从1开始

ps.setInt(1, 20);


可以使用stmt.executeQuery(sql)发送执行语句,返回值是一个ResultSet对象,executeUpdate(sql)的返回值是int类型,代表修改的行数.

ps调用方法和上面的相同, 因为在构造的时候已经有了sql语句,所以只需要调用空参数的方法.


如果是查询,那么需要对结果集处理,一般是封装到一个实体对象中

Person p = new Person();

if(rs.next()) {//判断ResultSet中是否有数据,当有多行数据时应该用while循环

String name= rs.getString("colName");

double height = rs.getDouble("height");

p.setName(name);

p.setHeight(height);



在程序的最后要早finally块中依次关闭资源.

finally {

try {

if(rs != null)

rs.close();

}  finally {

try {

if(ps != null)

ps.close();

} finally {

if(conn != null)

conn.close();

}

}

}


涉及到的事务处理需要用到的方法

conn.setAutoCommit(false);//设置自动提交为假

conn.commit();//知道执行这个方法,前面的sql语句才会执行


SavePoint sp = conn.setSavePoint() ;//设置回滚点.

conn.rollback(sp);//回滚到前面设置的那个位置,回滚点前面的语句正常执行

conn.commit();//执行回滚操作


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值