一:mybatis概念
1:简介
       MyBatis本是apache的一个开源项目iBatis,2010年改名为 MyBatis,
       MyBatis 是一个基于Java的持久层框架。(操作数据库)
2:优点
       1:半自动化的ORM实现(实体类和SQL语句之间建立映射关系)
       2:SQL代码从程序代码中彻底分离,可重用
       3:与JDBC相比,减少了50%以上的代码量
       4:小巧灵活、简单易学,是最简单的持久化框架
       5:提供XML标签,支持编写动态SQL
       6:提供映射标签,支持对象与数据库的ORM字段映射
3:MyBatis缺点
     1:SQL语句编写工作量大,对开发人员有一定sql技术要求
     2:数据库移植性差(不同数据库,sql语句语法有所不同)

*******************************************mybatis环境搭建开始******************************************

1:导入mybatis的jar包
    mybatis-3.2.2.jar
    mysql-connector-java-5.1.25-bin.jar

2:创建mybatis的核心配置文件(mybatis-config.xml)
   <configuration>
 <environments default="development">
  <environment id="development">
   <transactionManager type="JDBC" />
   <dataSource type="POOLED">
    <property name="driver" value="com.mysql.jdbc.Driver" />   驱动
    <property name="url" value="jdbc:mysql://localhost:3306/y2t189?useUnicode=true&amp;characterEncoding=utf-8" />  数据库的url
    <property name="username" value="root" />   用户名
    <property name="password" value="zhangjiugui" />  密码
   </dataSource>
  </environment>
 </environments>
        <!--
           dao层的mapper映射文件(xml)
        -->
 <mappers>
  <mapper resource="com/accp/y2t189/dao/UserMapper.xml" />
 </mappers>
  </configuration>

3: 实体类

4:数据访问的接口(dao)

public List<User> findUsers();

5:接口与sql语句的映射  UserMapper.xml

命名空间必须是响应接口的全路径
   <mapper namespace="com.accp.y2t189.dao.UserMapper">
 
         id必须和接口中的方法名一致
         resultType返回值类型(返回集合的话,指定集合元素的类型)
 <select id="findUsers" resultType="com.accp.y2t189.entity.User">
  SELECT * FROM users
 </select>

</mapper>

*******************************************************************写好的粘贴可用*************************************************************************

6:mybatis的工具类

获得SqlSession
        ①:读取配置文件,创建session工厂
        ②:在session工厂里,获得session会话
    关闭session
        判断session实例是否创建,不为null,就关闭session

/**
      * mybatis的工具类
      * 获得session
      */
     public class MybatisUtil {
 
  public static SqlSessionFactory sf;  //session工厂
 
  //获得session工厂
         static { 
          try { 
          Reader  is= Resources.getResourceAsReader("mybatis-config.xml"); 
          sf= new SqlSessionFactoryBuilder().build(is);
         } catch (Exception e) { 
             e.printStackTrace(); 
         } 
  } 
   
  //获得session
         public static SqlSession getSession(){
           return sf.openSession();
         }
   
         //关闭session
         public static void  closeSession(SqlSession session){
      if(session !=null){
       session.close();
      }
      } 
     }

7: 数据操作
       //获得session
       session=MybatisUtil.getSession();
       //获得接口实例
       List<User> listUser=session.getMapper(UserMapper.class).findUsers();
       //关闭session

*******************************************mybatis环境搭建结束******************************************
*******************************************增删改开始***************************************************

/**
  * 查询所有数据
  * @return
  */
 public List<User> findAll();
******************
        <select id="findAll" resultType="entity.User">
  SELECT * FROM users
 </select>

**************************************************

/**
  * 根据编号查询对象
  * @param 用户表的主键
  * @return  一个对象user
  */
 public  User findById(Integer userId);
******************
        <select id="findById" parameterType="Integer" resultType="entity.User">
     select * from users where  id=#{userId}
 </select>

**************************************************

/**
  * 增加用户信息
  * @param 一个对象数据
  * @return  数据库的影响行数
  */
 public Integer add(User user);
******************
        <insert id="add"  parameterType="entity.User">
       INSERT INTO users VALUES(NULL,#{userName},#{password},#{realName})
 </insert>

**************************************************

/**
  * 根据编号删除对象
  * @param  用户表的主键
  * @return 数据库的影响行数
  */
 public Integer delete(Integer id);
******************
        <delete id="delete" parameterType="Integer">
       delete from users where id=#{id}
 </delete>

**************************************************

/**
  * 修改用户信息
  * @param 一个对象数据
  * @return  数据库的影响行数
  */
 public Integer update(User user);
******************
        <!-- 根据属性的主键修改其他的属性值-->
        <update id="update" parameterType="entity.User">
             update users set userName=#{userName} ,password=#{password},realName=#{realName}
             where id=#{id}
        </update>

**************************************************

/**
  * 连表查询用户信息
         * 在从表的实体类中添加级联查询主表中的属性
         * SELECT u.*,rolename  在用户表中添加角色表的属性-角色名称
  */
  public List<User> findUserAndRole();
******************
         <select id="findUserAndRole" resultType="entity.User">
  SELECT u.*,rolename FROM users u INNER JOIN role  r
                ON u.`roleid`=r.`roleid`
  </select>
**************************************************
   
    模糊查询

//根据角色名称,模糊查询角色列表
    public List<Role>  findRoleByRoleName(String rolename);
  
    <!--
 <select id="findRoleByRoleName" resultMap="roleMapping">
  SELECT * FROM role
  where  roleName  like  concat('%',#{rolename},'%')
 </select>
    -->
    <select id="findRoleByRoleName" resultMap="roleMapping">
  SELECT * FROM role
  where  roleName  like  "%"#{rolename}"%"
    </select>
*******************************************增删改查结束***************************************************

如何搭建环境---初识mybatis的更多相关文章

  1. 【One Day菜鸟到大鸟】MyBatis搭建环境

    一.概述     MyBatis是一个持久化框架和Hiberante差不多.比起JDBC来说MyBatis封装了JDBC让我们能够面向对象开发.比起Hiberante来说卸下了Hiberante那种重 ...

  2. 初识Mybatis之工程搭建

    简介:MyBatis 是一款优秀的持久层框架,它支持定制化 SQL.存储过程以及高级映射.MyBatis 避免了几乎所有的 JDBC 代码和手动设置参数以及获取结果集.MyBatis 可以使用简单的 ...

  3. 初识mybatis(二)

    上篇博客我们介绍通过Java代码来创建mybatis的配置文件,港真,这种方式看起来有意思实际在开发中用的并不多,mybatis的配置还是以xml配置为主,本文我们就来看看如何通过xml文件来配置my ...

  4. MyBatis学习01(初识MyBatis和CRUD操作实现)

    1.初识MyBatis 环境说明: jdk 8 + MySQL 5.7.19 maven-3.6.1 IDEA 学习前需要掌握: JDBC MySQL Java 基础 Maven Junit 什么是M ...

  5. 搭建Spring + SpringMVC + Mybatis框架之二(整合Spring和Mybatis)

    整合Spring和Mybatis 首先给出完整的项目目录: (1)引入项目需要的jar包 使用http://maven.apache.org作为中央仓库即可. Spring核心包,mybatis核心包 ...

  6. mybatis入门--初识mybatis

    初识mybatis 今天,一起来说说mybits这个框架吧.这是一个持久层的框架.之前叫做ibatis.所以,在它的代码中出现ibatis这个词的时候,不要感到惊讶.不是写错了,它确实就是这个样子的. ...

  7. MyBatis For .NET学习- 初识MyBatis

    MyBatis的框架. Introduction MyBatis本是apache的一个开源项目iBatis,2010年这个项目由 apache software foundation迁移到了googl ...

  8. ssm整合:搭建环境

    解决配置中文过滤器后,存入数据库时依旧乱码问题:在web.xml中修改数据库url如下: <property name="jdbcUrl" value="jdbc: ...

  9. 手把手Maven搭建SpringMVC+Spring+MyBatis框架(超级详细版)

    手把手Maven搭建SpringMVC+Spring+MyBatis框架(超级详细版) SSM(Spring+SpringMVC+Mybatis),目前较为主流的企业级架构方案.标准的MVC设计模式, ...

随机推荐

  1. RDBMS与数据库之间的关系

    什么是数据库? 数据库就是用来存放数据的仓库,它是一种特殊的文件. 什么是关系型数据库? 关系型数据库就是指建立在关系模型基础上的数据库,通常由多张表组成,这些表之间存在一定的关系. 什么是RDBMS ...

  2. Coder必须自废的两样神功

    Coder必须自废的两样神功 大理段氏以一阳指神功驰名天下.奉六脉宝经,立天龙佛院:凭借数百载基业威名,与嵩山少林.终南全真分庭抗礼:乃宋代中华武术三大派系之一. 二指禅是一种鲜为人知的秘传功法,通过 ...

  3. Nginx+Lua+MySQL/Redis实现高性能动态网页展现

    Nginx结合Lua脚本,直接绕过Tomcat应用服务器,连接MySQL/Redis直接获取数据,再结合Lua中Template组件,直接写入动态数据,渲染成页面,响应前端,一次请求响应过程结束.最终 ...

  4. 乘法口诀表(C语言实现)

    输出乘法口诀表,关键在于利用好循环语句,而且是二层循环.

  5. React躬行记(3)——组件

    组件(Component)由若干个React元素组成,包含属性.状态和生命周期等部分,满足独立.可复用.高内聚和低耦合等设计原则,每个React应用程序都是由一个个的组件搭建而成,即组成React应用 ...

  6. Excel催化剂开源第25波-Excel调用百度AI,返回AI结果

    现成的这些轮子,无需调用网页,直接本地离线即可生成). 当然在AI时代,少不了各种AI接口的使用场景,普通开发者只需聚焦在自己的业务场景上,这些AI底层技术,只需类似水煤电一般去BAT这些大厂那里去消 ...

  7. Git储藏和引用日志

    在日常工作中,当要经常停下手头的工作区修复临时的BUG,紧急处理来自同事或者经理的请求,但是又不能将手头的工作进行提交的时候.那么Git储藏功能(stash)就起到作用了. 储藏可以捕获我们的工作区状 ...

  8. Java中常见的异常类型

    一. Java中常见的异常类 异常类 说明 ClassCastException 类型准换异常 ClassNotFoundException 未找到相应类异常 ArithmeticException ...

  9. ASP.NET Core 中的管道机制

    首先,很感谢在上篇文章 C# 管道式编程 中给我有小额捐助和点赞的朋友们,感谢你们的支持与肯定.希望我的每一次分享都能让彼此获得一些收获,当然如果我有些地方叙述的不正确或不当,还请不客气的指出.好了, ...

  10. JS+Jquery自定义格式导出HTML为Word(下列插件同样可以用于Excel导出)

    这里的word导出主要采用了jquery.wordexport.js.FileSaver.js,做功能之前我也是找了很多网上的资料,里面涉及到js导出word的用的都是这个插件,只是在自定义样式这一块 ...