【java】jdbc 连接 mysql 数据库

jdbc连接数据库主要有以下几个步骤:

1.加载相应数据库的驱动包(到各数据库官网下载)

// 1.加载驱动
try {
	Class.forName("com.mysql.jdbc.Driver");
} catch (ClassNotFoundException e) {
	e.printStackTrace();
}

2.获取连接

// 2.获取连接
conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/test", "root", "root");
//为了避免出现乱码问题:jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=utf-8

3.创建statement或prepareStatement对象

// 3.创建statement对象
stmt = conn.createStatement();
// pstmt = conn.prepareStatement(sql);预编译sql语句
// pstmt.setString(1,var1);注意参数从1开始    

这里说明一下prepareStatement与statement的区别:

  • PreparedStatement可以写动态参数化的查询
  • PreparedStatement可以防止SQL注入式攻击
  • PreparedStatement比 Statement 效率更好

4.执行sql语句

// 4.执行sql语句
String sql = "SELECT `id`,`name` FROM `pet`";
rs = stmt.executeQuery(sql);

这里简单说明一下execute(),executeQuery(),executeUpdate()

  • execute():可用于执行任何SQL语句,返回一个boolean值,表明执行该SQL语句是否返回了ResultSet。如果执行后第一个结果是ResultSet,则返回true,否则返回false。
  • executeQuery():这个方法被用来执行 SELECT 语句,但也只能执行查询语句,执行后返回代表查询结果的ResultSet对象。
  • executeUpdate():用于执行 INSERT、UPDATE 或 DELETE 语句以及 SQL DDL(数据定义语言)语句。executeUpdate 的返回值是一个整数(int),指示受影响的行数(即更新计数)。对于 CREATE TABLE 或 DROP TABLE 等不操作行的语句,executeUpdate 的返回值总为零。

5.处理ResultSet的结果

// 5.处理ResultSet的结果
while(rs.next()){
	System.out.print(rs.getInt("id"));
	System.out.println(rs.getString("name"));
}

6.关闭连接

// 6.关闭连接
if (conn != null) {
	conn.close();
}

完整代码如下:

Connection conn = null;
Statement stmt = null;
ResultSet rs = null;

// 1.加载驱动
try {
	Class.forName("com.mysql.jdbc.Driver");
} catch (ClassNotFoundException e) {
	e.printStackTrace();
}

try {
	// 2.获取连接
	conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/test", "root", "root");
	// 3.创建statement对象
	stmt = conn.createStatement();
	// 4.执行sql语句
	String sql = "SELECT `id`,`name` FROM `pet`";
	rs = stmt.executeQuery(sql);
	// 5.处理ResultSet的结果
	while(rs.next()){
		System.out.print(rs.getInt("id"));
		System.out.println(rs.getString("name"));
	}
	// 6.关闭连接
	if (conn != null) {
		conn.close();
	}
} catch (SQLException e) {
	e.printStackTrace();
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值