Tag: sql

如何在Java中执行SQL插入

我试图将数据插入到具有自动增量主键的表中。 我的表结构是这样的: int:PK varchar:Item_ID varchar:Item_name int:FK_type 当我尝试准备好的声明时: prep = conn.prepareStatement(“insert into Inventory values (?, ?, ?);”); 我收到此错误: Exception in thread “main” java.sql.SQLException: [SQLITE_ERROR] SQL error or missing database (table Inventory has 4 columns but 3 values were supplied) at org.sqlite.DB.newSQLException(DB.java:383) at org.sqlite.DB.newSQLException(DB.java:387) at org.sqlite.DB.throwex(DB.java:374) at org.sqlite.NativeDB.prepare(Native Method) at org.sqlite.DB.prepare(DB.java:123) at org.sqlite.PrepStmt.(PrepStmt.java:42) at org.sqlite.Conn.prepareStatement(Conn.java:404) at org.sqlite.Conn.prepareStatement(Conn.java:399) […]

JDBC调用以数组为参数的存储过程

我正在尝试使用java代码调用以下过程但我得到了几个错误(基本上是为了类型转换)我的事情我搞砸了某处可以有人看看它。 这是我第一次这样做。 一点帮助会很棒。 PROC: DECLARE car__details_tab car__details_tab_type := NEW car__details_tab_type(); car_id number_tab_type; car_error_tab car__error_tab_type := new car__error_tab_type(); car_purchase_id NUMBER; BEGIN car__details_tab.extend; car__details_tab(car__details_tab.count) := car__details_type(null, null ,null ,null ,null ); car__details_tab(car__details_tab.COUNT).model_id := AW0; car__details_tab(car__details_tab.COUNT).brand := ‘LAM’; car__details_tab(car__details_tab.COUNT).version := 1; car__details_tab(car__details_tab.COUNT).type := ‘Sedan’; pckg.ins_trade_details(car__details_tab => car__details_tab ,car_purchase_id => 101 ,user => ‘Test’ ,car_id_tab => car_id ,car_error_tab => […]

使用矢量JTable

现在我只使用JList ,但如果数据显示在JTable ,它看起来会好得多。 这是GUI类: public class Table extends JFrame { private JPanel contentPane; DefaultTableModel tableModel = new DefaultTableModel(); private JTable table; private Controller controller = new Controller(); private static Vector <Vector> data = new Vector <Vector>(); /** * Launch the application. */ public Table() throws SQLException { Vector columnNames = new Vector (); ResultSet rs2 […]

在两个日期之间搜索My SQL中的数据

当我在一个月内的两个日期之间进行搜索时(例如,在09-02-2013 2月2 02-02-2013至09-02-2013 2月9日之间),结果显示从09-02-2013月1日至09-02-2013月1日以及09-02-2013 2月3 02-02-2013至09-02-2013 08-02-2013 。 以下是我的代码: try { dconfig dcf=new dconfig(); java.sql.Connection connection; Class.forName(dcf.driver); connection=(com.mysql.jdbc.Connection) DriverManager.getConnection(dcf.StrUrl,dcf.StrUid,dcf.StrPwd); ResultSet rs = null; ResultSet rscount; String StrQr=””; if (jobnamesearch.getText().trim().length()>0 ) { StrQr=StrQr + ” and job_name like ‘%” + jobnamesearch.getText().trim() +”%’ “; } if (datetosearch.getText().trim().length()>0) { StrQr=StrQr + ” and date > ‘” + datesearch.getText().toString()+”‘ […]

Java用户类

我如何解析java用户类和JDBC用户类? 问题是当我用完时输出的是sql中的数据。例如 public User authenctication(String eMail, String password) { try { con = DriverManager.getConnection(“jdbc:mysql://localhost/mydb”, “root”, “root”); stm = con.createStatement(); rs = stm.executeQuery(“select * from User,Role where user.id=role.id”); while(rs.next()) { user = new User(); user.setAddress(rs.getString(“”)); user.setCountry(rs.getString(“”)); user.setCreatedBy(rs.getString(“”)); user.setEMail(rs.getString(“”)); user.setId(rs.getInt(“”)); } } catch (Exception sqlEx) { System.out.println(“sqlexecuteException: ” + sqlEx.toString()); } return user; }

插入数据库

我有一个问题,我有一个系统添加用户,我必须检查此用户是否存在以便我不会再次添加他,我从数据库中检索所有名称到arraylist.I检查首先是否数组列表是空的,以便我可以添加其他用户,他将检查他是否存在这里是代码 if(names.size() == 0){ dbstatement.executeUpdate(” insert into users (user_name,user_password,user_type) values (‘” + username + “‘,'” + userpassword + “‘,'” + type + “‘)”); JOptionPane.showMessageDialog(rootPane, “user added successfully”); } else{ for (int i = 0; i < names.size(); i++) { if (username.equals(names.get(i))) { JOptionPane.showMessageDialog(rootPane, "Sorry, this name already exist"); break; } } dbstatement.executeUpdate ("insert into users(user_name,user_password,user_type) […]

如何获取主键来执行更新语句

我正在尝试使用Java JDBC更新我的表。 但我不知道如何使用Prepared Statement调用我的主键。 我尝试为我的数据库列创建一个USER_ID对象,但不知道从哪里开始。 我如何确定我是否已更新数据库? 码 String updateEmployee = employeeTf.getText(); String updateDepartment = departmentTf.getText(); if(updateEmployee.isEmpty() && updateDepartment.isEmpty()){ JOptionPane.showMessageDialog(null, “You didn’t update it”); } else if(updateEmployee.isEmpty()){ JOptionPane.showMessageDialog(null, “Please update your name”); } else if(updateDepartment.isEmpty()){ JOptionPane.showMessageDialog(null, “Please update your department”); } else{ String updateQuery = “UPDATE SAMPLE SET EMPLOYEENAME = ?, DEPARTMENT = ? WHERE USER_ID […]

查询按字母顺序搜索名称

我使用了LIKE条件,但它要求我在数据库中输入全名来查找名称。 if (searchby.equals(“Name”)) { try { Class.forName(“sun.jdbc.odbc.JdbcOdbcDriver”); System.out.println(“\n Driver loaded”); Connection con=DriverManager.getConnection(“jdbc:odbc:wanisamajDB”); Statement stmt=con.createStatement(); ResultSet rs = stmt.executeQuery(“SELECT Name FROM FAMILYcensus WHERE Name LIKE ‘”+ tfsearch.getText()+”‘”); // ResultSet rs = stmt.executeQuery(“SELECT Name FROM FAMILYcensus WHERE Name LIKE ); System.out.println(“Hi”); rs.next(); String names = rs.getString(“NAME”); System.out.println(“NAME: ” + names ); JOptionPane.showMessageDialog(null, “RECORD FOUND”); tasearch.setText(names); } catch […]

TO_DATE Oracle DBMS_SQL.EXECUTE函数问题

我试图使用DBMS_SQL.EXECUTE函数调用Oracle存储过程。 我将PL / SQL块作为输入参数传递给函数,该函数使用DBMS_SQL.EXECUTE函数调用DB过程。 该过程有一个字符串参数,我使用TO_DATE函数以字符串格式传递当前日期。 请参阅下面的我用于调用该过程的语法。 调用该过程时,传递的日期将作为DATE数据类型保存在数据库中。 我面临的问题是截断日期的时间部分,时间变为12:00 AM,无论传递给函数的时间如何。 有人可以让我知道我做错了什么吗? 用于调用函数的SQL块: plsql_block =BEGIN P_USER_TIME(to_date(’21-JUL-2012 03:30:30′,’DD-MON-YYYY HH24:MI:SS’)); Return; End; 调用该过程的函数的SQL语法: ret_int := DBMS_SQL.OPEN_CURSOR; DBMS_SQL.PARSE(ret_int,plsql_block,DBMS_SQL.NATIVE); ret_int_execute := DBMS_SQL.EXECUTE(ln_dbms_cur); PFB是oracle代码块 我正在使用一个函数,它将日期作为varchar输入,并且n将它传递给另一个过程。我可以看到过去与日期相关的时间没有插入到某个场景中。 请在下面找到我的function iv_plsql4 :=’10-08-2012 07:30:30′; ln_dbms_cur := DBMS_SQL.OPEN_CURSOR; iv_plsql2 := BEGIN PKG_PRADEEP.P_INSERTDATE(to_date(iv_plsql4,’DD-MM-YYYY HH24:MI:SS’)); DBMS_OUTPUT.put_line(iv_plsql); DBMS_SQL.PARSE(ln_dbms_cur,iv_plsql,DBMS_SQL.NATIVE); ln_cur_execute := DBMS_SQL.EXECUTE(ln_dbms_cur); This code inserts the date in to the database but […]

使用包含$$字符的SQLExec执行文件

我使用pg_dump创建了一个sql转储文件。 此导出文件包含包含$$字符的函数。 使用psql -f 导入文件没问题。 如果想使用SQLExec任务使用ant导入文件,我会得到一个例外: org.postgresql.util.PSQLException: ERROR: syntax error at or near “$” 有没有办法导入包含$$的文件? 在postgres Log中,似乎SQLExec任务将$$转换为$导致错误。 错误:字符处的“$”处或附近的语法错误87语句:创建functionprocess_create_servicenumber()RETURNS触发器LANGUAGE plpgsql AS $ BEGIN IF(TG_OP =’DELETE’)然后返回旧 在这里我的方法 protected void importNewDbFromDumpFile() { final class SqlExecuter extends SQLExec { public SqlExecuter() { Project project = new Project(); project.init(); setProject(project); setTaskType(“sql”); setTaskName(“sql”); } } try { SqlExecuter executer = new […]