JDBC配置
创建Tomcat的时候是没有JDBC数据库包的。按以下步骤配置
1.在webapp目录下创建一个新的目录lib之后把JDBC数据库包放到这个目录下:
2.右键这个libs文件夹,点击添加为库就可以了
测试配置是否成功
可以使用这段代码来测试连接是否成功:
import com.example.webtest.Servlet6;
import java.sql.Connection;
import java.sql.SQLException;
import static JDBC的可调用方法.MainGUI.Findid;
public class MY1 {
private static Connection conn; // 声明为类的静态成员变量
//在这里连接数据库,注意更改数据库名(在?前面是数据库的名字),注意最后一个参数是允许批量导入
private static final String URL = "jdbc:mysql://localhost:3306/nnn?serverTimezone=UTC&useUnicode=true&characterEncoding=utf-8&allowLoadLocalInfile=true";
public static void main(String[] args) throws SQLException {
String driver = "com.mysql.cj.jdbc.Driver";//数据库驱动类所对应的字符串
Connection conn = null;
try {
Class.forName(driver);//加载MySQL数据库驱动
} catch (ClassNotFoundException e) {//这个错误是你的配置没有配置好
System.out.println("驱动程序配置未配置成功!!!");
System.out.println("可能是你的 jar包没有导入或出错!");
}
try {
} catch (Exception e) {//未连接成功,执行下面的异常处理
System.out.println("数据库连接失败!!!");
System.out.println("有可能是你没有启动数据库,cmd输入 net start mysql 以启动(我的数据库名字是mysql2)");
System.out.println("下面是错误提示:");
System.out.println(e);
}
}
}
使用数据库连接
可以连接一个试试看,先创建一个Java类,之后直接在Servlet中使用这个类就行了。
比如下面是我查找用户id的一个JDBC(可以换成你想要的sql语句)
public static int Findid(String username, String password) throws SQLException, ClassNotFoundException {
final String URL = "jdbc:mysql://localhost:3306/nnn?serverTimezone=UTC&useUnicode=true&characterEncoding=utf-8&allowLoadLocalInfile=true";
String driver = "com.mysql.cj.jdbc.Driver";//数据库驱动类所对应的字符串
Class.forName(driver);//加载MySQL数据库驱动
int id = -1; // 默认值为-1,表示未找到对应记录
try {
conn = DriverManager.getConnection(URL, "root", "ikunjojo");
String selectQuery = "SELECT id FROM classmate WHERE username = ? AND password = ?";
PreparedStatement preparedStatement = conn.prepareStatement(selectQuery);
preparedStatement.setString(1, username);
preparedStatement.setString(2, password);
ResultSet resultSet = preparedStatement.executeQuery();
if (resultSet.next()) {
id = resultSet.getInt("id");
System.out.println("成功找到对应ID: " + id);
//logCurrentTime("本地时间为");
} else {
System.out.println("未找到对应记录");
}
} catch (SQLException e) {
System.out.println("查找ID失败");
e.printStackTrace();
} finally {
if (conn != null) {
conn.close();
}
}
return id;
}
在类中创建一个方法:
public void login(String username,String password) throws SQLException, ClassNotFoundException {
int money = Findid(username,password);
System.out.println("该用户有:"+money+"元");
}
在Serlet直接使用就行了:
@Override
public void service(ServletRequest servletRequest, ServletResponse servletResponse) throws ServletException, IOException {
System.out.println("你好aaa");
User a = new User();
try {
a.login("11","32");
} catch (SQLException e) {
throw new RuntimeException(e);
} catch (ClassNotFoundException e) {
throw new RuntimeException(e);
}
}