现在开始将我学习到的mybatis的知识保存于此!
什么叫mybatis?
MyBatis 是一款优秀的持久层框架,它支持定制化 SQL、存储过程以及高级映射。MyBatis 避免了几乎所有的 JDBC 代码和手动设置参数以及获取结果集。MyBatis 可以使用简单的 XML 或注解来配置和映射原生类型、接口和 Java 的 POJO(Plain Old Java Objects,普通老式 Java 对象)为数据库中的记录。
要使用mybatis首先必须要先导入包,一般导入三个包:mybatis的包、log4j的日志包、数据库连接的包。然后要将log4j的配置文件放在src目录下。log4j.properties的配置文件如下:
log4j.appender.stdout=org.apache.log4j.ConsoleAppender log4j.appender.stdout.Target=System.out log4j.appender.stdout.layout=org.apache.log4j.PatternLayout log4j.appender.stdout.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} %m%n log4j.appender.file=org.apache.log4j.FileAppender log4j.appender.file.File=yc.log log4j.appender.file.layout=org.apache.log4j.PatternLayout log4j.appender.file.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} %l %m%n log4j.rootLogger=debug, stdout, file
然后要有mybatis的配置文件---mybatis-config.xml,这个xml文件中主要配置一些数据库连接的信息、是否启用别名(后面几篇博客会讲)和mapper.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 type="com.yc.mybatis.Dept" alias="de"/> <!-- 为包下面的所有类启用别名,默认为类名--> <package name="com.yc.mybatis"/> <!-- 当同时指定两种别名时,会优先使用package创建的别名,可测试证明--> </typeAliases> <!-- development :说明是开发模式 work :工作模式 --> <environments default="development"> <environment id="development"> <!-- 事物管理 ,使用jdbc来连接数据库--> <transactionManager type="JDBC"></transactionManager> <!-- 使用连接池 --> <dataSource type="POOLED"><!-- 一些连接属性的配置 --> <property name="driver" value="oracle.jdbc.driver.OracleDriver"/> <property name="url" value="jdbc:oracle:thin:@127.0.0.1:1521:orcl"/> <property name="username" value="scott"/> <property name="password" value="a"/> </dataSource> </environment> </environments> <mappers> <!-- 映射文件路径 --> <mapper resource="com/yc/mybatis/DeptMapper.xml"></mapper> <mapper resource="com/yc/mybatis/EmpMapper.xml"></mapper> <mapper resource="com/yc/mybatis/EmpMapper1.xml"></mapper> <mapper resource="com/yc/mybatis/EmpMapper2.xml"></mapper> <mapper resource="com/yc/mybatis/DeptMapper3.xml"></mapper> <mapper resource="com/yc/mybatis/DeptMapper2.xml"></mapper> <!-- 使用注解的方式来 进行语句操作--> <mapper class="com.yc.mybatis.Dept5"></mapper> </mappers> </configuration>
看到此,有可能有迷糊。
首先来看看mybaits的操作原理。
当使用mybatis来和数据库打交道时。会先加载mybatis-config.xml文件,来获取连接的信息和一些其他的信息,如实体类是否启用别名(实体类就是一些用于存储信息的类);
如mapper.xml文件的信息(里面写一些你自己要操作的信息,如:增删改查)。注:mapper配置中的resource属性是这个mapper.xml的src下面的全路径名。
示例一个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="DeptMapper"> <!-- 命名空间 --> <!-- id必须唯一,用于java代码的查询调用, resultType:为返回值类型, parameterType:为传入的参数 --> <select id="find" resultType="Dept" parameterType="int"> select deptno, dname, loc from dept where deptno = #{deptno} </select> <update id = "update" parameterType="Dept"> update dept set dname = #{dname}, loc = #{loc} where deptno = #{deptno} </update> </mapper>
好了基本的配置就在这里。
关于mybatis的基本调用,请看下一篇文章