Fork me on GitHub

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     }

 

核心接口和类的结构

 

posted @ 2017-10-10 17:01  L波涛  阅读(195)  评论(0编辑  收藏  举报