mybatis笔记与回顾(一)

1.对原生态的jdbc中的问题总结

1.1环境

java环境:jdk1.7.0_72

eclipse:indigo

mysql:5.1

1.2创建mysql数据

导入下边的脚本:

sql_data.sql:记录表结构

sql_table.sql:记录测试数据,在实际企业开发中,最后提供一个额初始化数据脚本

1.3jdbc程序

使用jdbc查询mysql数据库中用户表的记录。

创建java工程,加入jar包:

数据库驱动包(mysql5.1):

mysql-connector-java-5.1.7-bin.jar (mysql驱动)

ojdbc14-10.2.0.1.0.jar(oracle驱动)

程序代码:


1.4问题总结

1.数据库连接,使用时就创建,不使用立即书房,对数据库进行频繁的开启和关闭,造成数据库资源的浪费,影响数据库性能。

设想:是数据库连接池管理数据库连接。

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

设想:将sql语句配置在.xml配置文件中,即使sql变化,不需要对java代码重新编译。

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

设想:将sql语句以及占位符好和参数全部配置在.xml中

4.resultSet中遍历结果集数据时,存在硬编码,将获取表的字段进行硬编码,不利于系统维护。

设想:将将查询的结果集,自动映射成java对象。

2.mybatis框架

2.1mybatis是什么?

mybatis是一个持久层的框架,是apache下的顶级项目。
mybatis托管到googlecode下,再后来托管到github下(http://github.com/mybatis/mybatis-3/release)。

mybatis让程序员将主要精力放在sql上,通过mybatis提供的映射方式,自由灵活生成(半自动化,大部份需要程序员编写sql),满足需要sql语句。
mybatis可以将向preparedStatement中的输入参数自动进行输入映射,将查询结果集灵活映射成java对象。(输出映射)

2.2mybatis框架



3.入门程序

3.1需求和环境

根据用户id查询用户信息
根据用户名称模糊查询用户信息
添加用户
删除用户
更新用户
java环境:jdk1.7.0_72
eclipse:indigo
mysql:5.1
mybatis运行环境(jar包):从http://github.com/mybatis/mybatis-3/releases下载,3.2.7版本
lib下依赖包:
mybatis-3.2.7.jar:核心包
mybatis-3.2.7.pdf:操作指南
加入mysql驱动包

3.2log4j.properties



3.3工程结构


3.4SqlMapConfig.xml

配置mybatis的运行环境,数据源,事务等

3.5根据用户id(主键)查询用户信息

3.5.1创建po类

public class User{
//属性名和数据库表的字段对应
private int id;
private String username;//用户姓名
private String sex;            //性别
private Date birthday;      //生日
private String address;    //地址
}

3.5.2映射文件

映射文件命名:
user.xml(原始ibatis命名),mapper代理开发映射文件名称叫做XXXMapper.xml,比如UserMapper.xml
在映射文件中配置sql语句:

3.5.3在SqlMapConfig.xml加载映射文件

在sqlMapConfig.xml文件中加载User.xml
<!--加载映射文件-->
<mappers>
<mapper resource="sqlmap/User.xml/>
< /mappers>

3.5.4程序编写


3.6根据用户名称模糊查询用户信息

3.6.1映射文件

使用User.xml,添加根据用户名称模糊查询用户信息的sql语句。


3.6.2程序代码



3.7添加用户

3.7.1映射文件

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


3.7.2程序代码


3.7.3自增主键返回

mysql自增主键,执行insert提交之前自动生成一个自增主键
通过mysql函数获取到刚插入记录的自增主键:
LAST_INSERT_ID()
是insert之后调用此函数
修改insertUser定义:


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

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

执行思路:

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

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



3.8删除用户

3.8.1映射文件


3.8.2代码:


3.9更新用户

3.9.1映射文件


3.9.2代码


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值