javaweb JDBC连接Mysql与Oracle的比较及启示总结
来源:互联网 发布:淘宝折扣 编辑:程序博客网 时间:2024/06/06 00:47
今天从早晨开始打算做一个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,若本文的内容有错误,欢迎留言或联系我,谢谢。
- javaweb JDBC连接Mysql与Oracle的比较及启示总结
- oracle与mysql的JDBC连接
- jdbc与oracle和mysql连接工具类的写法
- JDBC连接Oracle与MySQL的URL格式
- JDBC与Oracle的连接
- 数据库的迁移总结及区别比较(Oracle,MySQL,SQLServer)
- JDBC连接mysql/oracle
- SQLServert、mysql、Oracle的JDBC连接大全
- Oracle,SQLserver,mysql连接javaweb项目的连接
- mysql的查询及连接JDBC数据库
- MySQL的jdbc驱动及连接字符串
- JavaWeb JDBC连接MySql数据库小项目
- oracle与mysql的比较
- jdbc 与 mysql连接
- MySQL与JDBC连接
- JDBC与mySQL连接
- JDBC 连接mysql,oracle数据库代码及解析
- JDBC(与Oracle的连接)
- eclipse中maven项目交付svn忽略配置文件
- 如何登陆谷歌
- 有意思小东西
- 前端程序员:月薪 5K 到 5 万
- 关于容斥原理
- javaweb JDBC连接Mysql与Oracle的比较及启示总结
- POJ3436 ACM Computer Factory(dinic最大流+统计不同弧上流量的变化)
- jquery取不到cookie中的值(本地有cookie但就是无法取到对应的值)
- zoj 3626 树形dp
- 大数据课程体系-学习笔记-第一阶段-Java Collection
- 算法训练 操作格子
- COM编程小结
- Unity3d 纠正上一篇协程讲解的错误
- UVA - 1439 Exclusive Access 2 独占访问2