3.3.3 主键返回问题
需求:对于新增的记录,需要将主键返回到pojo中,就可以从pojo中获取新添加的记录id。
自增主键生成Uuid主键生成时机区别: 自增主键在insert语句执行后生成的。
Uuid主键在insert语句执行前生成的。
3.3.3.1 Mysql自增主键获取:
在insertUser的statement中添加selectKey
3.3.3.2 Uuid主键获取
Uuid主键在insert语句执行前生成的
如果使用uuid获取主键,定义selectkey
insert into user(id,username,birthday,sex,address,detail,score) values(#{id},#{username},#{birthday},#{sex},#{address},#{detail},#{score})
如果不用selectKey,也可以在调用SqlSession.insert()前,在输入参数设置id值(生成uuid,设置到user的id属性中。)。
3.3.3.3 Oracle主键返回
Oracle没有自增主键,使用oracle的序列(可以生成流水号,类似自增主键)生成主键。
通过序列获取流水号方法: Select 序列名.next.val from dual
insert into user(id,username,birthday,sex,address,detail,score) values(#{id},#{username},#{birthday},#{sex},#{address},#{detail},#{score})
3.4 用户删除
3.4.1 Mapper.xml映射文件
3.4.2 编写删除程序
3.5 用户更新
3.5.1 Mapper.xml映射文件
3.5.2 编写更新程序
3.6 小结
Mybatis开发:
第一步:编写SqlMapConfig.xml全局配置文件(重点配置mapper) 第二步:编写mapper.xml映射文件(重点)
定义statement(包括sql语句,输入和输出参数类型)
在SqlMapConfig.xml全局配置文件配置mapper.xml(此配置可以通过规则省略) 第三步:编写程序(重点) 获取SqlSessionFactory
通过SqlSessionFactory获取SqlSession
通过SqlSession操作数据库(调用上边定义的statement) 得到statement的输出映射java对象
4 Mybatis解决jdbc编程的问题
1、 数据库链接创建、释放频繁造成系统资源浪费从而影响系统性能,如果使用数据库链接池可解决此问题。
解决:在SqlMapConfig.xml中配置数据链接池,使用连接池管理数据库链接。
2、 Sql语句写在代码中造成代码不易维护,实际应用sql变化的可能较大,sql变动需要改变java代码。
解决:将Sql语句配置在XXXXmapper.xml文件中与java代码分离。
相关推荐: