您现在的位置是:时尚 >>正文
jsp怎么连接mysql数据库
时尚2957人已围观
简介 jsp怎么连接mysql数据库 先把驱动jar包扔进WEB-INF/lib目录,这是第一步,也是最容易卡住新手的地方。我用的是mysql-connector-java-8.0.33.jar,版本别太 ...
jsp怎么连接mysql数据库
先把驱动jar包扔进WEB-INF/lib目录,数据这是数据第一步,也是数据最容易卡住新手的地方。我用的数据是mysql-connector-java-8.0.33.jar,版本别太老,数据8.x的数据驱动类名是com.mysql.cj.jdbc.Driver,跟5.x的数据com.mysql.jdbc.Driver不一样。你要是数据拿旧代码硬套,控制台直接给你甩个ClassNotFoundException,数据那时候别慌,数据先检查jar包在不在。数据
连接代码其实就六行,数据核心是数据DriverManager.getConnection()这个方法。看这段:
Class.forName("com.mysql.cj.jdbc.Driver"); String url = "jdbc:mysql://localhost:3306/testdb?数据useSSL=false&serverTimezone=UTC"; String user = "root"; String password = "123456"; Connection conn = DriverManager.getConnection(url, user, password); 注意URL里的serverTimezone参数,不加它,数据MySQL 8.x会报时区错误。我当初调这个参数调了半小时,最后发现是少了个useSSL=false,本地测试根本不需要SSL加密,加上反而拖慢速度。
获取连接之后,写个Statement或者PreparedStatement就能执行SQL了。我强烈建议直接用PreparedStatement,别图省事用Statement拼接字符串。为啥?防SQL注入是其一,其二是预编译语句处理参数更灵活。比如你要查用户输入的名字:
String sql = "SELECT * FROM users WHERE name = ?"; PreparedStatement ps = conn.prepareStatement(sql); ps.setString(1, inputName); ResultSet rs = ps.executeQuery(); while(rs.next()) { out.println(rs.getString("email")); } 那个问号就是占位符,用setString填进去,省得自己加引号转义,多省心。
用完记得关资源,顺序是ResultSet → PreparedStatement → Connection,倒着关。我见过有人只关Connection,结果连接池被占满,页面卡死。要是用try-with-resources语法(Java 7+),自动关闭,代码干净不少:
try (Connection conn = DriverManager.getConnection(url, user, password); PreparedStatement ps = conn.prepareStatement(sql); ResultSet rs = ps.executeQuery()) { // 处理结果 } catch (SQLException e) { e.printStackTrace(); } 但JSP里写这种Java代码实在不优雅,页面里塞满<% %>标签,维护起来想砸电脑。我见过一个老项目,整个JSP页面全是脚本片段,改个SQL要翻几百行。后来我习惯把数据库操作封装到单独的DAO类里,JSP只负责调用,页面清爽,逻辑也清晰。比如建个UserDao,里面写个findByName(String name)方法,JSP里调用就一行:
<% User user = UserDao.findByName(request.getParameter("name")); %> 这才像话。
还有个坑是字符编码。连接MySQL时URL里加上characterEncoding=utf8,不然中文全变问号。JSP页面顶部也要写<%@ page contentType="text/html;charset=UTF-8" %>,两边编码不一致,乱码没跑。
最后说连接池。别每次请求都新建Connection,性能差得离谱。我试过用Druid或者HikariCP,配置也就十几行,但并发一上来,差距立竿见影。你拿个简单的DriverManager跑单线程测试没问题,一旦有几十个用户同时点,数据库连接数直接爆掉。连接池的好处就是复用连接,省去反复握手的开销。
写JSP数据库连接,说白了就是三步:加载驱动、获取连接、执行SQL。但真正写得好的人,会考虑资源管理、编码、性能。我见过太多人卡在第一步的jar包上,也见过有人把密码硬编码在JSP里,安全漏洞一堆。数据库密码应该放在配置文件中,用JNDI或者环境变量读取。别嫌麻烦,上线之后你就知道这有多重要了。
Tags:
上一篇:网站优化排名推广方案
下一篇:下列哪一个不属于招聘网站
相关文章
500彩票网官方网站
时尚打开500彩票网的旧页面,最先撞进眼睛的永远是那串跳动的数字。红绿交替的赔率像心电图,把无数人的呼吸节奏都绑在了上面。这个网站曾经占据了我浏览器收藏夹最靠前的位置,比邮箱和网银都靠前。 那是2014年 ...
【时尚】
阅读更多webtools微信的辅助工具
时尚微信的辅助工具,听起来像是个灰色地带的生意。实际上,它已经成了不少人的日常刚需。 我认识一个做电商的朋友,手里管着五个微信号。每天要发朋友圈、回客户消息、拉群发公告,手动操作能把人逼疯。他去年开始用一 ...
【时尚】
阅读更多东丽反渗透膜技术手册
时尚东丽反渗透膜有个特点,很多人没注意到——它把"脱盐率"和"通量"这对天生的冤家,硬是捏合到了一起。常规膜产品,你提高脱盐率,通量必然下降,就像鱼和熊掌。但东丽在界面聚合这一步动了手脚,用了一种叫"三维 ...
【时尚】
阅读更多