以mysql为例,有个字段是timestamp或者datatime类型。
1、可以直接在java中直接new javalangutilDate();
2、获取到一个时间类型的字符串,然后利用SimpleDateFormat中的parse方法将时间字符串解析成一个Date对象。
现在比较流行的框架都是可以直接插入Date类型的数据,只要与数据库中的映射一致即可。
如mybatis,如下:
<resultMap id="BaseResultMap" type="comtestUser" >
<id column="id" property="id" jdbcType="INTEGER" />
<result column="name" property="name" jdbcType="VARCHAR" />
<result column="insert_time" property="insertTime" jdbcType="TIMESTAMP" />
</resultMap>
只要User中的属性insertTime是一个标准格式的javalangutilDate类型,然后调用mybatis的insert方法即可插入。
是代码输入错误造成的,解决方法如下:
1、需要重新配置数据库,首找到数据库安装目录下的MySQLInstanceConfigexe,双击打开。
2、打开之后,前面步骤默认就行,到了所示的地方,修改字符集为utf-8。
3、然后点击下一步,如下图所示。
4、最后重启数据库。在代码中连接数据库部分加上characterEncoding=utf8,这样问题就解决了。
传统拼接insert into table() values(),(),()这种方式实现批量插入
采用数据库持久化框架,比如hibernate,根据插入的记录数,设定每多少次循环执行一次commit *** 作
觉得你没调用stmtexecuteUpdate();这句吧,你可以改成我下面的形式试试。在这之前你得确认连接上数据库了吗?如果你打印con取到了值(或者单步调式看con取到了值)。然后将insert into employee(id,name,sex,born,nation,minzu,zhengzhi,marry,school,zhiwei,tel,address) values ('"+snumber+"','"+sname+"','"+ssex+"','"+sbir+"','"+shometown+"','"+snation+"','"+sstatus+"','"+smarrage+"','"+seducation+"','"+sposition+"','"+smobile+"','"+saddress+"')");
改成insert into employee(id,name,sex,born,nation,minzu,zhengzhi,marry,school,zhiwei,tel,address) values (?,?,?,?,?,?,?,?,?,?,?,?)");
然后这样子做:
stmtsetString(1,值);
stmtsetString(2,值);
直至塞完你要插入的值,如果是int的,里面也有stmtsetInt(3,值);
还有float的就有stmtsetFloat(4,值);总之,你想赛什么样的值它都有方法的。
然后你再调用stmtexecuteUpdate();就OK了
都给你说了没调用stmtexecuteUpdate();
怎么不去试试调用stmtexecuteUpdate();呢,调了后没有再找我!
以上就是关于在Java中如何向数据库中插入Time类型的数据全部的内容,包括:在Java中如何向数据库中插入Time类型的数据、java向数据库插入数据时的错误: Duplicate entry '' for key 'PRIMARY' 是什么问题,怎么解决,先谢啦!、java怎么把数据批量插入数据库中等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)