首页 > 其他 > 详细

mybatis01

时间:2020-03-28 15:08:47      阅读:67      评论:0      收藏:0      [点我收藏+]

三层框架结构图:

技术分享图片

 

 Springmvc代替web层和前端进行交互 接受请求和返回响应

Mybatis代替dao层和数据库进行交接

spirng管理对象,以后的对象都不是new 而是跟spring要

Mybatis介绍

 

MyBatis 本是apache的一个开源项目iBatis, 2010年这个项目由apache software foundation 迁移到了google code,并且改名为MyBatis 201311月迁移到Github

 

  MyBatis是一个优秀的持久层框架,它对jdbc的操作数据库的过程进行封装,使开发者只需要关注 SQL 本身,而不需要花费精力去处理例如注册驱动、创建connection、创建statement、手动设置参数、结果集检索等jdbc繁杂的过程代码。

 

Mybatis通过xml或注解的方式将要执行的各种statementstatementpreparedStatemntCallableStatement)配置起来,并通过java对象和statement中的sql进行映射生成最终执行的sql语句,最后由mybatis框架执行sql并将结果映射成java对象并返回。

 

 jdbc问题总结如下:

 

1、 数据库接创建、释放频繁造成系统资源浪费从而影响系统性能如果使用数据库接池可解决此问题。

 

2、 Sql语句在代码中硬编码,造成代码不易维护,实际应用sql变化的可能较大,sql变动需要改变java代码。

 

3、 使用preparedStatement向占位符号传参数存在硬编码,因为sql语句的where条件不一定,可能多也可能少,修改sql还要修改代码,系统不易维护。

 

4、 对结果集解析存在硬编码(查询列名),sql变化导致解析代码变化,系统不易维护,如果能将数据库记录封装成pojo对象解析比较方便。

 

 

 Mybatis架构

 

 

技术分享图片

 

 

mybatis下载

 

 老师在3.28日在群里发的

技术分享图片

 

 下载下来

解压后:

技术分享图片

 

我们要把mybatis-3.2.7.jar和

lib里面的所有

 技术分享图片

 

 都复制eclipe里

技术分享图片

 

 然后吧所有的都Build path

技术分享图片

 

 

 加入配置文件

现在你的项目创建一个Source Folder(可以不写路径,直接在跟路径下)资源文件夹叫config

技术分享图片

 

 然后在config里新建文件file叫

log4j.properties

然后吧

# Global logging configuration
log4j.rootLogger=DEBUG, stdout
# Console output...
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%5p [%t] - %m%n

复制到log4j.properties里面去

技术分享图片

 

 配置完事后

我们需要在config下面创建一个 SqlMapConfig.xml

技术分享图片

 

 然后吧这些都粘贴到xml文件里去

<!DOCTYPE configuration
PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration>
    <!-- 和spring整合后 environments配置将废除 -->
    <environments default="development">
        <environment id="development">
            <!-- 使用jdbc事务管理 -->
            <transactionManager type="JDBC" />
            <!-- 数据库连接池 -->
            <dataSource type="POOLED">
                <property name="driver" value="com.mysql.jdbc.Driver" />
                <property name="url"
                    value="jdbc:mysql://localhost:3306/mybatis?characterEncoding=utf-8" />
                <property name="username" value="root" />
                <property name="password" value="root" />
            </dataSource>
        </environment>
    </environments>
</configuration>

然后吧密码改成你数据库的密码(这里我的是123456)

 创建pojo

 

 

然后在创建实体类对象pojo

 

    private int id;
    private String username;// 用户姓名
    private String sex;// 性别
    private Date birthday;// 生日
    private String address;// 地址

 

然后gat,set,toString都点出来

上面的date改成Sting

这里的pojo就是之前的我们的domin 专门写封装类 实体类对象的地方。

sql映射文件

新建一个包叫mapper包(就是之前的dao层专门写sql的地方)

然后其下创建一个xml文件叫Usersql就和之前的(Userdao一样)

技术分享图片

 

 

 

然后把约束都粘过去

<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">

技术分享图片

 

 然后ait+/点出来mapper

技术分享图片

 

 必须加namespace这样好调用和区分

第七步:加载映射文件

我们不可能只创建一个mapper(不可能只创建一个dao),所以我们要让 mapper和config之间建立关系

在config.xml下面写mappers。 resource里写路径(完整的包名加文件名)

技术分享图片

 

 技术分享图片

 

 开始写sql语句

实现根据id查询用户

 

我们要在UserMapper里写sql语句

技术分享图片

 

 id:是方法名 类似于dao层的方法名

parameterType:是参数 类型

resultType:返回值类型。因为这里是select * 所以返回的肯定是个对象 如果是自定义对象的话就要完整的包名加类名。如果不是自定义的话 就直接写就可以了

#{}:就是占位符的意思,就和之前dao里面的?是一样的

mybatis01

原文:https://www.cnblogs.com/www1842564021/p/12587315.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!