我的MySQL数据库中有两个表:
CREATE TABLE table1 (
id int auto_increment,
name varchar(10),
CONSTRAINT pk_id primary key(id)
)
CREATE TABLE table2 (
id_fk int,
stuff varchar(30),
CONSTRAINT fk_id FOREIGN KEY(id_fk) REFERENCES table1(id)
)
SimpleJdbcInsert insert1 = new SimpleJdbcInsert(this.getDataSource())
.withTableName("table1")
.usingColumns("name");
Map<String, Object> parameters1 = new HashMap<String, Object>();
parameters1.put("name", myObj1.getStuff());
insert.execute(parameters1);
SimpleJdbcInsert insert2 = new SimpleJdbcInsert(this.getDataSource())
.withTableName("table2")
.usingColumns("stuff");
Map<String, Object> parameters2 = new HashMap<String, Object>();
parameters2.put("stuff", myObj2.getStuff());
insert.execute(parameters2);
另外,如何获取给定名称的数据?
任何帮助都是非常感谢的!
请看这个简单的示例,类测试中的所有方法都是事务性的,更多信息请阅读Spring Framework文档
@Transactional
public class Test {
@Autowired
DataSource ds;
public void test1() throws Exception {
Map<String, Object> params = new HashMap<String, Object>();
params.put("c1", "test");
SimpleJdbcInsert insert = new SimpleJdbcInsert(ds).withTableName("t1").usingColumns("c1")
.usingGeneratedKeyColumns("id");
long id = insert.executeAndReturnKey(params).longValue();
params = new HashMap<String, Object>();
params.put("stuff", "stuff");
params.put("id_fk", id);
SimpleJdbcInsert insert2 = new SimpleJdbcInsert(ds).withTableName(
"table2").usingColumns("stuff", "id_fk");
insert2.execute(params);
NamedParameterJdbcTemplate tmpl = new NamedParameterJdbcTemplate(ds);
params = new HashMap<String, Object>();
params.put("id", id);
String c1 = tmpl.queryForObject("select c1 from t1 where id = :id", params, String.class);
}
语境
<context:annotation-config />
<tx:annotation-driven />
<bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
<property name="dataSource" ref="dataSource" />
</bean>
<bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close">
<property name="driverClassName" value="com.mysql.jdbc.Driver" />
<property name="url" value="jdbc:mysql://localhost:3306/test?user=root&password=root" />
</bean>
<bean class="Test" />
我做了2个表第二个表由外键组成,它引用了第一个表的主键第二个表由3个字段组成id(主键),顺序号,fid我使用以下命令 sql语法中的错误
我正在创建一个使用Apache Web服务器(PHPmyAdmin)的PHP网站 我有三张桌子: 品牌 brand_id(主键)自动增加 brand_name < li>item_id(主键)自动递增 < li >项目类别 model_id(主键)自动增加 item_model brand_id(brand.brand_id的外键) brand_name(item.item_id的外键) 数量 价
我有这样的查询(select id,reffid,someData from myTable): 我需要查询来执行以下操作:如果我有少于 4 个具有相同值的 reffid,则添加具有相同 reffid 的行并在 someData 中添加 -。结果查询应如下所示: 如何做到这一点?
问题内容: 我在阅读Hibernate HQL教程时发现HQL不支持,但是HQL仅支持从另一个表插入。 假设我要在一个表中插入相同的值,并且该数据不是来自任何其他表,即该值不在任何其他表中,那么我该如何在HQL中执行此操作? 另外,是否想知道HQL中此类限制的背后原因? 问题答案: 如果数据来自另一个表,则无需使用hql进行插入。 只需获取对您实体的引用,保留一个Hibernate会话,然后调用s
我试图用Hibernate保存一个表。父表与其子表具有一对多关系。父表POJO有其子表POJO的集合。 当我保存父表时,数据也被插入到它的子表中,但它的外键不为NULL。 下面是我的代码:家长: 儿童: Hibernate服务: 我找到了一个解决方案,将我的孩子反向映射到父母,如下所示 但我在想这是否可以避免。我希望还有其他方法,我不需要把我的每个孩子都映射到父母那里。 Kinldy帮助,如果你能
我正在尝试使用hector API将数据插入到cassandra数据库中。下面显示了我使用的代码。 但是在给定的keyspace下的/var/lib/cassandra/data文件夹中找不到任何插入的数据。数据插入似乎不能正常工作。代码有什么问题。下面显示了我用来创建'data'列族的命令。