Mybatis系列(一)概述

一.Mybatis概述

MyBatis 本是apache的一个开源项目iBatis, 2010年这个项目由apache software foundation 迁移到了google code,并且改名为MyBatis 。2013年11月迁移到Github。
iBATIS一词来源于“internet”和“abatis”的组合,是一个基于Java的持久层框架。iBATIS提供的持久层框架包括SQL Maps和Data Access Objects(DAOs)
MyBatis 是一款优秀的持久层框架,它支持定制化 SQL、存储过程以及高级映射。MyBatis 避免了几乎所有的 JDBC 代码和手动设置参数以及获取结果集。MyBatis 可以使用简单的 XML 或注解来配置和映射原生信息,将接口和 Java 的 POJOs(Plain Ordinary Java Object,普通的 Java对象)映射成数据库中的记录。
Mybatis系列(一)概述_第1张图片
Mybatis系列(一)概述_第2张图片
Mybatis系列(一)概述_第3张图片

二.Mybatis开发初体验

1.导包(1个核心包+12个依赖包+数据库驱动包)
2.主配置文件




<configuration>

<properties resource="db.properties"/>

<typeAliases>
 <typeAlias type="pojo.User" alias="User"/>
<package name="pojo"/>
typeAliases>

<environments default="development">
<environment id="development">

<transactionManager type="JDBC"/>

<dataSource type="POOLED">
<property name="driver" value="${jdbc.driverClass}"/>
<property name="url" value="${jdbc.jdbcUrl}"/>
<property name="username" value="${jdbc.user}"/>
<property name="password" value="${jdbc.Password}"/>
dataSource>
environment>
environments>

<mappers>
<mapper resource="pojo/User.xml" /> 
 
mappers>
configuration >

3.POJO类

public class User {
    private Integer id;
    private String username;
    private String password;
    @Override
    public String toString() {
        return "User [id=" + id + ", username=" + username + ", password=" + password + "]";
    }
    public Integer getId() {
        return id;
    }
    public void setId(Integer id) {
        this.id = id;
    }
    public String getUsername() {
        return username;
    }
    public void setUsername(String username) {
        this.username = username;
    }
    public String getPassword() {
        return password;
    }
    public void setPassword(String password) {
        this.password = password;
    }
}

4.映射文件




<mapper namespace="user">


<select id="findUserById" parameterType="Integer" resultType="pojo.User">
select * from user where id = ${value}
select>

<select id="findUserByUsername" parameterType="String"  resultType="pojo.User">
select * from user where username like "%"#{v}"%"
select>

<insert id="insertUser" parameterType="pojo.User">
<selectKey  keyProperty="id" resultType="Integer" order="AFTER">
select last_insert_id()
selectKey>
insert into user (username,password)  values(#{username},#{password})
insert>

<update id="updateUserById"  parameterType="pojo.User">
update user set username=#{username},password=#{password} where id=#{id}
update>

<delete id="deleteUserById" parameterType="Integer">
delete from user where id=#{ok}
delete>

mapper>

5.测试代码

public class mybatis {
    @Test
    //mybatis入门演示
    public void fun() throws IOException{
        // 加载核心配置文件
        String resource = "mybatis.xml";
        InputStream in = Resources.getResourceAsStream(resource);
        // 创建SqlSessionFactory
        SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(in);
        // 创建SqlSession
        SqlSession sqlSession = sqlSessionFactory.openSession();
        //执行SQL语句
        //通过id查询
        User u1 = sqlSession.selectOne("user.findUserById", 1);
        System.out.println(u1);
        //通过username模糊查询
//      List u2 = sqlSession.selectList("user.findUserByUsername", "啊");
//      for(User u:u2){
//          System.out.println(u);
//      }
        //添加用户
//      User u=new User();
//      u.setUsername("啊道");
//      u.setPassword("eiwnefsdfsd");
//      sqlSession.insert("user.insertUser", u);
//      sqlSession.commit();
//      System.out.println(u.getId());
        //修改用户
//      User u=new User();
//      u.setId(1);
//      u.setUsername("sfaf54rfsf");
//      u.setPassword("549898498");
//      sqlSession.update("user.updateUserById", u);
//      sqlSession.commit();
        //删除用户
//      sqlSession.delete("user.deleteUserById", 6);
//      sqlSession.commit();    
    }
}

你可能感兴趣的:(JAVA-WEB)