1.开发环境:eclipse,jdk,mysql,tomcat
2.第一步下载 JDBC的包
百度云分享:https://pan.baidu.com/s/1Im2VgsSzSenZuL_0Y0p9gw 密码:druv (我的jdk版本比较高,所以能支持最新版本的jar,如果提示你jre版本过低,可以去官网下一个版本较低5以下的应该就可以了)
3.将 jar包复制到package>webcontent>web-inf>lib文件中,然后右击jar>buildpath>add...然后就可以了,现在我们来测试一下jdbc驱动是否导入成功了(classnotfoundEception 是检验运行时候的错误 如果没有jdbc驱动的路径就会异常)
导入成功啦!
4.创建数据库连接(SQLException抛出用户名或密码错误)
结果报错了。。
java.sql.SQLException: The server time zone value '???ú±ê×??±??' is unrecognized or represents more than one time zone. You must configure either the server or JDBC driver (via the serverTimezone configuration property) to use a more specifc time zone value if you want to utilize time zone support.
这个表示服务器时区设置错误,修正时区值就可以了
5.执行SQL语句
获取statement对象,>1.如果sql语句只运行一次,那么就可以使用statement获取对象
>2.如果不是运行一次就可以采用preparedStatement获取对象,SQL会被预编译,效率更高
代码有点长,不方便截图。。。。我写的是获取数据库表中的数据并用表格显示出来(一步一步的来会出现一些问题,但还是可以解决的哦),不要放弃
<%
try{
//加载驱动
Class.forName("com.mysql.cj.jdbc.Driver");
//创建数据连接
String url = "jdbc:mysql://localhost:3306/web?serverTimezone=UTC";//数据库连接字符用户名
String username = "root";//用户名
String password = "******";//密码
//创建connection连接
Connection con = DriverManager.getConnection(url,username,password);
//执行SQL操作
String sql = "select * from class";
//获取preparedStatement
Statement st = con.createStatement();
ResultSet rs = st.executeQuery(sql);
%>
<table >
<tr>
<th>课程号</th>
<th>课程名</th>
</tr>
<%
while(rs.next()){
//存储在一个指针中,要用.next()指向存储对象
%>
<tr>
<td>
<%=rs.getInt(1) %>
</td>
<td>
<%=rs.getString(2) %>
</td>
</tr>
<% }%>
</table>
<%
rs.close();
st.close();
con.close();
}catch(ClassNotFoundException e){
e.printStackTrace();
out.print("驱动加载失败");
}catch(SQLException ex){
ex.printStackTrace();
out.print("用户名或密码错误!");
}
%>
通过resultSet获得的数据存储在一个指针里面,这时我们需要用.next(); 结合循环语句来访问每一个字段
一个完整的jsp与mysql连接就是这样子啦,祝你们顺利,这只是基本哦!