java连接数据库实现成语接龙代码
时间: 2023-10-26 18:07:43 浏览: 207
成语接龙实现之成语数据库.zip
以下是一个基于Java连接MySQL数据库实现成语接龙的示例代码:
```java
import java.sql.*;
public class ChengYuJieLong {
private Connection conn;
private Statement stmt;
private ResultSet rs;
private String lastChengYu;
public ChengYuJieLong() {
try {
Class.forName("com.mysql.cj.jdbc.Driver");
String url = "jdbc:mysql://localhost:3306/chengyu";
String username = "root";
String password = "password";
conn = DriverManager.getConnection(url, username, password);
stmt = conn.createStatement();
lastChengYu = "起始成语";
} catch (Exception e) {
e.printStackTrace();
}
}
public String getNextChengYu(String input) {
String nextChengYu = "";
try {
String sql = "select * from chengyu where pinyin like '" + input.charAt(input.length() - 1) + "%' and chengyu not like '%" + input + "%' order by rand() limit 1";
rs = stmt.executeQuery(sql);
if (rs.next()) {
nextChengYu = rs.getString("chengyu");
lastChengYu = nextChengYu;
} else {
nextChengYu = "没有符合要求的成语了";
}
} catch (Exception e) {
e.printStackTrace();
}
return nextChengYu;
}
public String getLastChengYu() {
return lastChengYu;
}
public void close() {
try {
rs.close();
stmt.close();
conn.close();
} catch (Exception e) {
e.printStackTrace();
}
}
}
```
需要注意的是,需要提前在MySQL数据库中创建一个名为`chengyu`的数据库,并在其中创建一个名为`chengyu`的表,表结构如下:
```sql
CREATE TABLE `chengyu` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`chengyu` varchar(255) NOT NULL,
`pinyin` varchar(255) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
```
表中需要包含成语的名称和拼音。在代码中,`getNextChengYu`方法根据用户输入的成语的最后一个字符,从数据库中随机选择一个以该字符开头的成语作为下一个回答。`getLastChengYu`方法返回上一个回答的成语,方便用户进行对话。`close`方法关闭连接和声明对象。
阅读全文