JAVA能连接MYSQL数据库,但是无法读出数据
packagecom.xxdhb.dao;importjava.sql.Connection;importjava.sql.DriverManager;importjav...
package com.xxdhb.dao;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import javax.sql.rowset.CachedRowSet;
import com.sun.rowset.CachedRowSetImpl;
public class DBConn {
private String url; // 存储SQLSever连接路径
private String serverName; // 存储机器的名称
private String portNumber; // 存储端口名称
private String databaseName; // 存储数据库名称
private String userName; // 存储用户名称
private String password; // 存储密码
/* 设置连接数据库相关参数 */
public DBConn(){
url = "jdbc:mysql://127.0.0.1:3306/Mysql";
serverName = "localhost";
portNumber = "3306";
databaseName = "magazine";
userName = "root";
password = "sa123";
}
/* 获取连接数据库路径并返回 */
private String getConnectionUrl() {
return url + serverName + ":" + portNumber + ";databaseName=" + databaseName + ";";
}
/* 获取Conncetion对象并返回 */
public Connection getConnection() {
Connection con=null;
try {
Class.forName("com.mysql.jdbc.Driver"); // 加载Jdbc驱动程序
con = DriverManager.getConnection("jdbc:mysql://127.0.0.1:3306/Mysql",userName,password);
} catch (Exception e) {
e.printStackTrace();
System.out.println("getConnection()内部跟踪错误:"+ e.getMessage());
}
return con;
}
public static void main(String[] args) {
DBConn d=new DBConn();
Connection conn=d.getConnection();
PreparedStatement ps = null;
ResultSet rs = null;
String sql = "select * from nmm_msg";
try {
ps = conn.prepareStatement(sql);
System.out.println("~~~~~~~1111"+conn);//能输出
rs = ps.executeQuery(); //到这一步无法继续执行
System.out.println("~~~~~~~22222222"+conn);//无法输出
System.out.println(rs.next());
while(rs.next()){
System.out.println("~~~~~~~~");
}
} catch (Exception e) {
// TODO: handle exception
}
}
}
到rs = ps.executeQuery();这一步无法继续执行获取数据,数据库中有数据,请哪个高手指点下,谢谢~~~~~急!!!!急!!!!!急!!!
1.已经确认能连接数据库,添加了编码characterEncoding=gbk都无法解决
2.com.mysql.jdbc.exceptions.MySQLSyntaxErrorException: Table 'mysql.nmm_msg' doesn't exist
at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:1026)
at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:956)
at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3515)
at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3447)
at com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:1951)
at com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:2101)
at com.mysql.jdbc.ConnectionImpl.execSQL(ConnectionImpl.java:2554)
at com.mysql.jdbc.PreparedStatement.executeInternal(PreparedStatement.java:1761)
at com.mysql.jdbc.PreparedStatement.executeQuery(PreparedStatement.java:1912)
at t.DBConn.main(DBConn.java:82)
对了我用的驱动是mysql-connector-java-5.1.7-bin,不知道有没有影响
3.我的Mysql数据库是5.0版本的 展开
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import javax.sql.rowset.CachedRowSet;
import com.sun.rowset.CachedRowSetImpl;
public class DBConn {
private String url; // 存储SQLSever连接路径
private String serverName; // 存储机器的名称
private String portNumber; // 存储端口名称
private String databaseName; // 存储数据库名称
private String userName; // 存储用户名称
private String password; // 存储密码
/* 设置连接数据库相关参数 */
public DBConn(){
url = "jdbc:mysql://127.0.0.1:3306/Mysql";
serverName = "localhost";
portNumber = "3306";
databaseName = "magazine";
userName = "root";
password = "sa123";
}
/* 获取连接数据库路径并返回 */
private String getConnectionUrl() {
return url + serverName + ":" + portNumber + ";databaseName=" + databaseName + ";";
}
/* 获取Conncetion对象并返回 */
public Connection getConnection() {
Connection con=null;
try {
Class.forName("com.mysql.jdbc.Driver"); // 加载Jdbc驱动程序
con = DriverManager.getConnection("jdbc:mysql://127.0.0.1:3306/Mysql",userName,password);
} catch (Exception e) {
e.printStackTrace();
System.out.println("getConnection()内部跟踪错误:"+ e.getMessage());
}
return con;
}
public static void main(String[] args) {
DBConn d=new DBConn();
Connection conn=d.getConnection();
PreparedStatement ps = null;
ResultSet rs = null;
String sql = "select * from nmm_msg";
try {
ps = conn.prepareStatement(sql);
System.out.println("~~~~~~~1111"+conn);//能输出
rs = ps.executeQuery(); //到这一步无法继续执行
System.out.println("~~~~~~~22222222"+conn);//无法输出
System.out.println(rs.next());
while(rs.next()){
System.out.println("~~~~~~~~");
}
} catch (Exception e) {
// TODO: handle exception
}
}
}
到rs = ps.executeQuery();这一步无法继续执行获取数据,数据库中有数据,请哪个高手指点下,谢谢~~~~~急!!!!急!!!!!急!!!
1.已经确认能连接数据库,添加了编码characterEncoding=gbk都无法解决
2.com.mysql.jdbc.exceptions.MySQLSyntaxErrorException: Table 'mysql.nmm_msg' doesn't exist
at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:1026)
at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:956)
at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3515)
at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3447)
at com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:1951)
at com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:2101)
at com.mysql.jdbc.ConnectionImpl.execSQL(ConnectionImpl.java:2554)
at com.mysql.jdbc.PreparedStatement.executeInternal(PreparedStatement.java:1761)
at com.mysql.jdbc.PreparedStatement.executeQuery(PreparedStatement.java:1912)
at t.DBConn.main(DBConn.java:82)
对了我用的驱动是mysql-connector-java-5.1.7-bin,不知道有没有影响
3.我的Mysql数据库是5.0版本的 展开
6个回答
展开全部
可能是编码问题,在连接串后面加上characterEncoding=gbk,比如:url = "jdbc:mysql://127.0.0.1:3306/Mysql?characterEncoding=gbk";
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
是数据库连接出了问题,你的数据库应该根本没有和你的项目连接上
你用的是MyEclipse么,如果是,比如是否添加了数据库驱动等
你用的是MyEclipse么,如果是,比如是否添加了数据库驱动等
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
1、检查你的工程字符集;
2、检查你的MySQL驱动和数据库版本;
我用你的代码和最新的驱动连4.1的MySQL是没有问题的....
2、检查你的MySQL驱动和数据库版本;
我用你的代码和最新的驱动连4.1的MySQL是没有问题的....
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
我终于知道什么问题了,我刚开始也这样,后来知道在加载Jdbc驱动程序出问题,所以引入了mysql-connector-java-3.1.13-bin.jar
这样就没问题了。
这样就没问题了。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
驱动add to buile path了没有????
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询