Tag: mybatis

如何在带有注释的mysql中使用mybatis返回插入内容上的id

请参阅 Postgres的相关问题 。 出于某种原因,该解决方案对我不起作用 – insert语句的返回值始终为“1”。 有关基于XML的解决方案,请参阅此其他问题。 我想在没有XML的情况下做同样的事情 – 插入一条记录并找到我刚刚插入的记录的新自动生成的id。 我没有找到与匹配的注释(请参阅此公开问题 )如何继续? 检查mybatis代码表明INSERT是通过UPDATE实现的,并且总是返回插入的行数! 所以…除非我在这里完全遗漏了一些东西,否则使用当前的(3.0.3)实现无法做到这一点。

SELECT LAST_INSERT_ID()

有人可以解释MySQL函数LAST_INSERT_ID()的工作原理。 我想在数据库中获取最后一行插入的id,但每次都得到1。 我用mybatis。 示例查询是: INSERT INTO something (something) VALUES (#{something}) SELECT LAST_INSERT_ID() 码: System.out.println(“Id : ” + id) 输出: Id : 1

MyBatis,如何获取插入的自动生成密钥?

如何使用MyBatis获取插入的生成密钥? 我读了很多关于这个问题的网页,但我仍然被封锁了,有人可以帮帮我吗? 这是我的代码: 桌子: ID_ERROR long primary key DATE timestamp TYPE varchar MESSAGE varchar SOURCE varchar 道: Long returnedId = 0L; MyMapper myMapper = this.sqlSession.getMapper(MyMapper.class); myMapper.insertRecord(returnedId, Utils.now(), t.getClass().getName(), t.getMessage(), c.getName()); return returnedId; mapper.java: public void insertRecord(@Param(“returnedId”) Long returnedId, @Param(“timestamp”)Timestamp timestamp,@Param(“type”) String type,@Param(“message”) String message,@Param(“source”) String source); mapper.xml INSERT INTO errors ( DATE, TYPE, MESSAGE, SOURCE […]

MyBatis / iBatis – 在单独的SQL Map文件中可重用的sql片段?

我想将几个SQL Map XML文件使用的sql片段放在一个单独的文件中。 目前,带有这些片段的元素与其他元素(如一起位于其中一个映射器中,这使得它们很难找到。 我是否可以使用仅定义几个元素的映射器,而不是用于生成接口的实现? 这个映射器的正确名称空间是什么? 这是包含framents的SQL Map文件: WHERE date(`time`) BETWEEN #{startDate} AND #{endDate} … SELECT some_column, another_column FROM some_table 我想将这样的元素分开: 第一个Sql Map文件: WHERE date(`time`) BETWEEN #{startDate} AND #{endDate} … 第二个Sql Map文件: SELECT some_column, another_column FROM some_table

来自HashMap的MyBatis参数

在mapper界面中我有: ArrayList select(@Param(“filterId”)int filterId, @Param(“filterData”)HashMap filterData); 在mapper xml中我有: SELECT … FROM …. WHERE id=#{filterData[“id”]} 没有错误,但结果不符合预期(它返回空集,但我知道具有这样的id的项目存在)。 #{filterData [“id”]}似乎不起作用。 我的错误在哪里?

无法从mybatis执行的oracle过程中接收参数

我使用Spring 3.0.5开发java应用程序,并使用mybatis-spring使用数据库Oracle。 我有一个mybatis界面: public interface SubscriberMapper { Subscriber getSubscriberByMsisdn(String msisdn); void insertSubscriber(Subscriber subscriber); void updateSubscriber(Subscriber subscriber); void canCustomerSubscribe(@Param(“msisdn”) String msisdn, @Param(“responseCode”) Integer responseCode); } canCustomerSubscribe的mybatis xml内容: CALL wallet.pkg_wallet_validation.can_customer_subscribe(#{msisdn}, #{responseCode}) 和要执行的代码: public void subscribe(String msisdn) throws InvalidArgumentException { Integer responseCode = 0; subscriberMapper.canCustomerSubscribe(msisdn, responseCode); System.out.println(“msisdn: ” + msisdn + “, responseCode: ” + responseCode); } 当我用无效的“msisdn”执行“subscribe”方法时,我没有收到来自程序的实际值。 […]

如何使用MyBatis处理blob?

java.sql.Blob没有默认处理程序。 文档建议使用byte[]数组,但我有一个使用Blob的遗留类。 如何为Blob定义自定义处理程序?

如何使用MyBatis获取Oracle中的最后一个插入ID?

我正在将一些数据插入到Oracle表中,并且需要检索插入行的id 。 所述id由序列生成,然后通过触发器插入到表中。 现在,我知道在使用JDBC时有几种方法可以获取插入行的id,但由于我使用MyBatis来执行INSERT命令,我似乎无法弄清楚如何在插入数据后获取id 。 任何建议将不胜感激。

我可以使用MyBatis生成动态SQL而不执行它吗?

我有一些复杂的查询要使用许多可选的filter构建,MyBatis似乎是生成动态SQL的理想候选者。 但是,我仍然希望我的查询在与应用程序的其余部分(不使用MyBatis)相同的框架中执行。 所以我希望做的是严格使用MyBatis生成SQL,但是从那里使用我的应用程序的其余部分来实际执行它。 这可能吗? 如果是这样,怎么样?

Mybatis Spring多个数据库Java配置

我正在使用Spring和Mybatis并且我有两个数据库,第一个数据库的配置相对容易,但我无法使用Spring和事务处理第二个数据库,这里是我的代码 @Configuration @ComponentScan(basePackages = {“hernandez.service”, “hernandez.dao”}) @EnableTransactionManagement @MapperScan(basePackages=”hernandez.mapper” ) @Import(DbConfig2.class) public class AppConfig { @Bean(name = “dataSource”) public DataSource dataSource() { DriverManagerDataSource ds = new DriverManagerDataSource(“com.mysql.jdbc.Driver”, “jdbc:mysql://localhost:3306/northwind”, “root”, “”); return ds; } @Bean public SqlSessionFactoryBean sqlSessionFactory() { SqlSessionFactoryBean factoryBean = new SqlSessionFactoryBean(); factoryBean.setDataSource(dataSource()); return factoryBean; } @Bean(name = “transactionManager”) public PlatformTransactionManager transactionManager() { return new […]