zoukankan      html  css  js  c++  java
  • MyBatis基础

    框架简介  MyBatis
    半自动化的ORM实现
    DAO层
    动态SQL
    小巧灵活、简单易学

    持久化和ORM

    1.持久化是程序数据在瞬时状态和持久状态间转换的过程

    2.ORM(Object Relational Mapping)
    编写程序的时候,以面向对象的方式处理数据
    保存数据的时候,却以关系型数据库的方式存储
    ORM解决方案包含下面四个部分
    在持久化对象上执行基本的增、删、改、查操作
    对持久化对象提供一种查询语言或者API
    对象关系映射工具
    提供与事务对象交互、执行检查、延迟加载以及其他优化功能    

    MyBatis简介

    MyBatis前身是iBatis,本是Apache的一个开源的项目

    Maven简介

    1.maven是一个项目构建和管理的工具,提供了帮助管理构建、文档、报告、依赖、发布、分发的方法。可以方便的编译代码,进行依赖管理,管理二进制库等等。
     2.maven的好处在于可以将项目过程规范化、自动化、高效化以及强大的可扩展性。
     3.利用maven自身及其插件还可以获得代码检查报告、单元测试覆盖率。实现持续集成等等。

    Maven的构建模型:POM 文件

    Maven的核心思想都体现在POM文件中了,POM是Project Object Model的缩写,项目对象模型。一个项目的代码、测试代码(比如JUnit测试代码)、资源(比如模板文件和配置文件)、依赖的包等,都是一个项目构建中的关键信息。POM文件就是一个描述这些信息的XML文件,位于项目的根目录下。


    首先创建一个目录结构:


    搭建MyBatis开发环境

    1.依赖的添加;

    在pom.xml文件中进行依赖的添加:

    标签代码含义

    <groupId> 类似于项目所属的组织,所依赖的包也属于某一个组织
    <artifactId> 依赖包的名称
    <version> 依赖包的版本

    编写MyBatis配置文件(Mybatis-config.xml)

     1 <?xml version="1.0" encoding="UTF-8" ?>
     2 <!DOCTYPE configuration
     3  PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
     4  "http://mybatis.org/dtd/mybatis-3-config.dtd">
     5 <configuration>
     6  <environments default="development">
     7  <environment id="development">
     8  <transactionManager type="JDBC"/>
     9  <dataSource type="POOLED">
    10  <property name="driver" value="${driver}"/>
    11  <property name="url" value="${url}"/>
    12  <property name="username" value="${username}"/>
    13  <property name="password" value="${password}"/>
    14  </dataSource>
    15  </environment>
    16  </environments>
    17  <mappers>
    18  <mapper resource="org/mybatis/example/BlogMapper.xml"/>
    19  </mappers>
    20 </configuration>

    创建实体类和接口

    实体类(UserInfo)

     1 public class UserInfo {
     2     private Integer id;  //用户id
     3     private String name;  //用户姓名
     4     private String sex;   //用户性别
     5 
     6     public Integer getId() {
     7         return id;
     8     }
     9 
    10     public void setId(Integer id) {
    11         this.id = id;
    12     }
    13 
    14     public String getName() {
    15         return name;
    16     }
    17 
    18     public void setName(String name) {
    19         this.name = name;
    20     }
    21 
    22     public String getSex() {
    23         return sex;
    24     }
    25 
    26     public void setSex(String sex) {
    27         this.sex = sex;
    28     }
    29 }

    dao层接口(IUserInfoDao)

    public interface IUserInfoDao {
        /*查询全部用户*/
        public List<UserInfo> findall();
        /*增加用户*/
        public int adduser(UserInfo userInfo);
        /*修改用户*/
        public int edituser(UserInfo userInfo);
        /*删除用户*/
        public int deluser(UserInfo userInfo);
    }

    创建sql映射文件(IUserInfoDao.java)

     1 <?xml version="1.0" encoding="UTF-8" ?>
     2 <!DOCTYPE mapper
     3         PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
     4         "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
     5 <mapper namespace="cn.happy.dao.IUserInfoDao">
     6     <select id="findall" resultType="cn.happy.entity.UserInfo">
     7         select * from userinfo
     8     </select>
     9     <insert id="adduser">
    10         insert into userinfo(name,sex) values(#{name},#{sex})
    11     </insert>
    12     <update id="edituser">
    13          update userinfo set name=#{name},sex=#{sex} where id=#{id}
    14     </update>
    15     <delete id="deluser">
    16         DELETE from userinfo where id=#{id}
    17     </delete>
    18 </mapper>

    编写测试类进行测试:

     1 public class Test20170914 {
     2     /*查询用户*/
     3     @Test
     4     public void testall() throws IOException {
     5         String resouce="mybatis-config.xml";
     6         //1.1 将硬盘上一个xml文件变成一个输入流
     7         InputStream is= Resources.getResourceAsStream(resouce);
     8         //1.2 使用流对象作为参数创建一个会话工厂
     9         SqlSessionFactory factory = new SqlSessionFactoryBuilder().build(is);
    10         //1.3通过会话工厂创建会话对象  session就是程序员和数据库交互的入口
    11         SqlSession session=factory.openSession();
    12         //1.4 调度selectList方法执行sql,并且获取结果
    13         IUserInfoDao mapper=session.getMapper(IUserInfoDao.class);
    14         List<UserInfo> list=mapper.findall();
    15 
    16         for (UserInfo user: list){
    17             System.out.println(user.getName());
    18         }
    19         //关闭会话,释放资源,提高性能
    20         session.close();
    21     }

    核心接口和类的结构

  • 相关阅读:
    C. Shaass and Lights 解析(思維、組合)
    D. Binary String To Subsequences(队列)(贪心)
    CodeForces 1384B2. Koa and the Beach (Hard Version)(贪心)
    CodeForces 1384B1. Koa and the Beach (Easy Version)(搜索)
    CodeForces 1384C. String Transformation 1(贪心)(并查集)
    CodeForces 1384A. Common Prefixes
    POJ-2516 Minimum Cost(最小费用最大流)
    POJ3261-Milk Patterns(后缀数组)
    HDU-1300 Pearls(斜率DP)
    HDU-4528 小明系列故事-捉迷藏(BFS)
  • 原文地址:https://www.cnblogs.com/liutao1122/p/7521802.html
Copyright © 2011-2022 走看看