单独mybatis得使用

Posted 冰叔博客

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了单独mybatis得使用相关的知识,希望对你有一定的参考价值。

         今天同学说要学习mybatis后来他写了个程序让我看看,我看了一下发现包引错了,他写的是单独的mybatis,引入的却是spring-mybatis,所以会报错。

 

 今天我记录一下单独mybatis的使用

(1)首先找jar包,你也可以使用maven,我是引入的jar包

     需要两个包1.mybatis   2驱动包,这个包根据自己使用的数据库去找。

   

 

(2)开始写代码

两个配置文件

UserMapper.xml

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
        "http://mybatis.org/dtd/mybatis-3-mapper.dtd">

<mapper namespace="com.xxx.demo.mapper.UserMapper">

    <!--根据id查询数据-->
    <select id="findUserById" parameterType="int" resultType="User">
        select * from t_user where id = #{id}
    </select>

    <!--查询所有数据-->
    <select id="findAllUser" resultType="User">
        SELECT * from t_user
    </select>

    <!--插入数据-->
    <insert id="addUser" parameterType="User" keyProperty="id" useGeneratedKeys="true">
        INSERT  INTO  t_user(username,password) values(#{username},#{password})
    </insert>

    <!--删除数据-->
    <delete id="deleteUserById" parameterType="int">
        DELETE  from t_user WHERE  id= #{id}
    </delete>

    <update id="updateUser" parameterType="User" useGeneratedKeys="true" keyProperty="id" >
        UPDATE t_user SET username=#{username},password=#{password}
        WHERE id=#{id}
    </update>
</mapper>

 

mybatis-config.xml

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
        "http://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration>
    <typeAliases>
        <typeAlias alias="User" type="com.xxx.demo.pojo.User" />
    </typeAliases>
    <environments default="development">
        <environment id="development">
            <transactionManager type="JDBC" />
            <dataSource type="POOLED">
                <property name="driver" value="org.postgresql.Driver" />
                <property name="url" value="jdbc:postgresql://127.0.0.1:5432/Solution" />
                <property name="username" value="postgres" />
                <property name="password" value="" />
            </dataSource>
        </environment>
    </environments>

    <mappers>
        <!-- // power by http://www.yiibai.com -->
        <mapper resource="com/xxx/demo/mapper/UserMapper.xml" />
    </mappers>
</configuration>

User.java

package com.xxx.demo.pojo;

public class User {
    private int id;
    private String username;
    private String password;

    public int getId() {
        return id;
    }

    public void setId(int 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;
    }

    @Override
    public String toString() {
        return "User{" +
                "id=" + id +
                ", username=\'" + username + \'\\\'\' +
                ", password=\'" + password + \'\\\'\' +
                \'}\';
    }
}

UserMapper.java

package com.xxx.demo.mapper;


import com.xxx.demo.pojo.User;

import java.util.List;

/**
 * Mapper接口
 */
public interface UserMapper {

   //根据id查询数据
   User findUserById(int id);

   //查询所有数据
   List<User> findAllUser();

   //添加User
   int addUser(User u);

   //根据id删除数据
   int deleteUserById(int id);

   //修改User
   int updateUser(User user);
}

GetSessionFactory.java

package com.xxx.demo.Test;

import org.apache.ibatis.io.Resources;
import org.apache.ibatis.session.SqlSessionFactory;
import org.apache.ibatis.session.SqlSessionFactoryBuilder;


import java.io.InputStream;

/**
 * 创建sqlSession
 */
public class GetSessionFactory {
    private static SqlSessionFactory sqlSessionFactory;
    private GetSessionFactory(){

    }

   synchronized public static SqlSessionFactory getSqlSessionFactory(){
        if(sqlSessionFactory==null){
            String resources="com/xxx/demo/resources/mybatis-config.xml";
            InputStream inputStream=null;
            try {
                inputStream= Resources.getResourceAsStream(resources);
            }catch (Exception e){
                e.printStackTrace();
            }
            sqlSessionFactory=new SqlSessionFactoryBuilder().build(inputStream);
        }
        return sqlSessionFactory;

    }
}

Test.java

package com.xxx.demo.Test;

import com.xxx.demo.mapper.UserMapper;
import com.xxx.demo.pojo.User;
import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;
import org.junit.Test;

import java.util.List;

public class TestDemo {

    public static void main(String[] args) {
        SqlSessionFactory sqlSessionFactory=GetSessionFactory.getSqlSessionFactory();
        SqlSession sqlSession = sqlSessionFactory.openSession();
        UserMapper mapper = sqlSession.getMapper(UserMapper.class);
        User u=mapper.findUserById(1);
        System.out.println(u);
        
    }

    /**
     * 查找所有
     */
    @Test
    public void  fun(){
        SqlSessionFactory sqlSessionFactory=GetSessionFactory.getSqlSessionFactory();
        SqlSession sqlSession = sqlSessionFactory.openSession();
        UserMapper mapper = sqlSession.getMapper(UserMapper.class);
        List<User> allUser = mapper.findAllUser();
        for (User u:allUser) {
            System.out.println(u);
        }
    }

    /**
     * 添加
     */
    @Test
    public void fun2(){
        User user=new User();
        user.setUsername("ywl");
        user.setPassword("ywl");
        System.out.println(user);
        SqlSessionFactory sqlSessionFactory=GetSessionFactory.getSqlSessionFactory();
        SqlSession sqlSession = sqlSessionFactory.openSession();
        UserMapper mapper = sqlSession.getMapper(UserMapper.class);
        int i = mapper.addUser(user);
        sqlSession.commit();
        System.out.println(user);
        System.out.println(i);
    }

    /**
     * 删除
     */
    @Test
    public  void fun3(){
      SqlSessionFactory sqlSessionFactory=GetSessionFactory.getSqlSessionFactory();
        SqlSession sqlSession = sqlSessionFactory.openSession();
        UserMapper mapper = sqlSession.getMapper(UserMapper.class);
        int i = mapper.deleteUserById(1);
        sqlSession.commit();
        System.out.println(i);

    }

    @Test
    public void fun4(){
        User u=new User();
        u.setId(7);
        u.setPassword("hsj18731362155");
        u.setUsername("胡少君");
        SqlSessionFactory sqlSessionFactory=GetSessionFactory.getSqlSessionFactory();
        SqlSession sqlSession = sqlSessionFactory.openSession();
        UserMapper mapper = sqlSession.getMapper(UserMapper.class);
        int i = mapper.updateUser(u);
        sqlSession.commit();
        System.out.println(i);
    }
}

 

     注意问题

    (1)数据库自增问题。

    (2)保存的时候事物提交问题。

    (3)导包问题,是单独的mybatis包,不是mybatis-spring包

    (4)有什么问题咨询我啊,qq 1058179540

以上是关于单独mybatis得使用的主要内容,如果未能解决你的问题,请参考以下文章

将多个输出中的hls属性设置为单独的片段代码

mybatis动态sql片段与分页,排序,传参的使用

一个活动或单独活动中的多个片段

markdown [mybatis参考]关于mybatis #mybatis的一些片段

MYBATIS05_ifwherechoosewhentrimsetforEach标签sql片段

mybatis 简单使用示例(单独使用):