Mybatis01-配置文件及简单使用

一、需要的jar包


ant:用于编译java类,生成class文件,用于集中式项目
asm:java文件解析包。spring依赖于这个包
cglib:动态代理包,将xml与接口关联起来,不用去写实现类
commoons-logging:日志包,spring依赖于这个包
javassist:字节码解析助手,处理class文件
log4j:日志包
mybatis:mybatis核心包
mysql-connector:数据库驱动包
ognl:为了使用ognl表达式加载的包
slf4j:日志包

二、配置文件

2.1 全局配置

首先我们需要在src下新建一个xml文件,目的是为了配置mybatis。

在configuration中,标签们必须按照

  • configuration(配置)
    • properties(属性)
    • settings(设置)
    • typeAliases(类型别名)
    • typeHandlers(类型处理器)
    • objectFactory(对象工厂)
    • plugins(插件)
    • environments(环境配置)
    • environment(环境变量)
    • transactionManager(事务管理器)
    • dataSource(数据源)
    • databaseIdProvider(数据库厂商标识)
    • mappers(映射器)
      这个顺序
<?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>
		读取mysql的配置信息,比如user,password,driver,url等
        <properties resource="jdbc.properties"></properties>

		settings会改变 MyBatis 的运行时行为
        <settings>
        	对日志进行设置
            <setting name="logImpl" value="LOG4J"/>
        </settings>
	    别名
       <typeAliases>
             为这个包起别名,可以直接使用这个包下类的名字
            <package name="com.bjsxt.entity"></package>
            单独为某个类起别名
            <typeAlias alias="Author" type="domain.blog.Author"/>
  			<typeAlias alias="Blog" type="domain.blog.Blog"/>
       </typeAliases>

	   配置环境,可以存放多个数据库的配置,然后选择一种
       <environments default="mysql">
   			数据库的配置
           <environment id="mysql">
				事务管理器,它的取值:JDBC | managed,此时使用的是JDBC的事务管理方式
               <transactionManager type="JDBC"></transactionManager>
				
				数据源:type = POOLED | UNPOOLED | JNDI
               <dataSource type="POOLED">

                   <property name="driver" value="${m_driver}"></property>

                   <property name="url" value="${m_url}"></property>

                   <property name="username" value="${m_uname}"></property>

                   <property name="password" value="${m_pwd}"></property>

               </dataSource>
           </environment>
       </environments>

	映射
   <mappers>

        <!--<mapper resource="com/bjsxt/mapper/FlowerMapper1.xml"></mapper>

        <mapper resource="com/bjsxt/mapper/FlowerMapper2.xml"></mapper>

        <mapper resource="com/bjsxt/mapper/FlowerMapper3.xml"></mapper>

        <mapper resource="com/bjsxt/mapper/FlowerMapper.xml"></mapper>-->

        <!--首先会找mapper包下的所有的[接口],然后去找和接口的名字相同的XML进行扫描-->
        <package name="com.bjsxt.mapper"></package>


    </mappers>
    
    
</configuration>

2.2 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="com.bjsxt.mapper.FlowerMapper2">

    <!-- Flower  selectOne(int  id)-->
    <select id="selectOne" resultType="flower" parameterType="int">

          SELECT  *  from  flower   where   id=#{param1}

    </select>

    <!--Flower  selectOne(Flower  f)-->
    <select id="selectOne2" resultType="flower" parameterType="flower">

          SELECT  *  from   flower  where id =#{id}  and  name=#{name}

    </select>
    <!--Flower  selectOne(Map<>  map)-->

    <select id="selectOne3" resultType="flower" parameterType="map">

         select * from   flower  where  id  =#{a}  and  name=#{b}

    </select>

</mapper>

三、mybatis的简单执行

//[1]解析myBatis.xml文件
        InputStream inputStream = Resources.getResourceAsStream("mybatis.xml");

        //[2]获得sqlsession工厂
        SqlSessionFactory  factory=new SqlSessionFactoryBuilder().build(inputStream);

        //[3]获得session对象
        SqlSession sqlSession = factory.openSession();

        //[4]执行方法

        //参数传递一   单个参数
        //Flower   flower = sqlSession.selectOne("com.bjsxt.mapper.FlowerMapper2.selectOne", 1);

        //参数传递二 传入对象
        Flower  f=new Flower();
        f.setId(1);
        f.setName("玫瑰花");

        //Flower  flower= sqlSession.selectOne("com.bjsxt.mapper.FlowerMapper2.selectOne2",f);

        //参数传递三  Map集合
        Map<String,Object>  map=new HashMap<>();
        map.put("a",1);
        map.put("b","'玫瑰花'");
        Flower  flower = sqlSession.selectOne("com.bjsxt.mapper.FlowerMapper2.selectOne3", map);

        System.out.println(flower);

        //[5]关闭资源
        sqlSession.close();
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值