下面是实现JDBC连接MySQL并实现模糊查询的完整攻略以及两条示例。
步骤一:导入MySQL JDBC驱动包
在使用Java连接MySQL之前,我们需要先将MySQL JDBC驱动包导入到项目中。
推荐使用官方提供的驱动包,下载地址:https://dev.mysql.com/downloads/connector/j/
下载完成后,将驱动包添加到项目的classpath路径下即可。
步骤二:创建连接
通过以下代码创建一个MySQL连接:
Connection conn = null;
try {
Class.forName("com.mysql.jdbc.Driver");
conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/mydatabase", "root", "password");
} catch (SQLException | ClassNotFoundException e) {
e.printStackTrace();
}
其中,jdbc:mysql://localhost:3306/mydatabase
为数据库连接字符串,其中localhost
为数据库所在的服务器地址,3306
为MySQL服务端口号,mydatabase
为数据库名称。root
和password
分别为连接数据库需要使用的用户名和密码。
步骤三:创建Statement对象
创建用于执行SQL语句的Statement对象,代码如下:
Statement stmt = null;
try {
stmt = conn.createStatement();
} catch (SQLException e) {
e.printStackTrace();
}
步骤四:执行SQL语句
在创建Statement对象之后,我们可以使用该对象执行SQL语句。
以模糊查询为例,假设我们要查询所有名称中包含“Tom”的记录,可以使用如下代码:
String sql = "SELECT * FROM mytable WHERE name LIKE '%Tom%'";
ResultSet rs = null;
try {
rs = stmt.executeQuery(sql);
} catch (SQLException e) {
e.printStackTrace();
}
其中,mytable
为待查询的表名,name
为要查询的字段名,'%Tom%'
为要查询的关键字,%
表示可以匹配任意多个字符。
步骤五:获取查询结果
执行完SQL语句之后,我们可以使用ResultSet对象获取查询结果。
以输出查询结果为例,可以使用如下代码:
try {
while (rs.next()) {
String name = rs.getString("name");
int age = rs.getInt("age");
System.out.println("name: " + name + ", age: " + age);
}
} catch (SQLException e) {
e.printStackTrace();
}
其中,name
和age
为查询结果中的字段名。
示例一:查询用户列表
假设我们要查询所有用户名包含“Tom”的用户列表,可以使用以下代码:
Connection conn = null;
try {
Class.forName("com.mysql.jdbc.Driver");
conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/mydatabase", "root", "password");
} catch (SQLException | ClassNotFoundException e) {
e.printStackTrace();
}
Statement stmt = null;
try {
stmt = conn.createStatement();
} catch (SQLException e) {
e.printStackTrace();
}
String sql = "SELECT * FROM user WHERE name LIKE '%Tom%'";
ResultSet rs = null;
try {
rs = stmt.executeQuery(sql);
} catch (SQLException e) {
e.printStackTrace();
}
try {
while (rs.next()) {
String name = rs.getString("name");
int age = rs.getInt("age");
System.out.println("name: " + name + ", age: " + age);
}
} catch (SQLException e) {
e.printStackTrace();
}
try {
rs.close();
stmt.close();
conn.close();
} catch (SQLException e) {
e.printStackTrace();
}
其中,user
为查找用户的表名。
示例二:更新记录
假设我们要将所有名称中包含“Tom”的记录的年龄修改为30岁,可以使用以下代码:
Connection conn = null;
try {
Class.forName("com.mysql.jdbc.Driver");
conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/mydatabase", "root", "password");
} catch (SQLException | ClassNotFoundException e) {
e.printStackTrace();
}
Statement stmt = null;
try {
stmt = conn.createStatement();
} catch (SQLException e) {
e.printStackTrace();
}
String sql = "UPDATE mytable SET age = 30 WHERE name LIKE '%Tom%'";
try {
stmt.executeUpdate(sql);
} catch (SQLException e) {
e.printStackTrace();
}
try {
stmt.close();
conn.close();
} catch (SQLException e) {
e.printStackTrace();
}
其中,mytable
为要更新的表名。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:JDBC连接MySQL并实现模糊查询 - Python技术站