捕获 SQL 异常,提示“java.sql.SQLException: [Microsoft][ODBC Driver Manager] 未找到数据源名称且未指定默认驱动程序”。我在swings中使用了相同的连接代码,其中代码执行完美,包括SQL语句执行。如果可以对代码进行任何更改,请帮助我。
import javax.servlet.*;
import java.io.*;
import java.sql.*;
import javax.servlet.http.*;
public class forwardeg23 extends HttpServlet
{
Statement st;
public void doGet(HttpServletRequest req, HttpServletResponse res) throws ServletException,IOException
{
PrintWriter out = res.getWriter();
out.println("this is from forwardeg23");
try
{
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
Connection con = DriverManager.getConnection("jdbc:odbc:mysqllatest","root","tiger");
out.println("Atleast Connection Established");
st = con.createStatement();
}
catch(Exception ef){out.println(ef+"\n Error in creating connection");}
try{
st.executeUpdate("INSERT INTO student(Name,Marks) VALUES ('ABC',85)");
}
catch(Exception af){out.println("Exception HERE");}
}
}
最佳答案
问题非常简单java.sql.SQLException
java.sql.SQLException: [Microsoft][ODBC Driver Manager] Data source name not found and no default driver specified
这意味着您还没有创建任何DSN。
您需要create DSN in windows 7使用以下步骤
- 点击“开始”按钮 -> 点击“控制面板”
- 在控制面板中更改 View -> 查看方式:小图标
- 点击“管理工具”。
- 双击“数据源(ODBC)”
- 选择“用户 DSN”选项卡。 -> 选择“访问数据库”选项 -> 单击“添加”按钮 -> 点击“选择”按钮 -> 选择“Microsoft Access 驱动程序(*.mdb) -> 点击“完成”
- 新窗口打开。 -> 输入数据源名称 = CustomeDSN(注意:请输入相同的内容) -> 类型描述= CustomeDSN -> 点击“选择”按钮 (注:选择路径为:c:/程序文件/smart Solution/称重管理/system/WehinDB.mdb) (注意:如果 WehinDB.mdb 文件未出现,请将此位置和副本提供管理员权限并共享。 如果再次没有出现,则打开资源管理器,然后在桌面上剪切该文件,然后重新启动计算机并再次将其粘贴到 samr 位置。)
- 点击“完成”
另外,请注意,如果您的第一个 try
block 抛出异常,那么它将执行下一个 try
block ,这是不好的做法。
使用Type 4 Driver - Database-Protocol Driver(Pure Java Driver)因为它是 100% 纯 Java。
有用的链接
关于java - 我们可以使用DSN方法连接Java EE中的MYSQL数据库吗,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19045785/