以下是详细的攻略:
连接数据库
Java连接数据库需要使用JDBC(Java Database Connectivity)技术,具体过程如下:
- 导入JDBC驱动程序。如果使用MySQL数据库,则需要下载相应的驱动。可以在MySQL官网 下载最新版本的JDBC驱动。
- 加载驱动程序。可以使用Class.forName()方法来加载驱动程序。
- 建立数据库连接。使用DriverManager.getConnection()方法来建立和数据库的连接。
示例代码如下:
import java.sql.*;
public class ConnectDatabase {
static final String JDBC_DRIVER = "com.mysql.jdbc.Driver";
static final String DB_URL = "jdbc:mysql://localhost:3306/test";
static final String USER = "username";
static final String PASS = "password";
public static void main(String[] args) {
Connection conn = null;
Statement stmt = null;
try{
// 注册 JDBC 驱动器
Class.forName(JDBC_DRIVER);
// 打开一个连接
System.out.println("连接到数据库...");
conn = DriverManager.getConnection(DB_URL,USER,PASS);
// 执行查询
System.out.println("实例化Statement对象...");
stmt = conn.createStatement();
String sql;
sql = "SELECT id, name, age, address FROM students";
ResultSet rs = stmt.executeQuery(sql);
// 处理结果集
while(rs.next()){
// 通过字段检索
int id = rs.getInt("id");
String name = rs.getString("name");
int age = rs.getInt("age");
String address = rs.getString("address");
// 输出结果
System.out.print("ID: " + id);
System.out.print(", 姓名: " + name);
System.out.print(", 年龄: " + age);
System.out.println(", 地址: " + address);
}
// 关闭结果集、语句和连接
rs.close();
stmt.close();
conn.close();
}catch(SQLException se){
// 处理 JDBC 错误
se.printStackTrace();
}catch(Exception e){
// 处理 Class.forName 错误
e.printStackTrace();
}finally{
// 关闭资源
try{
if(stmt!=null) stmt.close();
}catch(SQLException se2){
}try{
if(conn!=null) conn.close();
}catch(SQLException se){
se.printStackTrace();
}
}
System.out.println("Goodbye!");
}
}
模糊查询
在SQL中进行模糊查询可以使用LIKE关键字,示例如下:
SELECT column_name FROM table_name WHERE column_name LIKE '%xxx%';
其中,xxx表示要模糊匹配的字符串。它可以出现在被匹配字符串的任何位置,并且也可以由多个字符串组成。
在Java中,可以将用户输入的字符串与数据库中的数据进行模糊匹配,示例代码如下:
import java.sql.*;
public class FuzzyQuery {
static final String JDBC_DRIVER = "com.mysql.jdbc.Driver";
static final String DB_URL = "jdbc:mysql://localhost:3306/test";
static final String USER = "username";
static final String PASS = "password";
public static void main(String[] args) {
Connection conn = null;
PreparedStatement stmt = null;
try{
// 注册 JDBC 驱动器
Class.forName(JDBC_DRIVER);
// 打开一个连接
System.out.println("连接到数据库...");
conn = DriverManager.getConnection(DB_URL,USER,PASS);
// 执行查询
System.out.println("实例化PreparedStatement对象...");
String sql;
sql = "SELECT id, name, age, address FROM students WHERE address LIKE ?";
stmt = conn.prepareStatement(sql);
stmt.setString(1, "%北京%");
ResultSet rs = stmt.executeQuery();
// 处理结果集
while(rs.next()){
// 通过字段检索
int id = rs.getInt("id");
String name = rs.getString("name");
int age = rs.getInt("age");
String address = rs.getString("address");
// 输出结果
System.out.print("ID: " + id);
System.out.print(", 姓名: " + name);
System.out.print(", 年龄: " + age);
System.out.println(", 地址: " + address);
}
// 关闭结果集、语句和连接
rs.close();
stmt.close();
conn.close();
}catch(SQLException se){
// 处理 JDBC 错误
se.printStackTrace();
}catch(Exception e){
// 处理 Class.forName 错误
e.printStackTrace();
}finally{
// 关闭资源
try{
if(stmt!=null) stmt.close();
}catch(SQLException se2){
}try{
if(conn!=null) conn.close();
}catch(SQLException se){
se.printStackTrace();
}
}
System.out.println("Goodbye!");
}
}
本示例中,使用了PreparedStatement来进行模糊查询,并通过setString()方法设置了查询参数。注意,在设置查询参数时,要使用通配符%
来表示匹配任意字符。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:java实现的连接数据库及模糊查询功能示例 - Python技术站