MyBatis (一)configuration.xml的配置/mapper持久类的映射/sqlSession的获取/基础的select,insert,delete,update

1.创建 configuration.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>
    <environments default="development">
        <environment id="development">
            <!-- mybatis 支持两种 事务管理类型
                    jdbc
                    managed
             -->
            <transactionManager type="jdbc"></transactionManager>
            <!-- mybatis 支持三种数据源类型 
                unPooled 不使用连接池的数据源
                 pooled   使用连接池的数据源
                  jndi   使用JNDI实现的数据源
                  dataSource type="POOLED"
             -->
            <dataSource type="POOLED">
                <!-- 配置jdbc 驱动 -->
                <property name="driver" value="oracle.jdbc.driver.OracleDriver" />
                <property name="url"
                    value="jdbc:oracle:thin:@:1521:orcl" />
                <property name="username" value="mybatis" />
                <property name="password" value="test" />
            </dataSource>
        </environment>
    </environments>
    <!-- 注册 mapper.xml -->
    <mappers>
        <mapper resource="com/mybatis/mapper/userinfomapper.xml"/>
    </mappers>

</configuration>

datasource 4 个属性名
datasource 三种事务管理

2.创建 entityClass 持久化类

package com.mybatis.entity;

public class UserInfo {
    private String name;
    private String password;
    private int id;
    public UserInfo(){

    }
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
    public String getPassword() {
        return password;
    }
    public void setPassword(String password) {
        this.password = password;
    }
    public int getId() {
        return id;
    }
    public void setId(int id) {
        this.id = id;
    }
    public String toString() {
        return "User [id=" + id + ", name=" + name + ", password=" + password + "]";
    }

}

3.创建 [entityClassName]mapper.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 属性
    取出 mybatis 指令 
    String statement = 命名空间+mapper的id
    例如:
        查询全部 userinfo 
        String statement = com.mybatis.mapper.userinfomapper.queryAllUser
        通过 id 查询 userinfo
        String statement = com.mybatis.mapper.userinfomapper.queryUserById  

-->
<mapper namespace="com.mybatis.mapper.userinfomapper">
    <!-- 通过id查询 userinfo -->
    <select id="queryUserById" parameterType="int" 
    resultType="com.mybatis.entity.UserInfo">
        select * from userInfo where id =#{id}
    </select>
    <!-- 查询所有 userinfo -->
    <select id="queryAllUser" resultType="com.mybatis.entity.UserInfo">
        select * from userInfo
    </select>
    <!-- 增加一个 userinfo -->
    <insert id="addUser" parameterType="com.mybatis.entity.UserInfo">
        insert into UserInfo (id,name,password) values(#{id},#{name},#{password})
    </insert>
    <!-- 修改一个userinfo  -->
    <update id="updateUser" parameterType="com.mybatis.entity.UserInfo" >
        update UserInfo set name=#{name}, password=#{password} where id=${id}
    </update>
    <!-- 删除所有userinfo  -->
    <delete id="deleteAllUser">
        truncate table UserInfo
    </delete>
    <!-- 删除指定 id 的 UserInfo -->
    <delete id="deleteUserById" parameterType="int">
         delete from UserInfo where id=#{id}
    </delete>


</mapper>

4.在configuration 注册 mapper.xml 映射文件

<!-- 注册 mapper.xml -->
    <mappers>
        <mapper resource="com/mybatis/mapper/userinfomapper.xml"/>
    </mappers>

5.基础操作

sqlSession的获取,事务的提交
select insert delete update 等操作

package com.mybatis.test;

import java.io.InputStream;
import java.util.List;


import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;
import org.apache.ibatis.session.SqlSessionFactoryBuilder;
import org.apache.log4j.Logger;
import org.junit.After;
import org.junit.Before;
import org.junit.Test;

import com.mybatis.entity.UserInfo;

public class TestMybatis {
    private static Logger rootLogger = Logger.getLogger(TestMybatis.class);
    private static SqlSession sqlSession;
    @Before
    public void init(){
        InputStream in = 
            TestMybatis.class.getClassLoader()
                .getSystemResourceAsStream("configuration.xml");
        SqlSessionFactory ssf =new SqlSessionFactoryBuilder().build(in);
        sqlSession = ssf.openSession(true);

    }
    @After
    public void destroy(){
        //提交事务
        sqlSession.commit();
        //关闭session
        sqlSession.close();
    }
    //通过 id 查询
    //返回 usserInfo 没有找到返回null
    public UserInfo queryUserById(int id){

        String statement = "com.mybatis.mapper.userinfomapper.queryUserById";
        UserInfo userInfo = (UserInfo) sqlSession.selectOne(statement, id);
        rootLogger.debug(userInfo);
        return userInfo;
    }
    //修改一个 usrInfo 
    //return 影响修改行数
    public int updateUser(UserInfo userInfo) {
        //查出数据表对应id 的 record
        UserInfo up = queryUserById(userInfo.getId());
        if(up!=null&&userInfo!=null){
            rootLogger.debug(sqlSession);
            String statement ="com.mybatis.mapper.userinfomapper.updateUser";
            int affect = sqlSession.update(statement, userInfo);


            return affect;
        }
        return 0;
    }


    //插入一个 userInfo
    public int addUser(UserInfo newUser) {
        String statement = "com.mybatis.mapper.userinfomapper.addUser";
        int affect = sqlSession.insert(statement, newUser);
        rootLogger.debug(affect);
        return affect;

    }
    //查询 所有 userinfo
    public List<UserInfo> queryAllUser() {
        String statement = "com.mybatis.mapper.userinfomapper.queryAllUser";
        List<UserInfo> userInfos=sqlSession.selectList(statement);
        rootLogger.debug(userInfos);
        return userInfos;
    }

    //删除 一个 userInfo
    public int deleteUserById(int id){
        String statement = "com.mybatis.mapper.userinfomapper.deleteUserById";
        int affect = sqlSession.delete(statement, id);
        return affect;
    }

    //删除所有
    public int deleteAllUser(){
        String statement = "com.mybatis.mapper.userinfomapper.deleteAllUser";
        int affect = sqlSession.delete(statement);
        return affect;
    }
    @Test
    public void test(){

        UserInfo userInfo= new UserInfo();
        userInfo.setId(1);
        userInfo.setName("mybatis");
        userInfo.setPassword("mybatis");


        //addUser(userInfo);
        //updateUser(userInfo);
        //deleteUserById(1);
        //queryAllUser();
        //queryUserById(id);
        //deleteAllUser();
    }
}
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值