zoukankan      html  css  js  c++  java
  • 我学jsp:jsp连接mysql数据库

    前段时间看书,到了后面发现其实都简单了,都是了解的事情。直到碰到连接数据库的部分,发现碰到了问题,万幸,最后总算搞出来了。

    首先,先说下mysql。安装的时候简单,就是最后要输root密码的时候就老实填个,有些书上说先空着,然后到了后面加,结果后来就出错了,重装都不好装。装好了之后,可以在cmd里输入mysql -u root -p,然后输入密码,ok,进来了。我们先简单的建立个数据库,mysql默认的装有test数据库,你可以show databases;查看所有的数据库,use test 进入test数据库进行操作。create table dbtest(id int(10)  not null primary key auto_increment,name varchar(20) not null default 'No name');回车,如果成功会提示query ok。然后我们先插入数据:insert into dbtest(name) values('jack'); insert into dbtest(name) values('Daniel'); 完成之后,我们执行select * from dbtest;查看表里的数据。有图有真相。

    好,数据库建立起来了,我们开始编辑jsp或者servlet了。以jsp为模板,比较好执行。

    <%@ page contentType="text/html; charset=gb2312" %>
    <%@ page language="java" %>
    <%@ page import="com.mysql.jdbc.Driver" %>
    <%@ page import="java.sql.*" %>
    <%

    String driverName="com.mysql.jdbc.Driver";  //驱动程序名
    String userName="root";//数据库用户名
    String userPasswd="123456";//你的密码
    String dbName="test";//数据库名 mysql默认有这个数据库,里面是空的
    String tableName="dbtest";//表名
    try{
     String url="jdbc:mysql://localhost/"+dbName+"?user="+userName+"&password="+userPasswd;//联结字符串
     Class.forName("com.mysql.jdbc.Driver").newInstance(); //载入jdbc驱动,这边经常出错,jdbc的开发文档上用了newInstance()
     // The newInstance() call is a work around for some broken Java implementations
     Connection connection=DriverManager.getConnection(url);
     out.print("数据库操作成功,恭喜你");
     out.print("<br>");
     Statement statement = connection.createStatement();
     String sql="SELECT * FROM "+tableName;
     ResultSet rs = statement.executeQuery(sql);
     // 输出每一个数据值
     out.print("id ");
     out.print("|");
     out.print(" name");
     out.print("<br>");

     while(rs.next()) {
      out.print(rs.getString("id")+" ");
      out.print("| ");
      out.print(rs.getString("name"));
      out.print("<br>");
     }
     rs.close();
     statement.close();
     connection.close();
    }catch(SQLException e){
     out.print("数据库操作失败");
    }
    %>

    如果要测试,把代码直接贴到jsp文件中。这里最最重要的要说明一个加载jdbc驱动问题。一个普通的sql服务器,只要30多兆吧,然后不附带mysql-connector-java-5.1.18-bin.jar,这个要单独下的,去mysql官网上,可以下到connector/J,里面有这个文件,我们说下这个文件的位置。既然是java归档文件,要当成库来用,一般都提倡加classpath,但是可能会被忽略,下面的英文是开发文档里的说明。其实我们有更简单直接的方法。

    If you want to use MySQL Connector/J with an application server such as GlassFish, Tomcat or JBoss, you will have to read your
    vendor's documentation for more information on how to configure third-party class libraries, as most application servers ignore the
    CLASSPATH environment variable.

    如果你用J2EE开发,在建立工程后,将这个jar文件放入该工程的\webContent\WEB-INF\lib里,这里是标准的,刷新一下就可以找到了。也可以放入tomcat目录下的lib文件中,也是可以的。

    现在说下简单的方法体验下。将上面的代码编入jsp文件中,假如叫testSql.jsp,将其放入tomcat\webapps\root\下,然后将mysql-connector-java-5.1.18-bin.jar放入tomcat\webapps\root\WEB-INF\lib(如果没有,就自己创建个lib文件夹)。

    启动tomcat服务,网址里输入localhost:8080/testSql.jsp,这样应该就出来了

    呵呵,差不多了。String url="jdbc:mysql://localhost:3306/"+dbName+"?user="+userName+"&password="+userPasswd;这个也是可以的,估计是默认的3306吧,如果英文好的话,可以参考下connector/J里面的英文开发文档,里面是最权威的了吧。

    圣诞已过,准备迎接新年了。

  • 相关阅读:
    使用Project Linker 2012实现多个项目中代码文件
    使用的开放源码Scryber库动态生成PDF文件
    破解Excel 密码保护
    入围51CTO 2009年度“最受读者欢迎的IT图书作者”评选
    谈谈分布式事务之二:基于DTC的分布式事务管理模型[下篇]
    WCF 技术剖析之三十三:你是否了解WCF事务框架体系内部的工作机制?[下篇]
    事件(Event),绝大多数内存泄漏(Memory Leak)的元凶[下篇] (提供Source Code下载)
    如何实现对上下文(Context)数据的统一管理 [提供源代码下载]
    WCF技术剖析之二十七: 如何将一个服务发布成WSDL[基于HTTPGET的实现](提供模拟程序)
    Enterprise Library深入解析与灵活应用(9):个人觉得比较严重的关于CachingCallHandler的Bug
  • 原文地址:https://www.cnblogs.com/xioyaozi/p/2301615.html
Copyright © 2011-2022 走看看