配置

麻烦是麻烦些,不过可以实现SQL与模型分离

mybatis-3.4.6.jar 放在站点WEB-INF/lib目录下

配置均放在WEB-INF/classes目录下

1、mysql.properties//数据源配置,这个可根据不同数据库进行设置

#######自定义配置
jdbc.driver=com.mysql.jdbc.Driver
jdbc.url=jdbc:mysql://localhost:3306/sc_test?characterEncoding=utf8&useSSL=false&useOldAliasMetadataBehavior=true
jdbc.username=root
jdbc.password=123456

 

2、mybatis.cfg.xml //mybatis配置文件 格式必须一致

<?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 resource="mysql.properties"></properties>

   <typeAliases >
       <!-- 别名方式1,一个一个的配置 type中放置的是类的全路径,alias中放置的是类别名
       <typeAliase type="test.z.mybatis.beans.TestBean" alias="UserBean"/> -->
       <!-- 别名方式2,自动扫描,将JAVA类的类名作为类的类别名 -->
       <package name="test.z.mybatis.beans"/>
    </typeAliases>
   
    <!-- 配置mybatis运行环境 -->
      <environments default="cybatis">
         <environment id="cybatis">
             <!-- type="JDBC" 代表使用JDBC的提交和回滚来管理事务 -->
             <transactionManager type="JDBC" />
            
             <!-- mybatis提供了3种数据源类型,分别是:POOLED,UNPOOLED,JNDI -->
             <!-- POOLED 表示支持JDBC数据源连接池 -->
             <!-- UNPOOLED 表示不支持数据源连接池 -->
             <!-- JNDI 表示支持外部数据源连接池 -->
             <dataSource type="POOLED">
                 <property name="driver" value="${jdbc.driver}" />
                 <property name="url" value="${jdbc.url}" />
                 <property name="username" value="${jdbc.username}" />
                 <property name="password" value="${jdbc.password}" />
             </dataSource>
         </environment>
     </environments>


      <mappers>
           <!-- 告知映射文件方式1,一个一个的配置-->
           <mapper resource="test/z/mybatis/mapper/TestMapper.xml"/>
           <!-- 告知映射文件方式2,自动扫描包内的Mapper接口与配置文件
           <package name="test/z/mybatis/mapper"/> -->
         </mappers>
    
 </configuration>

 

3、mapper配置,根据mybatis.cfg.xml中mappers节点的节点指定目录

这只是其中一个案例

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org/DTD Mapper 3.0" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="test.z.mybatis.mapper.TestMapper">
<!-- 自定义返回结果集 -->
     <resultMap id="userMap" type="TestBean">
          <id property="id" column="id" javaType="java.lang.Integer"></id>
          <result property="username" column="username" javaType="java.lang.String"></result>
          <result property="password" column="password" javaType="java.lang.String"></result>
          <result property="sex" column="sex" javaType="java.lang.Integer"></result>
     </resultMap>
 <!-- 在各种标签中的id属性必须和接口中的方法名相同 , id属性值必须是唯一的,不能够重复使用。parameterType属性指明查询时使用的参数类型,resultType属性指明查询返回的结果集类型-->   
 <!-- useGeneratedKeys:( 仅 对 insert 有 用 ) 这 会 告 诉 MyBatis 使 用 JDBC 的getGeneratedKeys
             方法来取出由数据(比如:像 MySQL 和 SQLServer 这样的数据库管理系统的自动递增字段)内部生成的主键。默认值: false。 -->   
 <!--keyProperty: (仅对 insert有用)标记一个属性, MyBatis 会通过 getGeneratedKeys或者通过 insert 语句的 selectKey 子元素设置它的值。默认:不设置。 -->
 <!--#{}中的内容,为占位符,当参数为某个JavaBean时,表示放置该Bean对象的属性值  -->
 
 
     <insert id="insertUser" useGeneratedKeys="true" keyProperty="id">
         insert into sc_user (username,password,sex) values (#{username},#{password},#{sex})
     </insert>
    
     <update id="updateUser" >
       update sc_user set username=#{username},password=#{password},sex=#{sex} where id=#{id}
     </update>
    
     <delete id="deleteUser" parameterType="int">
      delete from sc_user where id=#{id} 
     </delete>
    
     <select id="selectUserById" parameterType="int" resultMap="userMap">
      select * from sc_user where id=#{id}
     </select>
    
     <select id="selectAllUser" resultMap="userMap">
      select * from sc_user
     </select>

</mapper>