标签: mybatis

返回的MyBatis SqlSession接口的insert(),delete(),select()和update()是什么?

从mybatis的API Doc我可以看到,插入,删除,选择和更新都有一个int作为返回类型.但是没有关于返回整数含义的文档.

这是否与操作的成功有关?

java database mybatis

2
推荐指数
1
解决办法
4251
查看次数

与MyBatis和Spring的请求范围的事务

有没有办法使用SpringMVC设置MyBatis以获得整个http请求的一个事务?通常OpenSessionInViewFilter在MyBatis中有类似Hibernate的东西,还是应该编写自己的过滤器来实现这种行为?

java spring mybatis

2
推荐指数
1
解决办法
1495
查看次数

使用MyBatis无法在Java中捕获SQLSyntaxErrorException

我目前面临以下问题:

我编写了一个Java程序来解析XML数据并将数据放入数据库中.因为我使用MyBatis,所以数据库几乎可以是已经存在的每个数据库.我只会告诉你一段代码然后我会解释这个问题.

public void insert(SourceContent content){    
    SqlSession session = sqlSessionFactory.openSession();           
        try {
            session.insert("SourceDocument.insert", content);
            session.commit();
        }   catch (Exception e){
            e.printStackTrace();
        } finally {
            session.close();
        }           
    }
Run Code Online (Sandbox Code Playgroud)

这是我的DAO类,用于调用MyBatis映射文件的sql语句.如果MyBatis的映射配置正确完成,则插入我的内容(这是一个java bean的实例)会很糟糕.但是想象一下,如果我在数据库中重命名一个表,那么连接就会失败,因为配置错误.现在我想赶上即将发生的错误.当我使用上面的语句时:

catch (Exception e){
            e.printStackTrace();
        } 
Run Code Online (Sandbox Code Playgroud)

programm打印正确的异常:###原因:java.sql.SQLSyntaxErrorException:ORA-00942:Tabelle oder查看nicht vorhanden但是我不想捕获所有异常,我只是想捕获SQLSyntaxErrorException,因为我想告诉它用户,他在数据库中的表不可用.但是除了上面看到的正常异常之外,我无法捕获任何其他异常.我希望我能清楚地说出来.有人可以帮我吗?

java exception-handling exception try-catch mybatis

2
推荐指数
1
解决办法
9002
查看次数

打开新的数据库连接还是在过程完成之前保持连接打开状态好吗?

我有2个数据库oldnewold需要对db详细信息进行过滤/处理并存储到中new

OLD DB

  1. 我大约有10000种配置(数据库行)

  2. 和上面匹配的10000个BLOBS(xml文件大小平均为4MB)

NEW DB

  1. 1个新表将包含来自旧过滤器的数据,但是这次没有BLOB数据,而是绝对路径

  2. 并根据配置提出一些建议

在这里,我编写了一个程序(使用Groovy&MyBatis for DB),该程序获取所有可用的配置记录OLD DB并将其存储在类列表中,并且数据库连接已关闭

为了也为每个配置ID提取BLOBS,建立了一个新的连接并长时间保持打开状态

List<String> projectid
List<CSMConfigInfo> oldConfigs
List<ConfigInfo> newConfigs 
Map<String,CSMConfigInfo> oldConfigMap

SqlSession session = DatabaseConnectivity.getOldCSMDBSessionFactory().openSession()
/*  trying to batch execute based on project id */
    projectid.each {pid->
        logger.info "Initiating conversion for all configuration under $pid project id"
        oldConfigMap.each {k,v->
/*  Here I am keeping a DB connection open for a long time */           
            if(pid.equals(v)){                  
                createFromBlob(k,session)                   
            }
        }                       
        logger.info "Completed …
Run Code Online (Sandbox Code Playgroud)

java groovy mybatis

2
推荐指数
1
解决办法
1479
查看次数

在数据库中插入null

我已经List<SomeBean>使用select声明重新审阅了.现在,我正在努力insert.这个插入语句工作正常; 但是,我无法插入空值.该表没有任何NOT NULL约束.引发以下异常:

org.springframework.jdbc.UncategorizedSQLException: Error setting null for parameter #4 with JdbcType OTHER . Try setting a different JdbcType for this parameter or a different jdbcTypeForNull configuration property. Cause: java.sql.SQLException: Invalid column type

如何在mybatis中插入空值?

java oracle mybatis

2
推荐指数
2
解决办法
6642
查看次数

如何使用mybatis 3传递动态字段和值

我是Java和mybatis3的新手.在一个项目我使用mybatis3 ..

说我有名为"t"的数据库表.有几列.

在项目中,我将向mapper.xml发送一个hashmap(包含2个keyList的值,值).从那里它将获得2个数组包含列名称的键和列的值...

我想插入那个表...我认为我能够动态插入数据并部分更新一些列数据...更新...但是得到sql语法错误...

我现有的mapper.xml代码

<insert id="createNews" parameterType="map" useGeneratedKeys="true" keyColumn="id">
  INSERT INTO t
    <foreach item="key" collection="Key" index="index" open="(" separator="," close=")">
        #{key}
    </foreach>
    VALUES
    <foreach item="value" collection="Value" index="index" open="(" separator="," close=")">
        #{value}
    </foreach>
  ;
</insert>
Run Code Online (Sandbox Code Playgroud)

部分错误stackTrace ....

### Error updating database.  Cause:com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ''name'
     ) 
    VALUES
     (  
        'some value'
    ' at line 3
Run Code Online (Sandbox Code Playgroud)

但是,当我对列名进行硬编码时,它的工作正常...如何动态插入...

注意:我用Google搜索,但无法找到...我不想使用任何pojo或注释...在此先感谢...

java sql mybatis

2
推荐指数
1
解决办法
6048
查看次数

选择具有动态列名称,目标表以及i-batis中的动态where条件的查询

我想使用Select查询从表2检索记录,该查询具有动态返回的列名,表名以及表1返回的动态where条件。我正在使用sql server。这是以下情况-

<typeAlias alias="paramBean" type="com.loyalty.sys.bulkemail.dao.ParamBean" />

<resultMap id="paramBeanMap" class="paramBean">
        <result property="columnName" column="COLUMN_NAME" />
        <result property="tableName" column="TABLE_NAME" />
        <result property="uniqueKey" column="UNIQUE_KEY" />                     
</resultMap>

<select id="getKeywordData" parameterClass="String" resultMap="paramBeanMap">

    SELECT COLUMN_NAME, TABLE_NAME, UNIQUE_KEY from LT_TB_SMS_EMAIL_MESSAGE_KEYWORD where KEYWORD
    in #keywordName#

</select>

<select id="selectKeywordValue" parameterClass="paramBean" resultClass="String">

    SELECT #columnName# from #tableName# where #uniqueKey# in #memberNo#

</select>
Run Code Online (Sandbox Code Playgroud)

我可以从ParamBean属性中的第一个查询中获取值,但在第二个查询中的列名上抛出错误。我试图搜索类似的查询,但不幸的是找不到任何地方。在i-batis中是否可能,或者我应该采用另一种方法来检索具有动态输入的记录?任何帮助将不胜感激。谢谢。!

sql sql-server mybatis

2
推荐指数
1
解决办法
3506
查看次数

使用foreach与mybatis进行批量插入

我正在使用mybatis,我想将ArrayList插入到某个表中.
可以在mapper中使用foreach,这最终会得到oracle异常ORA_00933.
这是mybatis映射器:

<insert id="batchInsert" parameterType="java.util.List">
		insert into SYS_ROLES_PERMISSIONGROUP
		(role_id, permissiongroup_id)
		values
		<foreach collection="list" item="model" index="index" separator=","> 
        (#{model.role_id}, #{model.permissiongroup_id})
    	</foreach>
	</insert>
Run Code Online (Sandbox Code Playgroud)

org.springframework.jdbc.BadSqlGrammarException: 
### Error updating database.  Cause: java.sql.SQLSyntaxErrorException: ORA-00933: SQL ???????

### The error may involve com.gaotime.platform.system.mapper.RolePermissiongroupMapper.batchInsert-Inline
### The error occurred while setting parameters
### SQL: insert into SYS_ROLES_PERMISSIONGROUP   (role_id, permissiongroup_id)   values               (?, ?)      ,           (?, ?)      ,           (?, ?)
### Cause: java.sql.SQLSyntaxErrorException: ORA-00933: SQL ???????

; bad SQL grammar []; nested exception is java.sql.SQLSyntaxErrorException: ORA-00933: SQL ???????

	at org.springframework.jdbc.support.SQLExceptionSubclassTranslator.doTranslate(SQLExceptionSubclassTranslator.java:95) …
Run Code Online (Sandbox Code Playgroud)

java oracle mybatis

2
推荐指数
1
解决办法
9739
查看次数

如何在mybatis中的结果映射中返回具有空值的列

<select id="keyEquipmentShiftAutomatedModelData" parameterType="java.util.Map" resultType="java.util.Map">
SELECT  ID, SUM(VALUE1 + VALUE2) Total
FROM    tableName
GROUP   BY ID
    </select>

Returns below result in sql

ID, Total
1   (null)
Run Code Online (Sandbox Code Playgroud)

但是当在Map中返回结果时,myBatis返回{ID = 1},其中Total缺失.如何将带有null的列添加到结果集中以及类似这样的内容{ID = 1,Total = null}或类似这样的内容{ID = 1,Total =""}

java orm ibatis mybatis

2
推荐指数
1
解决办法
3656
查看次数

Mybatis:如何检查行是否存在并返回布尔值?

数据库是MySQL.代码应如下所示:

public interface UserMapper {
    @Select("....")
    boolean checkUserExists(@Param("email") String email);
}
Run Code Online (Sandbox Code Playgroud)

是否可能,以及如何编写SELECT SQL?(可以存在吗?)

mysql mybatis

2
推荐指数
1
解决办法
1万
查看次数