我制作了一些Java 1.6-Oracle11g-JDBC(使用OJDBC 6)代码(如下).我得到一个例外 - java.sql.SQLException: Missing IN or OUT parameter at index:: 1
为什么会发生这种情况,我该如何解决?
我的输出是 -
create CREATE TABLE employee(emp_name varchar(25),emp_address varchar(25))
insert INSERT INTO employee(jim,germany) values(?,?)
Exception: java.sql.SQLException: Missing IN or OUT parameter at index:: 1
Run Code Online (Sandbox Code Playgroud)
代码是 -
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.SQLException;
import java.sql.Statement;
public class Oracle {
public static void main(String[]args)
{
try
{
Connection con = DriverManager.getConnection("jdbc:oracle:thin:@//localhost:1521/xe", "newman", "123456");
Statement stmt = con.createStatement();
String create = "CREATE TABLE employee(emp_name varchar(25),emp_address varchar(25))";
System.out.println("create " …Run Code Online (Sandbox Code Playgroud) 我正在制作Java 1.6-JDBC-Oracle 11代码.我创建了一个名为employee的表,其中包含id,name和age.我收到错误 - ORA-00911:无效字符.我怎样才能解决这个问题 ?
这是我的代码 -
import java.sql.*;
import java.util.Properties;
import java.io.IOException;
import java.io.FileInputStream;
public class HelloOracle {
static String query =
"SELECT emp_id, emp_name, emp_age " +
"FROM employee;";
public static void main(String[] args) {
String username = "";
String password = "";
Properties prop = new Properties();
try {
FileInputStream fis = new FileInputStream("Login.properties");
prop.load(fis);
} catch (IOException ex) {
ex.printStackTrace();
}
username = prop.getProperty("username").trim();
password = prop.getProperty("password").trim();
try {
Connection con = DriverManager.getConnection("jdbc:oracle:thin:@//localhost:1521/xe", username, password); …Run Code Online (Sandbox Code Playgroud) 我想使用Oracle 11g作为我的java代码数据库.我试图从oracle网站上获取驱动程序.我看到这么多文件都带有一些行话.我需要知道这些词是什么意思以及它们如何影响我作为用户.我如何决定使用哪一个?我选择了ojdbc6.jar因为我使用了jdk 6.请帮助我理解文件的描述是什么意思,谁应该关注它们以及为什么?
ojdbc6.jar - Classes for use with JDK 1.6. It contains
the JDBC driver classes except classes for NLS support in
Oracle Object and Collection types.
ojdbc6_g.jar - Same as ojdbc6.jar except compiled
with "javac -g" and contains tracing code.
ojdbc6dms.jar - Same as ojdbc6.jar, except
that it contains instrumentation to support DMS
and limited java.util.logging calls.
orai18n.jar - NLS classes for use with JDK 1.5, and
1.6. It contains classes for NLS support in Oracle
Object and …Run Code Online (Sandbox Code Playgroud) 我继续得到这个错误.我尝试了stackoverflow(下面)中的一个解决方案,它对我不起作用 - 连接到SQL服务器时出现SQL异常
我尝试通过使用链接来允许Windows防火墙中的端口1433,这也不起作用.请参阅"在Windows防火墙中打开TCP访问端口"一节 http://msdn.microsoft.com/en-us/library/ms175043.aspx
com.microsoft.sqlserver.jdbc.SQLServerException: The TCP/IP
connection to the host localhost, port 1433 has failed. Error:
"Connection refused: connect. Verify the connection properties.
Make sure that an instance of SQL Server is running on the host
and accepting TCP/IP connections at the port. Make sure that TCP
connections to the port are not blocked by a firewall.
Run Code Online (Sandbox Code Playgroud)
请帮我解决这个问题.
谢谢
我正在尝试制作简单的java代码,以检查MySQL DB中是否存在表和/或列.我应该使用Java代码进行检查还是创建一个SQL查询字符串并执行它来进行检查?
编辑-
@ aleroot -
我尝试使用您的代码,如下所示.当我运行下面的代码时,我没有看到任何表或列.我只看到这个 -
Driver Loaded.
Got Connection.
Run Code Online (Sandbox Code Playgroud)
我的DB有很多DB,表和列.我不知道为什么这个程序正常工作.
import java.sql.Connection;
import java.sql.DatabaseMetaData;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.Statement;
public class Tester {
static Connection conn;
static Statement st;
public static void main(String[] args) throws Exception {
try {
// Step 1: Load the JDBC driver.
System.out.println("Driver Loaded.");
// Step 2: Establish the connection to the database.
String url = "jdbc:mysql://localhost:3306/";
conn = DriverManager.getConnection(url, "cowboy", "123456");
System.out.println("Got Connection.");
st = conn.createStatement();
} catch (Exception e) { …Run Code Online (Sandbox Code Playgroud) 如何使用Oracle 11g和SQL Developer创建一个小而简单的数据库?我看到太多错误,我找不到任何方法来创建一个简单的数据库.例如
create database company;
Run Code Online (Sandbox Code Playgroud)
导致以下错误:
Error starting at line 1 in command:
create database company
Error at Command Line:1 Column:0
Error report:
SQL Error: ORA-01501: CREATE DATABASE failed
ORA-01100: database already mounted
01501. 00000 - "CREATE DATABASE failed"
*Cause: An error occurred during create database
*Action: See accompanying errors.
Run Code Online (Sandbox Code Playgroud)
编辑 - 这与我熟悉的MySQL和MS-SQL完全不同.不像我期望的那样直观.
当我不需要在我的程序中使用那些ResultSet和Connection的实例时,为什么我应该在它们上面调用.close()方法呢?
不这样做会有什么危险(如果有的话)?
我想在oracle 11g中创建用户/模式,并为用户授予所有权限.我怎么能用一个简单的脚本来做到这一点.我查看了以下链接,但我不确定使用哪一个或者这些陈述是最好的方式.
http://ss64.com/ora/grant.html
您能否建议我如何以最简单的方式安全地做到这一点?
当我这样做:count = ++ count; 为什么我会收到警告 - 对变量计数的赋值没有效果?这意味着计数递增,然后分配给自己或其他东西?它和++ count一样吗?count = count ++中会发生什么??为什么我没有收到警告呢?
我手动将我的sql连接器jar复制到我的sql jdbc项目的lib文件夹中.我已经在该文件夹中放了一些旧罐子,之前也很容易添加到构建路径中.现在,我忘了我是怎么做到的,当我尝试添加jar来构建路径时,我没有看到lib文件夹.怎么样?我希望我的jar成为我项目的一部分,而不是躺在一些随机文件夹中.