前段时间看书,到了后面发现其实都简单了,都是了解的事情。直到碰到连接数据库的部分,发现碰到了问题,万幸,最后总算搞出来了。
首先,先说下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里面的英文开发文档,里面是最权威的了吧。
圣诞已过,准备迎接新年了。