今天从早晨开始打算做一个javaweb连接mysql的小项目,因为此前学过Oracle,也了解到这两个数据库JDBC的方式大同小异,因此觉得没什么难度,却没想到遇到了很多问题,花费了数小时的时间才解决这些问题,下面简单做一个总结,避免以后再遇到同样的问题,也希望同学们以后不要跟我一样碰到这些古怪的问题。。

注:本文适合有javaweb基础和Oracle基础的童鞋参考,因为只列出了比较,省略的大部分过程。

1、安装MySql和SQLyog,SQLyog是MySql的一个不错的可视化工具,使得MySql操作起来比Oracle更方便,这里没什么问题,不多说。

2、导jar包,包名:mysql-connector-java-5.0.3-bin.jar,自己下载,没有问题。

3、配置环境变量,这里就有点问题了,因为一开始有人说只用配置一个classpath就好,即刚才第二步的jar包所放置的位置,我是把jar包随便放到了一个盘里,然后把路径放到了系统变量的classpath里。后来一查,有人说mysql还需要配path,即mysql安装目录里面的bin文件夹的目录,我的是:C:\Program Files (x86)\MySQL\MySQL Server 5.5\bin,把这个配到path最后,别忘了加分号,配path是为了使用命令指示符,在命令指示符里输入:mysql -u 用户名 -p,回车后输入密码,就可以在黑框框里面操作,如果回车后提示错误,说明path配错了。

经本人亲测,貌似这两个环境变量都可以不配,暂时也不影响javaweb项目操作mysql数据库,本人才疏学浅,不知道以后会不会有隐患,还希望知道的大神予以指点,谢谢。

4、创建数据库,使用SQLyog创建数据库和表特别简单,就像使用dreamweaver做html一样,mysql使用的sql语句也和标准差不多,暂时够用,不过需要注意,我第一次创建表的时候,是这样写的:

CREATE TABLE users (
  id int(4) NOT NULL  PRIMARY KEY AUTO_INCREMENT
  lname varchar(10) NOT NULL,
  lpass varchar(10) NOT NULL,
  age int(2) NOT NULL
);
注意:mysql里没有varchar2,只有varchar。

这样写确实可以创建数据表,不过我插入一条资料

INSERT INTO users(lname,lpass,age) vsalues('张三','123',10);

之后发现问题了:里面的中文变成了许多问号,显然是字符集的问题,解决办法是,在创建表的时候,最后一行,在分号前,写

ENGINE=InnoDB DEFAULT CHARSET=utf8;
在插入数据,问题解决。

5、bean层不用说,跟数据库对上就行,dao层需要说一说,因为需要准备Connection,PreparedStatement和ResultSet,一律导入java.sql.的那个类,尽管mysql也有对应的Connection和PreparedStatement类,不过最后还是要强转回来,也就是说,没差别。

6、其他几个层该怎么写还是怎么写,没差别,连接mysql的driver是

com.mysql.jdbc.Driver

重点需要说一下连接mysql的url,一开始看别人写的是

jdbc:mysql://localhost:3306/数据库名
后来全部写好之后一测试,发现请求路径没问题,却转到了空白页面,当时并不知道哪里出了问题,就一句一句输出检查,发现从数据库里取出来的值很古怪,int类型的都是0,String类型的什么也没有。。但是由于resultset游标非空,就一步一步往下走,没有报错,这就说明查到数据了,并没有传到jsp上,我在这里停留了很久,最后终于找到了解决办法:mysql的url应该是

jdbc:mysql://localhost:3306/数据库名?useUnicode=true&characterEncoding=utf-8
又是字符编码的问题,不知道是不是因为数据表定义时,同样也设置了字符编码的原因。
至此,已经可以把后台数据传到前台jsp,若本文的内容有错误,欢迎留言或联系我,谢谢。


更多相关文章

  1. 如何以小时为单位从oracle数据库中获取数据
  2. 如何用sql语句查询出当月的每日数据量
  3. phthon 连接sql server数据库执行存储过程报错,求大侠解决
  4. java往SQL Server中插入数据插不进去
  5. Postgresql数据库安装问题,找不到configure
  6. 从Access表将数据导入Excel,从子句中出现语法错误
  7. delphi+sql server 数据库死锁问题。高分求解!!!!!
  8. 牛客网数据库SQL实战(1-5)
  9. SSAS中用于层次结构的数据驱动安全性

随机推荐

  1. 使用换行符将textarea的文本复制到div中
  2. js去除html标记的测试问题。很多分!
  3. 关于INPUT的autocomplete="off" 属性(浏览
  4. html5-开发起步使用工具
  5. 使用materialize css在不同页面上显示不
  6. 从数据库中读出来的是html标签,如何转换
  7. HTML表单学习1——表单基础
  8. 学习html5第三天
  9. 如何使用CSS在HTML文档中插入换行符
  10. vim 生成html 高亮