1.添加用户

1.1映射文件

在User.xml文件中配置添加用户的Statement

 

1.2程序代码

Mybatis入门程序(三)-----------------------添加和删除用户-LMLPHP

 

1.3自增主键返回

Mysql自增主键,在执行insert提交之前自动生成一个自增主键

通过mysql函数获取到刚插入记录的自增主键:

LAST_INSERT_ID()

 是insert之后,需要修改insertUser定义

Mybatis入门程序(三)-----------------------添加和删除用户-LMLPHP

1.4非自增主键返回(使用uuid())

 

使用mysql的uuid()函数生成主键,需要修改表中id字段类型为String,长度设置为35位

 

执行思路:

先通过uuid()查询主键,将主键输入到sql语句中。

执行uuid()语句顺序相对于insert语句之前执行

 

通过Oracle序列生成主键

<selectKey keyProperty="id" order="BEFORE" resultType="java.lang.String">

      select 序列名.nextval()

      </selectKey>

       insert into userinfo(id,username,birthday,sex,address)value(#{id},#{username},#{birthday},#{sex},#{address}) -->

2.删除用户

   2.1映射文件

    <!--更新  -->

      <update id="updateUserById" parameterType="com.mybatis.model.User">

           update userinfo

           set

           username=#{username},sex=#{sex},birthday=#{birthday},address=#{address}

           where id=#{id}

      </update>

2.2更新用户

   <!--删除  -->

      <delete id="deleteUserById" parameterType="Integer">

      delete from userinfo where id=#{id}

      </delete>

3.Mybatis和Hibernate的不同

   Mybatis和hibernate不同,mybatis不完全是一个orm框架,因为mybatis需要自己写sql语句。Mybatis可以通过xml或者注解的方式配置要运行的java语句,将java对象和SQL语句映射生成最终要执行的sql,最后将SQL执行的结果再映射成对象。

   Mybatis学习门槛低,简单易学,程序员直接写原生态的sql;mybatis无法做到数据无关性

   Hibernate数据无关性好。

4.Mybatis解决Jdbc连接数据库的问题

1.数据库连接,使用时创建,不使用就立即释放,对数据可进行频繁连接和关闭,造成数据库资源浪费,影响数据库性能

解决方案:使用数据连接池管理数据库连接

解决:在SqlMapConfig.xml中配置数据连接池,使用数据连接池管理数据库连接

2.将sql语句硬编码到sql代码中,如果sql语句修改,需要重新编译java代码,不利于系统维护

解决方案:将sql语句配置在xml配置文件中,即sql变化,不需要对java代码重新编译

解决:将Sql语句配置在XXXmapper.xml文件中与java代码分离

3.向prparedStatement中设置参数,对占位符为止和设置参数值,硬编码在java代码中,不利于系统维护

 设想:将sql语句即占位符合参数全部配置在xml中

解决:Mybatis自动将java对象映射到sql语句,通过statement中的parameterType定义输入参数的类型

4.在resultSet中遍历结果姐数据是,存在硬编码,将获取的表的字段进行硬编码,不利于系统维护,设想,将查询的结果集自动映射成java对象

解决:Mybatis自动将sql执行结果映射至java对象,通过statement中的resultType定义输出结果的类型

10-06 13:39