在使用mybatis根据ID自增长插入语句问题?
在mybatis核心配置文件中解决
MYSQL解决办法:
insert into dept(dname,loc) values (#{dname},#{loc});
Oracle解决办法:
SELECT seq_deptno.nextval FROM dual
insert into dept(deptno,dname,loc)
values (#{deptno},#{dname},#{loc})
---------------------
mybatis 更新数据表、自动增长序列、
一、更新数据表
1.在映射文件中添加:
update student set name=#{name},age=#{age} where id=#{id}
2.在测试文件中添加(先查询出修改的对象,然后在修改)
String statement="com.huayu.mapper.studentMapper"+".selectStudentById";
// String statement1="com.huayu.mapper.studentMapper"+".updateStudentById";
// Student st=sqlSession.selectOne (statement,6);
// st.setName("huahua");
// st.setAge(20);
// sqlSession.update(statement1, st);
二、添加数据时,针对id设主键,避免唯一约束,如何实现自动增长
1.第一种方式:
在oracle中.
a、添加序列表
b、在映射文件中找到insert元素输入以下内容,如:
select s_t_seq.nextval from dual
insert into student values(#{id},#{name},#{age})
在触发器中
2.第二种方式
在mysql中.
1.打开cmd输入mysql -u root
2.创建数据库名称:create database 名字;
3.use 名字
4.create table Student(
student_id int(6) not null primary key auto_increment,
student_name varchar(10) not null,
student_age int(2) not null
);
5.将映射文件insert修改为
insert 语句
6、将driver改成com.mysql.jdbc.Driver
将url改成jdbc:mysql://localhost:3306/mysql数据库名字
三、
1.mybatis嵌套结果(使用association进行关联)
首先,在映射文件中根据班级id查询班级的信息
使用resultMap引用对象的属性,注意id和上面的resultMap名称一致
<关联,一对一映射>
2.嵌套查询
通过多条select语句得到结果
先根据班级id查出班级信息
再根据resultMap去引用resultMap标签里的属性,它包括:
Classes类的属性
和Classes关联的teacher类的属性
四、一对多映射
五、动态sql;
1.先把要使用的条件写成java类的属性;
2.在映射文件中查询语句;
---------------------