请指教,很急,谢谢

问题描述

源文件:import java.lang.reflect.Method;import java.sql.Connection;import java.sql.DriverManager;import java.sql.PreparedStatement;import java.util.HashMap;import java.util.Map;import com.sty.hibernate.model.Student;public class Session {// ping sql 需要这些配置方法,但成员变量中不能有语句,所以写一个构造方法String tableName = "_student";Map<String,String> cfs=new HashMap<String,String>();//为什么用map字段名与属性名一一对应//因为?中有int和string的类型,插入数据的方法不统一,所以采用了hibernate的反射机制,即下面的String[] methodName;//某个属性对应的调用某个方法名,然后存到字符数组里;String[] methordName=new String[cfs.size()];//放在这是错误的,因为还没初始化public Session(){cfs.put("_id", "id");//数据库中的_id对应属性idcfs.put("_name", "name");cfs.put("_age", "age");methodName=new String[cfs.size()];}//这样当调用craateSQL时map、tableName中就有值了public void save(Student s) throws Exception {// String TableName = "_Student";// Map<String,String> cfs=new HashMap<String,String>();//为什么用map字段名与属性名一一对应// cfs.put("_id", "id");//数据库中的_id对应属性id// cfs.put("_name", "name");// cfs.put("_age", "age");// 此部分应该写在配置文件里String sql=createSQL();Class.forName("com.mysql.jdbc.Driver");Connection conn=DriverManager.getConnection("jdbc:mysql://localhost/hibernate","root","sty");PreparedStatement ps=conn.prepareStatement(sql);for(int i=0;i<methodName.length;i++){//先拿到方法,然后执行方法,然后执行返回结果,再将其结果添加到?中去Method m=s.getClass().getMethod(methodName[i]);//getClass()先拿到student类,getMethod(mName)将method的名字传入Class r=m.getReturnType();//获取返回的class类型System.out.println(r.getName()+"|"+m.getName());if(r.getName().equals("java.lang.String")){String returnValue=(String)m.invoke(s);//m.invoke(obj, args)因为没有参数所以省略args;m.invoke(s)返回的是object类型ps.setString(i+1, returnValue);}if(r.getName().equals("int")){Integer returnValue=(Integer)m.invoke(s);//m.invoke(obj, args)因为没有参数所以省略args;m.invoke(s)返回的是object类型ps.setInt(i+1, returnValue);}}ps.executeUpdate();ps.close();conn.close();}private String createSQL() {String str1="";int index =0;//循环变量for(String s:cfs.keySet()){String v=cfs.get(s);//获取cfs.put("_id", "id");中value的值,即idv=Character.toUpperCase(v.charAt(0))+v.substring(1);//方法名的首字母改为大写methodName[index]="get"+v;str1+=s+",";index++;}str1=str1.substring(0,str1.length()-1);String str2="";for(int i=0;i<cfs.size();i++){str2+="?,";}str2 = str2.substring(0,str2.length()-1);String sql="insert into"+tableName+"("+str1+")"+"values ("+str2+")";return sql;}}问题提示:int|getIdint|getAgejava.lang.String|getNameException in thread "main" com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: Table 'hibernate.into_student' doesn't existat 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:409)at com.mysql.jdbc.Util.getInstance(Util.java:384)at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:1054)at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3566)at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3498)at com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:1959)at com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:2113)at com.mysql.jdbc.ConnectionImpl.execSQL(ConnectionImpl.java:2568)at com.mysql.jdbc.PreparedStatement.executeInternal(PreparedStatement.java:2113)at com.mysql.jdbc.PreparedStatement.executeUpdate(PreparedStatement.java:2409)at com.mysql.jdbc.PreparedStatement.executeUpdate(PreparedStatement.java:2327)at com.mysql.jdbc.PreparedStatement.executeUpdate(PreparedStatement.java:2312)at Session.save(Session.java:60)at StudentTest.main(StudentTest.java:11)不知道是什么原因,谢谢数据库是MySQL,其他配置正常 问题补充:pxb1988 写道

解决方案

String sql="insert into<空格>"+tableName+"("+str1+")"+"values ("+str2+")";
解决方案二:
你表的配置文件有问题,检查实体表的配置文件,如果你用jpa注解,就看看注解是不是哪里出错了!如果也不是的话,在试试,Table 'hibernate.into_student' 表是hibernate.into_sutdent.你的表名是错误的,你生产sql语句的时候String sql="insert into"+tableName+"("+str1+")"+"values ("+str2+")"; 那个tableName就是hibernate.into_sutdent.你要做下处理!不知到我说的对不!

时间: 2024-10-26 00:06:21

请指教,很急,谢谢的相关文章

应用-iOS开发信鸽推送问题, 获取不到服务器推送内容,很急,谢谢大家!

问题描述 iOS开发信鸽推送问题, 获取不到服务器推送内容,很急,谢谢大家! 最近应用中要做到推送功能,看官方SDK, 有一步是设置账户,之后我在网页中输入内容,跟这个账户对应上,已经可以收到内容.但是我现在要收到从服务器发送的消息,这有身份登录,不同的身份收到的是不同的内容, 现在却收不到了,我把账号已经取消了,这是什么原因,我们是php后台,需要和注意什么,请大家解答,谢谢了!! 非常急!谢谢 解决方案 http://bbs.csdn.net/topics/391886150

java-有没有人用过common.net jar向linux发送命令,请指教下,谢谢

问题描述 有没有人用过common.net jar向linux发送命令,请指教下,谢谢 发送一些正常的命令没有问题,像ls.date这类,但是发送不可识别的按键的时候就会出现问题,像F3,方向键等等,

很急,请高手指教

问题描述 我的项目中使用了jspsmartupload组件进行上传,我的action是交由spring管理的现在要初始化SmartUpload那么在action中如何获取actionServlet的servletConfig呢之前看了网上的一些回答但是都不准确.我的错误代码如下:action中的部分代码SmartUploadsu=newSmartUpload();su.initialize(this.getServlet().getServletconfig(),request,response

寻解决方案:利用DataTable中每个行DataRow信息,连接数据库取数将结果存放到此DataRow中的信息结果列中。在线等!请指教!

问题描述 我的这个方案是要完成两个或多个DataTable的四则运算,运算是通过DataTable中共有的"时间"和"单位"列来关联运算,但是现在有一个问题是如果DataTable中"2007年1月"对应于有700多个单位,那这些表都具有700多行记录,如果正常取数的话.用每条记录信息生成条件,查询数据库返回结果信息大概是0.5秒钟,如果遍历DataRow顺序执行700多条记录,需要耗时350秒,如果有六七个DataTable参与运算,那时间还要

javaweb-请问条件查询怎么让分页页数不会跳回第一页,留在本页面,很奇葩的需求,请做过的指教下,谢谢

问题描述 请问条件查询怎么让分页页数不会跳回第一页,留在本页面,很奇葩的需求,请做过的指教下,谢谢 请问条件查询怎么让分页页数不会跳回第一页,留在本页面,很奇葩的需求,请做过的指教下,谢谢 解决方案 查询的时候就不能一次都查出来,要设置pagesize,然后做一个分页控件传入你要转到的页数值,再到数据库 查询绑定 ,一般你要在数据库做一个存储过程来实现 解决方案二: 记住当前页码就行啊.我们也是这么做的. 检索的生活把当前的检索条件和页码记住.

急!关于mysql+jsp分页显示的问题,请哪位好心的大神帮忙看一下,很急!!谢谢!!

问题描述 急!关于mysql+jsp分页显示的问题,请哪位好心的大神帮忙看一下,很急!!谢谢!! 浏览器显示时总是重复出现当前页最后一条信息,是怎么回事啊? 这是jsp代码: <% int pageNum = 1; int pageSize=LunwenDao.PAGE_NUM; String paramPage = request.getParameter("page"); if (paramPage != null) { pageNum = Integer.parseInt(

线程-请大神帮我看下这部分代码怎么写?谢谢!很急

问题描述 请大神帮我看下这部分代码怎么写?谢谢!很急 如图所示,我把基本通讯功能已经实现,但是我想实现下图中红色圈中部分的功能,自动发送跟数据格式的功能怎么实现啊,希望发送端跟接收端都可以实现这个数据格式的功能,谢谢 整体代码如下: using System; using System.Collections.Generic; using System.ComponentModel; using System.Linq; using System; using System.Data; usin

服务器-java 关于NIO实现UDP数据传输问题 ,急谢谢,C币不足请不要介意

问题描述 java 关于NIO实现UDP数据传输问题 ,急谢谢,C币不足请不要介意 各位大侠好,小弟想问一下问题,搞了一两天没有搞明白的.因为要实现一个UDP传输服务端,于是在网上找了很多资料然后就写了一个.但是写好之后发现有两个很严重的问题,希望各位大哥给点意见或者思路去解决.问题一:启动服务端,同时也启动客户端,客户端传输数据服务器正常接收,但是断开客户端后,再启动客户端,服务器就收不到任何客户端发送的消息,好像是服务器关闭了UDP一样,但是重启服务器后(重新打开UDP)客户端既可以发送信息

spring mvc-Spring web MVC问题,麻烦大神们帮忙看看哪里出错了?很急很急!!!!谢谢啦

问题描述 Spring web MVC问题,麻烦大神们帮忙看看哪里出错了?很急很急!!!!谢谢啦 报错日志: java.lang.IllegalArgumentException at org.springframework.asm.ClassReader.(Unknown Source) at org.springframework.asm.ClassReader.(Unknown Source) at org.springframework.asm.ClassReader.(Unknown

android开发-android数据库插入问题老是出错。新手。很急,在线等。谢谢大神了

问题描述 android数据库插入问题老是出错.新手.很急,在线等.谢谢大神了 public class MyDatabaseHelper extends SQLiteOpenHelper { final String CREATE_TABLE_SQL = "create table dict(_id integer primary " + "key autoincrement , word , detail)"; public MyDatabaseHelper(C