Mybatis_day01基本配置使用

1.所需依赖

<dependency>
<!--测试jar-->
      <groupId>junit</groupId>
      <artifactId>junit</artifactId>
      <version>4.12 </version>
      <scope>test</scope>
    </dependency>
<!--mybatisjar-->
    <dependency>
      <groupId>org.mybatis</groupId>
      <artifactId>mybatis</artifactId>
      <version>3.4.5</version>
    </dependency>
<!--mysql jar-->
    <dependency>
      <groupId>mysql</groupId>
      <artifactId>mysql-connector-java</artifactId>
      <version>5.1.6</version>
    </dependency>

2.编写持久层接口

package cn.msg.mapper;
import cn.msg.bean.User;
import java.util.List;

public interface IUser {
    //查询所有
    List<User> findAll();
    //保存
    void save(User user);
    //更新
    void update(User user);
    //删除
    void delete(int id);
}

3.配置主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>
    <!--该文件用于配置 访问数据库的操作
        default属性用来设置默认数据库连接池
        该文件中可以含有多个连接池配置和事务配置(environment)
    -->
    <environments default="pooled">
        <!--配置连接池和事务-->
        <environment id="pooled">
            <!--配置事务-->
            <transactionManager type="JDBC"></transactionManager>
            <!--配置连接池-->
            <dataSource type="POOLED">
                <property name="driver" value="com.mysql.jdbc.Driver"/>
                <property name="url" value="jdbc:mysql:///mybatis01?characterEncoding=UTF-8"/>
                <property name="username" value="root"/>
                <property name="password" value="123456"/>
            </dataSource>
        </environment>
    </environments>
    <!--引用配置文件
        class属性用于配置注解类
        resource用于mapper xml文件
    -->
<mappers>
    <!--xml配置
    <mapper resource="mappers/UserMapper.xml" ></mapper>
    -->
    <!--注解文件配置-->
    <mapper class="cn.msg.mapper.IUserMapper"></mapper>
</mappers>
</configuration>

4.配置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">
<!--该文件主要用于为接口配置sql语句和相应的返回值类型-->
<!--
<mapper>标签
namespaces属性:命名空间 用来指定接口,然后使用<select> <update> 
				<insert> <delete>等标签为接口中的方法配置sql语句 返回值 参数
-->
<mapper namespace="cn.msg.mapper.IUserMapper">
    <!--
    <select>标签
    用来为父标签<mapper>所指定接口中的方法绑定sql 返回值  参数
    id属性:指定要绑定的方法此方法名必须与<mapper>标签所指定接口中的方法名相同
    resultType属性:指定返回值类型 比如返回值是List<User>直接指定USer即可
    parameterType属性:指定方法所需参数类型
    -->
    <select id="findAll" resultType="cn.msg.bean.User" >
        select * from user
    </select>
    <update id="save" parameterType="cn.msg.bean.User">
    <!--注意:#{name} 中的name是"cn.msg.bean.User"的属性要互相对应-->
        insert into user values (null ,#{name},#{money})
    </update>
</mapper>

5.测试

package cn.msg.test;


import cn.msg.bean.User;
import cn.msg.mapper.IUser;
import org.apache.ibatis.io.Resources;
import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;
import org.apache.ibatis.session.SqlSessionFactoryBuilder;
import org.junit.After;
import org.junit.Before;
import org.junit.Test;

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

public class Demo {
    private SqlSession session;
    @Before
    public void befor(){
        try {
        	//读取配置文件
            InputStream is = Resources.getResourceAsStream("mybatis.xml");
            //创建工厂
            SqlSessionFactoryBuilder builder = new SqlSessionFactoryBuilder();
            SqlSessionFactory factory = builder.build(is);
            //使用工厂生产SqlSession对象
            session = factory.openSession();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
    @After
    public void after(){
        session.commit();
        session.close();
    }

    /**
     * 获取所有
     */
    @Test
    public void testFindAll(){
    	//通过SqlSession获取接口的代理对象
        IUser user = session.getMapper(IUser.class);
        List<User> list = user.findAll();
        System.out.println(list);
    }
    }
发布了59 篇原创文章 · 获赞 70 · 访问量 3046

猜你喜欢

转载自blog.csdn.net/qq_44784185/article/details/104374157
今日推荐