当前位置:编程学习 > JAVA >>

java和mysql连接的问题,大家帮我看下怎么错了呢

import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;

import com.mysql.jdbc.Connection;
import com.mysql.jdbc.Statement;


public class JdbcDemo {
private final static String DRIVER="com.mysql.jdbc.Driver";
private final static String URL="jdbc:mysql://localhost:3306/userinfo";
private final static String USER="superman";
private final static String PASSWORD="431026";
private final static String NO="1";
public static void main(String args[]){
Connection connection=null;
Statement stm=null;
try {
Class.forName(DRIVER);
connection = (Connection) DriverManager.getConnection(URL,USER,PASSWORD);
if(!connection.isClosed())
{
System.out.println("数据库成功连接了!");

}
stm=(Statement) connection.createStatement();
String sql="select * from userinfo;";
ResultSet rs=stm.executeQuery(sql);
System.out.println("NO     |UserName   |Password") ;
System.out.println("__________________________________");
while(rs.next()){

System.out.println(rs.getString(1)+"  |");

System.out.println(rs.getString(2)+"  |");

System.out.println(rs.getString(3)+"  |");

System.out.println();

}
} catch (ClassNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}catch(SQLException e){
e.printStackTrace();
}finally{
try {
connection.close();
stm.close();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}

}
}
}
--------------------编程问答-------------------- 消息 5105,级别 16,状态 2,第 1 行
出现文件激活错误。物理文件名 'd:mysql\student_log.ldf' 可能不正确。请诊断并更正其他错误,然后重试此操作。
消息 1802,级别 16,状态 1,第 1 行
CREATE DATABASE 失败。无法创建列出的某些文件名。请查看相关错误。
建表的时候出现这个问题怎么回事啊,是不是我的数据库安装出现了问题啊,我之前在添加删除程序那弄了一下 --------------------编程问答-------------------- java.sql.SQLException: Access denied for user 'superman'@'localhost' (using password: NO)
at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:1055)
at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:956)
at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3491)
at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3423)
at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:910)
at com.mysql.jdbc.MysqlIO.secureAuth411(MysqlIO.java:3923)
at com.mysql.jdbc.MysqlIO.doHandshake(MysqlIO.java:1273)
at com.mysql.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:2031)
at com.mysql.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:718)
at com.mysql.jdbc.JDBC4Connection.<init>(JDBC4Connection.java:46)
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27)
at java.lang.reflect.Constructor.newInstance(Constructor.java:513)
at com.mysql.jdbc.Util.handleNewInstance(Util.java:406)
at com.mysql.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:302)
at com.mysql.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:282)
at java.sql.DriverManager.getConnection(DriverManager.java:582)
at java.sql.DriverManager.getConnection(DriverManager.java:185)
at JdbcDemo.main(JdbcDemo.java:20)
Exception in thread "main" java.lang.NullPointerException
at JdbcDemo.main(JdbcDemo.java:49)
还有就是这段是java和mysql中myeclipse出现的问题显示 --------------------编程问答-------------------- 清理后再试试 --------------------编程问答--------------------
import java.sql.Connection; //代表队特定数据库的连接
import java.sql.DriverManager; //处理驱动的调入并且对产生新的数据库连接提供支持
import java.sql.ResultSet; //控制对一个特定语句进行数据的存取
import java.sql.Statement; //代表一个特定的容器, 来对一个特定的数据库执行SQL语句

public class MySQL_Conn {
Connection conn = null;
Statement stat = null;
ResultSet rs = null;

public MySQL_Conn(){
try{
//加载JDBC驱动(需要先将Oracle配套驱动mysql-connector-java-5.0.0-beta-bin.jar导入工程)
Class.forName("com.mysql.jdbc.Driver");
System.out.println("驱动加载成功!");
//创建数据库连接
String url = "jdbc:mysql://localhost:3306/test"; //端口号:3306;数据库名称:test
String user = "root"; //数据库用户名
String pwd = "shuguang"; //用户密码
conn = DriverManager.getConnection(url, user, pwd);
System.out.println("数据库连接成功!");
}
catch(Exception e){
System.out.println("出现数据库连接错误…");
e.printStackTrace();
}try {
stat = conn.createStatement();
String sql="这里请写SQL语句";
rs=stat.executeQuery(sql);
while(rs.next()){ //若表中存在数据,则显示第一个字段列中的数据
System.out.println(rs.getString(1));
}
} catch (Exception e2) {
System.out.println("出现SQL语句错误…");
e2.printStackTrace();
}finally { //最后关闭所有连接,释放内存
            try {
                if (rs != null) {
                    rs.close();
                }
                if (stat != null) {
                    stat.close();
                }
                if (conn != null) {
                    conn.close();
                }
            } catch (Exception e3) {
                e3.printStackTrace();
            }
        }

}
}
--------------------编程问答-------------------- 这是我将你的代码复制过去,该了一下出现的错误:
java.lang.ClassNotFoundException: com.mysql.jdbc.Driver
at java.net.URLClassLoader$1.run(URLClassLoader.java:200)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:188)
at java.lang.ClassLoader.loadClass(ClassLoader.java:307)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301)
at java.lang.ClassLoader.loadClass(ClassLoader.java:252)
at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:320)
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Class.java:169)
at JdbcDemo.main(JdbcDemo.java:19)
Exception in thread "main" java.lang.NoClassDefFoundError: com/mysql/jdbc/Connection
at JdbcDemo.main(JdbcDemo.java:49)
Caused by: java.lang.ClassNotFoundException: com.mysql.jdbc.Connection
at java.net.URLClassLoader$1.run(URLClassLoader.java:200)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:188)
at java.lang.ClassLoader.loadClass(ClassLoader.java:307)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301)
at java.lang.ClassLoader.loadClass(ClassLoader.java:252)
at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:320)
... 1 more --------------------编程问答-------------------- 怎么清理呢 --------------------编程问答-------------------- import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;

public class TestJDBC {

public static void main(String[] args) {
Connection conn = null;
try{
Class.forName("com.mysql.jdbc.Driver");
conn = DriverManager.getConnection("jdbc:mysql://localhost/wangwu?user=root&password=monkey");
//wangwu,root,monkey换成你自己的没有建过库应该用test就可以
System.out.println("连接成功");
}catch(ClassNotFoundException e){
e.printStackTrace();
}catch(SQLException e){
e.printStackTrace();
} finally {
try {
if (conn != null) {
conn.close();
conn = null;
}
} catch (SQLException e) {
e.printStackTrace();
}
}
}
}

运行如果出现异常 
java.lang.ClassNotFoundException: com.mysql.jdbc.Driver
说明是没有找到mysql的驱动,把你的mysql的驱动jar包导入项目里面就OK了
不会导入可以百度. --------------------编程问答-------------------- 我学的javaScript java.lang.ClassNotFoundException: com.mysql.jdbc.Driver
 是没有找到驱动、把驱动放到 lib 文件里面 --------------------编程问答-------------------- MySQL Connector/NetType:    .NET Framework Class Library
Usage:  MySql.Data.MySqlClient.MySqlConnectionManufacturer:  MySQL
More info about this class library »Customize string
example values »
Standard
Server=myServerAddress;Database=myDataBase;Uid=myUsername;Pwd=myPassword;Default port is 3306. Specifying port
Server=myServerAddress;Port=1234;Database=myDataBase;Uid=myUsername;Pwd=myPassword;Download the driver at MySQL Developer Zone Named pipes
Server=myServerAddress;Port=-1;Database=myDataBase;Uid=myUsername;Pwd=myPassword;It is the port value of -1 that tells the driver to use named pipes network protocol. This is available on Windows only. The value is ignored if Unix socket is used. Multiple servers
Use this to connect to a server in a replicated server configuration without concern on which server to use.Server=serverAddress1 & serverAddress2 & etc..;Database=myDataBase;Uid=myUsername;Pwd=myPassword;  Using encryption
This one activates SSL encryption for all data sent between the client and server. The server needs to have a certificate installed.Server=myServerAddress;Database=myDataBase;Uid=myUsername;Pwd=myPassword;Encryption=true;This option is available from Connector/NET version 5.0.3. In earlier versions, this option has no effect. Using encryption, alternative
Some reported problems with the above one. Try replacing the key "Encryption" with "Encrypt" instead.Server=myServerAddress;Database=myDataBase;Uid=myUsername;Pwd=myPassword;Encrypt=true; --------------------编程问答-------------------- 没装MYSQL驱动吧 --------------------编程问答--------------------    我以为不是很难的原来也这么复杂,呵呵,菜鸟报道 --------------------编程问答-------------------- import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;

import com.mysql.jdbc.Connection;
import com.mysql.jdbc.Statement;


public class JdbcDemo {
private final static String DRIVER="com.mysql.jdbc.Driver";
private final static String URL="jdbc:mysql://localhost:3306/userinfo";
private final static String USER="superman";
private final static String PASSWORD="431026";
private final static String NO="1";
public static void main(String args[]){
Connection connection=null;
Statement stm=null;
try {
Class.forName(DRIVER);
connection = (Connection) DriverManager.getConnection(URL,USER,PASSWORD);
if(!connection.isClosed())
{
System.out.println("数据库成功连接了!");

}
stm=(Statement) connection.createStatement();
String sql="select * from userinfo;";
ResultSet rs=stm.executeQuery(sql);
System.out.println("UserName |Password") ;
System.out.println("__________________________________");
while(rs.next()){

System.out.println(rs.getString(1)+" |");

System.out.println(rs.getString(2)+" |");

System.out.println();

}
} catch (ClassNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}catch(SQLException e){
e.printStackTrace();
}finally{
try {
connection.close();
stm.close();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}

}
}
}
可以运行了但是运行的结果是??? | 123 其中字符串不知道怎么是以???在myeclipse中运行时显示的 123是我的那个设置的常量password各位帮我分析下市怎么回事啊,为什么一???显示,是哪里出问题了啊 --------------------编程问答--------------------
引用 12 楼 cjcf431026 的回复:
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;

import com.mysql.jdbc.Connection;
import com.mysql.jdbc.Statement;


public class JdbcDemo {
private ……



这是乱码啊,你数据库的编码跟eclipse中的编码方式不一样吧 --------------------编程问答-------------------- package com.Jdbc;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import java.sql.Statement;

public class JDBCAdd {
public static void main(String[] args) {
Statement st = null;
Connection conn = null;
// 加载并注册
try {
        String driverName = "com.mysql.jdbc.Driver";
Class.forName(driverName);
// 取得连接
String url = "jdbc:mysql://localhost:3306/jdbc";
conn = DriverManager.getConnection(url, "root", "mysql");
// 发送sql
st = conn.createStatement();
String sql = "insert into emp values(1003,'sun6','1')";
// 取得结果集,遍历结果集
int i = st.executeUpdate(sql);
System.out.println(i);
if(i>=1){
System.out.println("操作成功");
}else{
System.out.println("操作失败");
}

} catch (ClassNotFoundException e) {
e.getMessage();
} catch (SQLException e) {
e.getMessage();
}
// 关闭资源
finally {

}
try {
st.close();
} catch (SQLException e) {
e.getMessage();
}
try {
conn.close();
} catch (SQLException e) {
e.getMessage();
}
}
}
一个数据库连接和进行数据查询的小代码,我的用户名是root,密码是mysql,还有就是你看看你在没在eclipse里面加载你的驱动文件,你要是没有mysql驱动,我可以发给你 --------------------编程问答-------------------- 我用的是myeclipse
--------------------编程问答-------------------- 以下是我的习惯:


import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;

try
{
Class.forName("org.gjt.mm.mysql.Driver");
}
catch(ClassNotFoundException error)
{
JOptionPane.showMessageDialog(this, "MySQL数据库驱动检索失败!程序无法链接到数据库!", "错误提示", JOptionPane.WARNING_MESSAGE);
}

text.setText("查询结果:\n");
try
{
con=DriverManager.getConnection("jdbc:MySQL://127.0.0.1:3306/Phone_Contacts", "root","000000");
if(radio_name.isSelected())
{
pre=con.prepareStatement("SELECT DISTINCT * FROM Contact WHERE name Like '"+field_name.getText()+"%'");
}
else if(radio_phone.isSelected())
{
pre=con.prepareStatement("SELECT DISTINCT * FROM Contact WHERE mobile Like '"+field_phone.getText()+"%'");
}
rs=pre.executeQuery();
row=new CachedRowSetImpl();
row.populate(rs);
con.close();
if(!row.next())
{
text.append("Sorry,无此记录!\n");
}
else
{
row.beforeFirst();
while(row.next())
{
text.append(row.getString(1)+"\t");
text.append(row.getString(2)+"\n");
}
}
}
catch (SQLException error)
{
System.out.println("error!");
}


是用Swing的 --------------------编程问答--------------------
引用 15 楼 cjcf431026 的回复:
我用的是myeclipse

你的JDBC驱动的路径是错的吧
 应该是这样Class.forName("org.gjt.mm.mysql.Driver");
也许是版本问题,
不过,你可以用解压软件把驱动包解压之后看一下是否有那个driver.class文件
不过我看了一下自己的,你说的那个路径下确实也有那么一个driver.class文件
不过你的那个能不能用,我就没有试过 --------------------编程问答--------------------
引用 7 楼 qq315737546 的回复:
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;

public class TestJDBC {

public static void main(String[] args) {
Connection conn = null;
try{
Class.……



把那个驱动jar放入%JAVA_HOME%\jre\lib\ext\ 文件夹就可以了,%JAVA_HOME%是你的JDK安装的目录
补充:Java ,  Eclipse
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,