JDBC与Mysql数据库简单笔记

准备工作

mysql一般要导入jar包,步骤为:
右键项目名-> Build Path-> Add External Archives->选择jar包

加载驱动、连接数据库都是固定的代码:

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

Connection con;
Statement statement;
try {
	//加载驱动
    Class.forName("com.mysql.cj.jdbc.Driver");
    //连接数据库,ip地址、端口、表名、用户权限、密码
    con = DriverManager.getConnection("jdbc:mysql://localhost:3306/test?serverTimezone=UTC", "root", "123456");
    statement = con.createStatement();
} catch (ClassNotFoundException e) {
    e.printStackTrace();
}catch (SQLException e) {
	e.printStackTrace();
}

常用操作(statement)

查询

普通查询

//rs保存查询到的符合条件的记录
ResultSet rs = statement.executeQuery("select * from userinfo");
//获取记录中的具体信息用get函数,参数可以是列号也可以是列名
while (rs.next()) {
	System.out.println(rs.getString(1));
	System.out.println(rs.getString("username"));
}

条件查询

//比较查询
ResultSet rs = statement.executeQuery("select * from userinfo where username = '张三' and id>=1");
//格式查询,%表示一个或零个字符  _表示一个字符
ResultSet rs = statement.executeQuery("select * from userinfo where username like '张%' or username like '_四'");

更新、添加与删除操作

statement 对象调用 executeUpdate(String sql)execute(String sql) 方法

//更新:
//update 表 set 字段 = 新值 where <条件子句>
statement.executeLargeUpdate("update userinfo set username = '张新' where username = '张三'");
//添加:
//insert into 表(字段列表) values (对应的记录值)
//insert into 表 values (对应的记录值)
statement.execute("insert into userinfo values(1,'张三','开发部','经理')");
//删除:
//delete from 表名 where <条件子句>
statement.execute("delete from userinfo where username = '张三'");

PreparedStatement类的使用

PreparedStatement类将语句进行了预处理,设置一次语句,然后进行批量操作,省去了重复解析sql语句的工作。
在PreparedStatement调用excute方法前,需要设置通配符的值。通配符其实可以看做是SQL语句的参数,可以用?来代替字段的值。
以一个批量插入的操作为例子:

// 批量插入
PreparedStatement ps = con.prepareStatement("insert into userinfo values (?, ?, ?, ?)");
for (int i = 0; i < 100; i++) {
	ps.setInt(1, i);
	ps.setString(2, "info1");
	ps.setString(3, "info2");
	ps.setString(4, "info3");
	ps.executeUpdate();
}
// 批量查询操作
ps = con.prepareStatement("select * from userinfo where id = ?");
for (int i = 0; i < 100; i++) {
	ps.setInt(1, i);
	ResultSet rs = ps.executeQuery();
	if (rs.next())
		System.out.println(
				rs.getString(1) + '\t' + rs.getString(2) + '\t' + rs.getString(3) + '\t' + rs.getString(4));
}
// 批量删除操作
ps = con.prepareStatement("delete from userinfo where id = ?");
for (int i = 0; i < 100; i++) {
	ps.setInt(1, i);
	ps.executeUpdate();
}
  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值