mysql的javabean_【申精】JavaBean连接Mysql(非DSN方式)

本帖最后由 王绪超丶 于 2014-5-19 11:34 编辑

Servlet&JSP课上到JavaBeans部分,NIIT课本上有一个小案例要求用到JavaBean,需要用到数据库,要配DSN。

问题关键是还是SQL server 。可惜啊。虽然上学期NIIT课程里教的就是SQL server ,虽然我期末考试SQL server 只扣了一分。但是我不会SQL server 。当时电脑装不上SQL server ,所以学SQL时用的是Mysql。然后干脆图省事。Mysql一条路走到黑吧。

JavaBean连接Mysql两种方式。(1)通过DSN。(2)JDBC直接连Mysql。

Mysql的DSN方式连接数据库没弄出来。。。

DSN方式要下载Mysql-ODBC驱动,然后再配置DSN数据源。

我电脑JDK是1.8的,JDK1.8里没有JDBC-ODBC驱动类 。

然后装了JDK1.6 ,然后编码连接,JavaBean里的核心代码如下:

Class.forName("sun.jdbc.odbc.JdbcOdbcDriver").newInstance();

Connection  conn = DriverManager.getConnection("jdbc:odbc:ali","root","root");

ali 是我的Mysql数据源名称。

然后没有成功。。。

难道是64位JDK和32位Mysql之间的问题?。。。。。。。

算了。。。不想那么多了。。。。既然JDK1.8都抛弃了ODBC。。。。那么以后就用非DSN的JavaBean直接Mysql连接方式吧。。。。

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~我是分割~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

下面是成功的非DSN方式。

准备好所需环境:

1)数据库 Mysql (推荐用集成开发环境WAMP,或者phpStudy。省去配置的复杂操作)

2)数据库管理工具 Navicat for MySQL

3)JDBC-Mysql驱动  mysql-connector-java-5.0.4-bin.jar

4)NetBeans,JDK

步骤:

(1)将下载好的JDBC-Mysql驱动(mysql-connector-java-5.0.4-bin.jar)放入JDK中

,放入的路径为Java\jdk1.8.0\jre\lib\ext  (其实咱们孔老师说的好,放在WEB-INF\lib里才科学。但是这样也可以啦,凑合着用用)

(2)建立数据库及表。(test数据库,authors表)

(3)编写 JavaBean的代码

这其实是

加载JDBC -Mysql驱动类

并根据Mysql的配置信息得到一个URL,然后根据URL建立JDBC-Mysql连接。

package JavaBeans;

import java.io.Serializable;

import java.util.*;

import java.sql.*;

public class FindAuthor implements Serializable {

public String url, authorName, driverName, authorId;

public Vector result;

private String server = "localhost";

private String port = "3306";  //Mysql端口

private String db = "test";  //连接的数据库

private String user = "root"; //数据库用户名

private String pass = "root"; //数据库密码

private String drivername = "com.mysql.jdbc.Driver"; //jdbc-mysql驱动类

private String URL = "jdbc:mysql://" + server + ":" + port + "/" + db

+ "?useUnicode=true&characterEncoding=UTF-8&user=" + user + "&password=" + pass;

public Vector getResult() {

Vector v = new Vector();

try {

Class.forName(drivername);  //加载驱动

Connection con = DriverManager.getConnection(URL, "root", "root");//创建一个数据库连接

PreparedStatement stat = con.prepareStatement("select * from authors where au_id=?");

stat.setString(1, authorId);//设置要查询的作者名

ResultSet rs = stat.executeQuery();//获取查询结果

if (rs.next()) {//存储结果到向量(vector)V中

v.addElement(rs.getString("au_fname"));

v.addElement(rs.getString("address"));

v.addElement(rs.getString("city"));

v.addElement(rs.getString("state"));

v.addElement(rs.getString("zip"));

}

} catch (Exception ex) {

ex.printStackTrace();    //处理异常

}

//返回结果

this.result = v;

return result;

}

public void setAuthorId(String authorId) {

if (authorId != null) {

this.authorId = authorId;

}

}

public String getAuthorId() {

return (this.authorId);

}

//定义一个从author数据库里获取结果的方法

}

(4)运行,出结果。。。(测试用的JSP的代码和web.xml我就不放上来了)

Java EE 这条路,慢慢爬ing….

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值