Mybatis的基本使用
1.使用eclipse创建java工程,jdk使用1.7.0_72
2.导包:加入mybatis核心包、依赖包、数据驱动包。
3.日志:创建log4j.properties
# Global logging configuration
log4j.rootLogger=DEBUG, stdout
# 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
4.创建SqlMapConfig.xml(主配置文件)
PUBLIC "-//mybatis.org//DTDConfig 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration>
<!-- 和spring整合后 environments配置将废除-->
<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:3306/mybatis?characterEncoding=utf-8"/>
<property name="username"value="root" />
<property name="password"value="root" />
</dataSource>
</environment>
</environments>
</configuration>
5.(实体类)Pojo类作为mybatis进行sql映射使用,po类通常与数据库表对应,User.java
6.config中创建UserMapper.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">
<!-- namespace名称空间 sql隔离 -->
<mapper namespace="cn.itcast.mybatis.mapper.UserMapper">
<!--statementId parameterType 传来的参数类型; resultType:返回值的类型-->
<select id="findById" parameterType="java.lang.Integer" resultType="uSEr">
<!-- 占位符:#{}
张 编译完成后,如果是字符串会自动加上单引号 张-----'张'-->
<!--连接符:${}
规则:如果参数是基础数据类型大括号中必须写value,如果是pojo或者map,大括号中必须写属性名或者key名-->
select * from user where id = #{id}
</select>
<insert id="insertUser" parameterType="cn.itcast.mybatis.pojo.User">
<!--主键先生成,添加后就会有ID,Mysql的函数 -->
<selectKey resultType="int" keyProperty="id" order="AFTER">
select LAST_INSERT_ID()
</selectKey>
insert into user (username,birthday,sex,address) values(#{username},#{birthday},#{sex},#{address});
</insert>
</mapper>
7.加载配置文件
mybatis框架需要加载映射文件,将Users.xml添加在SqlMapConfig.xml,如下:
<mappers>
<!-- <mapper resource="user.xml"/> --> 直接加载
<!-- <mapper resource="User2Mapper.xml"/> --> 直接加载
<!-- <mapper class="cn.itcast.mybatis.mapper.UserMapper"/> --> 写的是Dao接口
<package name="cn.itcast.mybatis.mapper"/> 包名
</mappers>
***mybatis作为dao开发(不需要自己书写实体类动态代理帮我们创建)
规则:1、接口全路径和映射文件中的namespace保持一致
2、接口中的方法名和映射文件中的statementId保持一致
3、接口方法的参数类型和返回值类型要和映射文件中的parameterType、resultType保持一致
4、接口名和映射文件的名称保持一致
5、接口和映射文件放到同一个目录下