Mybatis (一)

准备:
环境:java环境:jdk eclipse:indigo mysql
数据库脚本:table表结构。data测试数据,企业开发中有初始化数据的脚本。sex长度为1,data长度为0.
建立WorkingSet,New Java Project,选择工厂存放路径并在后面增加工程名,填写工程名,加入数据库驱

下载github/mybatis-3/release
mybatis.jar核心包

lib是依赖包:log4j、cglib(动态代理)

jar 包
asm-3.3.1.jar
cglib-2.2.2.jar
commons-logging-1.1.1.jar
ehcache-core-2.6.5.jar
javassist-3.17.1-GA.jar
log4j-1.2.17.jar
log4j-api-2.0-rc1.jar
log4j-core-2.0-rc1.jar
mybatis-3.2.7.jar
mybatis-ehcache-1.0.2.jar
mysql-connector-java-5.1.6-bin.jar
slf4j-api-1.7.5.jar
slf4j-log4j12-1.7.5.jar

创建Source Folder
Source Folder创建log4j.properties从pdf说明文档里拷贝代码,并改日志级别


log4j.properties:
# Global logging configuration
log4j.rootLogger=DEBUG, stdout
# MyBatis logging configuration...
log4j.logger.org.mybatis.example.BlogMapper=TRACE
# Console output...
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%5p [%t] - %m%n


Source Folder创建SqlMapConfig.xml(名称不固定,全局配置)
Source Folder创建sqlmap的文件夹
============================================================================
SqlMapConfig.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>  
    <!-- 属性:定义配置外在化 -->  
    <properties></properties>  
    <!-- 设置:定义mybatis的一些全局性设置 -->  
    <settings>  
       <!-- 具体的参数名和参数值 -->  
       <setting name="" value=""/>   
    </settings>  
    <!-- 类型名称:为一些类定义别名 -->  
    <typeAliases></typeAliases>  
    <!-- 类型处理器:定义Java类型与数据库中的数据类型之间的转换关系 -->  
    <typeHandlers></typeHandlers>  
    <!-- 对象工厂 -->  
    <objectFactory type=""></objectFactory>  
    <!-- 插件:mybatis的插件,插件可以修改mybatis的内部运行规则 -->  
    <plugins>  
       <plugin interceptor=""></plugin>  
    </plugins>  
    <!-- 环境:配置mybatis的环境 -->  
    <environments default="">  
       <!-- 环境变量:可以配置多个环境变量,比如使用多数据源时,就需要配置多个环境变量 -->  
       <environment id="">  
          <!-- 事务管理器 -->  
          <transactionManager type=""></transactionManager>  
          <!-- 数据源 -->  
          <dataSource type=""></dataSource>  
       </environment>   
    </environments>  
    <!-- 数据库厂商标识 -->  
    <databaseIdProvider type=""></databaseIdProvider>  
    <!-- 映射器:指定映射文件或者映射类 -->  
    <mappers></mappers>  
</configuration> 


<configuration>
<!-- 和spring整合后可以废除 -->
<environments default="development">
<environment id="development">
<!-- 使用jdbc事物管理 -->
<transactionManager type="JDBC" />
<!-- 数据库连接池 -->
<dataSource type="POOLED">
<property name="driver" value="com.mysql.jdbc.Driver" />
<property name="url" 


value="jdbc:mysql://localhost:3308/mybatis?characterEncoding=utf-8" />
<property name="username" value="" />
<property name="password" value="" />
</dataSource>
</environment>
</environments>
</configuration>
=======================================================================================
映射文件(User.xml\mapper代理XXXMapper.xml)
sqlmap创建User.xml
测试sql语句是否可用
自定义po.User 属性名和数据库表的字段对应,并set和get和toString


<?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"> 
 
<!-- namespace的命名空间,对sql进行分类管理,mapper代理时,特殊作用 -->
<mapper namespace="test">
<!-- 配置sql语句,通过select查询,id称为statement的id,
将来sql语句会封装到mappedStatement对象中。
parameterType是输入参数,resultType是输出参数拷贝qualified Name
#{}表示占位符
#{id}表示接收输入的参数,参数的名称就是id,如果输入参数是简单类型,#{}的参数名任意
-->
<select id="findUserById" parameterType="int" resultType="cn.itcast.mybatis.po.User">
SELECT * FROM USER WHERE uid=#{id}
</select>
</mapper>
在SqlMapConfig.xml内加载
</environments>
<!-- 加载映射 -->
<mappers>
<mapper resource="sqlmap/User.xml" />
</mappers>
</configuration>
========================================================================================
添加JUnit
添加source.zip源代码注释
测试类:
public class MyBatisFirst {


//根据id查询一条
@Test
public void findUserByIdTest() throws IOException{
//mybatis配置文件路径
String resource = "SqlMapConfig.xml";
//得到配置文件流
InputStream inputStream = Resources.getResourceAsStream(resource);
//创建会话工程
SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build


(inputStream);
//通过工程得到SqlSession
SqlSession sqlSession = sqlSessionFactory.openSession();
//通过SqlSession操作数据库,第一个参数就是映射文件中statement的id,等于


=namespace+"."+statement的id
//第二个参数指定和映射文件中匹配的parameterType类型的参数
//最终结果是映射文件中匹配的resultType的类型的对象
User user = sqlSession.selectOne("test.findUserById", 1);

System.out.println(user);
sqlSession.close();

}
}
最后设置断点,直接右键选择findUserByIdTest运行MyBatisFirst Debug As JUnit Test,点击yes
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值