javaweb中jsp连接·mysql数据库

javaweb中jsp连接·mysql数据库

初学javaweb,用了一下午的时间去弄javaweb与Mysql数据库的连接,走了挺多的坑。在这里记录下,防止以后还会陷坑。
首先是建立一个javaweb程序,由于我用的是idea,所以程序建好后还要在WEB-INF下建立classes和lib两个文件夹。然后是tomcat服务器和jdbc驱动包的导入,在这里tomcat的配置和导入就不介绍了,主要说下jdbc驱动包的导入,毕竟这里被坑了不少。
先来说说导入方法,有两种方法。
一个是导入到你的sdk中,这样好像以后都可以不用在项目中再导入驱动包了(还没有去尝试)
javaweb中jsp连接·mysql数据库
另一种方法就是把jar包复制到lib文件夹里面,然后如图所示找到要添加的驱动包添加路径,导入进去。这种方法则每个项目都要手动去导入一遍
javaweb中jsp连接·mysql数据库
但这里要说明的一个坑是,导入的jdbc驱动包最好跟你的Mysql数据库版本一致,不然可能会出错。我的数据库是8.0.13的,试了下5.*版本的,没有运行成功。还有就是如果是普通java文件连接数据库的话只需要把驱动包复制到文件夹里就够了,而如果是javaweb的话需要把驱动包再复制到你的tomcat的lib文件夹里,不然也运行不了。

接下来是代码实例

String driver = "com.mysql.cj.jdbc.Driver";
String url = "jdbc:mysql://localhost:3306/blog?useSSL=false&useUnicode=true&characterEncoding=UTF-8&useJDBCCompliantTimezoneShift=true&useLegacyDatetimeCode=false&serverTimezone=UTC";
String user = "root";
String password = "密码";
try {
  Class.forName(driver);
  Connection conn = DriverManager.getConnection(url, user, password);
  if(conn!=null)
    out.print("连接成功");
  else {
    out.print("连接失败");
  }
  Statement st=conn.createStatement();
  ResultSet rs = st.executeQuery("SELECT fansid FROM fans");
  //如果有数据,rs.next()返回true
  while(rs.next()){
    out.println("学号"+rs.getString("fansid"));
  }
}
catch (Exception e)
{

}

这里要注意的是,在jdbc8.*版本里,加载驱动的语句有些变化,是——“com.mysql.cj.jdbc.Driver”,而url的语句一开始我的是“jdbc:mysql://localhost:3306/blog”,报了许多的错(比如时区什么的)。
最后在补充一点,如果是普通Java文件连接mysql数据库的话,需要用try,catch来进行连接,如果没有加的话,有可能会一开始程序就会报错而运行不了,如果是javaweb,不加的话不会因为报错而不执行。
javaweb中jsp连接·mysql数据库