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     }

    核心接口和类的结构

  • 相关阅读:
    selenium python学习笔记---添加等待时间
    转 虫师的selenium借助AutoIt识别上传(下载)详解
    python webdriver API学习笔记
    python-assert
    selenium2.0关于python的常用函数
    pcurl 学习 http文件下载及写入空设备文件实例
    pl/sql sql窗口允许输出和允许变量替换
    Git .gitignore文件忽略
    允许远程访问MySQL的设置
    Map 遍历取值及jstl的取值
  • 原文地址:https://www.cnblogs.com/liutao1122/p/7521802.html
Copyright © 2011-2022 走看看