`
yangjayup
  • 浏览: 247276 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

SqlServer : java.sql.SQLException: 无法将 NULL 值插入列

阅读更多
调用ibatis的DAO:
2008-9-23 15:43:09 org.apache.catalina.core.ApplicationContext log
信息: org.springframework.dao.DataIntegrityViolationException: SqlMapClient operation; SQL [];  
--- The error occurred in com/miracle/dm/sysmgr/log/sqlmapxml/Log_SqlMap.xml. 
--- The error occurred while applying a parameter map. 
--- Check the insertLog-InlineParameterMap. 
--- Check the statement (update failed). 
--- Cause: java.sql.SQLException: 无法将 NULL 值插入列 'log_id',表 'mloa.dbo.tb_log';该列不允许空值。INSERT 失败。; nested exception is com.ibatis.common.jdbc.exception.NestedSQLException:  
--- The error occurred in com/miracle/dm/sysmgr/log/sqlmapxml/Log_SqlMap.xml. 
--- The error occurred while applying a parameter map. 
--- Check the insertLog-InlineParameterMap. 
--- Check the statement (update failed). 
--- Cause: java.sql.SQLException: 无法将 NULL 值插入列 'log_id',表 'mloa.dbo.tb_log';该列不允许空值。INSERT 失败。



调用hibernate的DAO:
Hibernate: insert into TB_LOG (LOG_TYPE, LOG_USERID, USER_NAME, LOG_TIME, MODULE_CODE, LOG_CONTENT, OPER_CODE, REMARK) values (?, ?, ?, ?, ?, ?, ?, ?)
[@APPNAME@] WARN [http-80-8] JDBCExceptionReporter.logExceptions(77) | SQL Error: 515, SQLState: 23000
[@APPNAME@] ERROR [http-80-8] JDBCExceptionReporter.logExceptions(78) | 无法将 NULL 值插入列 'log_id',表 'mloa.dbo.tb_log';该列不允许空值。INSERT 失败。
org.springframework.dao.DataIntegrityViolationException: could not insert: [com.miracle.dm.sysmgr.log.model.LogInfo]; nested exception is org.hibernate.exception.ConstraintViolationException: could not insert: [com.miracle.dm.sysmgr.log.model.LogInfo]
at org.springframework.orm.hibernate3.SessionFactoryUtils.convertHibernateAccessException(SessionFactoryUtils.java:628)
at org.springframework.orm.hibernate3.HibernateAccessor.convertHibernateAccessException(HibernateAccessor.java:408)
Log.hbm.xml中主键id的配置:
                <id name="logId"  column="LOG_ID">
   <generator class="native"/>
  </id>
按理说配置为native则会根据数据库自动帮你选择自增的类型,可为何还是报错?


直接采用查询分析器执行代码:

INSERT INTO TB_LOG     (LOG_TYPE ,       LOG_USERID ,       USER_NAME ,       LOG_TIME ,       MODULE_CODE ,       LOG_CONTENT ,       OPER_CODE ,       REMARK     )      VALUES     ('DocumentAction' ,   '4212100010160', 'admin', '2008-09-23 15:43:09.156', 'Module1', 'admin用户新增文档ID_:547', 'ADD' ,'') 
一样出现问题,显示结果:无法将 NULL 值插入列 'log_id',表 'mloa.dbo.tb_log';该列不允许空值。INSERT 失败。

修改sql语句,执行:
INSERT INTO TB_LOG     (log_id,LOG_TYPE ,       LOG_USERID ,       USER_NAME ,       LOG_TIME ,       MODULE_CODE ,       LOG_CONTENT ,       OPER_CODE ,       REMARK     )      VALUES     (     0, 'DocumentAction' ,   '4212100010160', 'admin', '2008-09-23 15:43:09.156', 'Module1', 'admin用户新增文档ID_:547', 'ADD' ,'')  
显示结果:(所影响的行数为 1 行)

解决方法:
    修改数据库中表的字段属性,注意默认值不要填,否则你无法设置标识为是,那么你将看到标识种子,标识递增量都显示为灰色。
   “标识”选择为“是”,“标识种子”为1,“标识递增量”为1



本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/foamflower/archive/2008/09/24/2972566.aspx
分享到:
评论

相关推荐

    java.sql.SQLException: null,  message from server: “Host ‘%’ is not allowed to connect to

    java.sql.SQLException: null, message from server: “Host ‘223.72.41.7’ is not allowed to connect to this MySQL server” 客户端访问时报错: 解决方法: 1,登陆服务器 mysql&gt; use mysql; //用mysql ...

    Java连接sqlserver2005

    private final static String URL = "jdbc:sqlserver://localhost:1433;DatabaseName=Test"; private static Connection conn = null; //获取连接对象 public static Connection getConn() { if (conn == null...

    数据库工具类DatabaseUtil.java

    * 可滚动的 Statement 不能执行 SELECT MAX(ID) 之类的查询语句(SQLServer 2000) * * @param sql * 需要执行的 SQL * @return 记录总数 */ public int getAllCount(String sql) { try { Statement ...

    jdbc for sqlserver2000.rar

    //连接数据库的方法 public static Connection geconnection() { //这里可以设置... JOptionPane.showMessageDialog(null,"请检查sqlserver2000驱动"); e.printStackTrace(); } return con; }

    java连接sqlserver示例

    null, null, null, null, null, '1', null, null, null, null, null, null, null, null, null, null, null, null)"); // db_manager.executeUpdate("insert into T_USER_ROLE values('test00"+i+"','sys_admin','...

    servlet分页、删除、修改

    private final static String URL="jdbc:sqlserver://localhost:1433;DatabaseName=personnelManage"; private final static String UNAME="sa"; private final static String UPWD="sasa"; public Connection ...

    简单财务管理系统 java sql 数据库

    import java.sql.*; public class DataBaseConnection { static{ //2005 //String DBDRIVER="com.microsoft.jdbc.sqlserver.SQLServerDriver";//2000 } public static Connection getConn(){ String DBDRIVER=...

    使用jsp进行 树状展示1源代码

    "jdbc:sqlserver://localhost:1433;"+ "databasename=test;user=accp;password=accp"; public static Connection getConnection(){ Connection conn = null; try { Class.forName(CLASSNAME); ...

    Java Web新闻发布项目

    使用技术:JSP+SERVLET+JAVABEAN + TOMCAT + SQLSERVER。 db.ConnectionManager 这是个数据库链接管理类 public class ConnectionManager { public ConnectionManager() { } public static Connection Getcon...

    java程序是怎么操作数据库的,可以以常用据库为例,求详细解答,最好能举例。

    最后需要说的是笔者的调试上面程序的环境:WIN2000 , JDK1.3,MS SQLSERVER编辑软件:EDITPLUS 2.01a(这最后的东西可不是废话,虽然早就了一些专业的JAVA开发工具,但是笔者建议JAVA初学者使用文本软件开发JAVA程序...

    网上购物车 大三实验 今天刚做完

    private String url="jdbc:sqlserver://localhost:1433;DatabaseName=db_shopcar"; public DB(){ try{ Class.forName(driver); System.out.println("加载驱动成功"); }catch(ClassNotFoundException...

    jdbc连接数据库getConnection 增、删、改、查

    String url = "jdbc:sqlserver://localhost:1433;DatabaseName=jdbc"; String user = "sa"; String password = "sa"; String Driver="com.microsoft.sqlserver.jdbc.SQLServerDriver"; Connection conn = null; try ...

    连接SQL Server数据库语法

    下面介绍一下连接Sqlserver数据库。把连接Sqlserver数据库封装为一个方法,以便直接调用,而不需写重复代码。 import java.sql.Connection; import java.sql.DriverManager; import java.sql.ResultSet; import ...

    数据库连接,里面有各种数据库的连接方法

    private String url="jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=demo"; private String user="sa"; private String password=""; public String getDriverName() { return driverName; } ...

    连接sql数据库的jdbc类

    private final String url = "jdbc:jtds:sqlserver://192.168.100.91:1433/itzcgl"; private final String userName = "itzcgly"; private final String password = "itadmin#"; private Connection con = null;...

    jsp 留言板

    private static String dbUrl="jdbc:jtds:sqlserver://localhost:1433;DatabaseName=ShopSystem"; private static String dbUser="sa"; private static String dbPwd="sa"; //打开数据库连接 public static ...

    Javabean封装数据库

    public Connection getConnection() throws SQLException,InstantiationException,IllegalAccessException,ClassNotFoundException{ Connection conn = null; //加载数据库驱动 Class.forName(...

    jsp 用内置对象编写的留言板

    String url="jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=test";//建立连接字符串 Connection conn=DriverManager.getConnection(url,"sa","123");//建立连接 if(conn!=null) out.print(...

    java界面程序代码

    ConnectServer1.conn("jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=xsgl","sa","")){ JOptionPane.showMessageDialog(null, "连接数据库失败"); System.exit(0);//关闭数据库 } new ...

    网上图书管理系统-数据库课程设计.doc

    //存放连接错误信息的变量 //数据库连接url String url = jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=DB_OBSS"; //JDBC数据源路径 //数据库连接对象 public static Connection dbConn; //初始化成员...

Global site tag (gtag.js) - Google Analytics