Mybatis3.2.6+mysql第一个例子

每当我们接触到一个新的框架时,很多人会选择把所有的文档读完,把别人的视频看完(以前我也一样),但是当你把所有的东西(文档、视频)都看完后来做第一个例子,发现你根本就无从下手,效率非常低下。我现在的做法是先到官网看搭建框架的五分钟教程,把框架先搭起来,运行第一个例子,希望看到这边的文章的童鞋们也采用这套做法,不要再继续做无用功了。

Mybatis3.2.6下载:http://code.google.com/p/mybatis/downloads/list?can=3&q=Product%3DMyBatis

官方中文文档:http://mybatis.github.io/mybatis-3/zh/index.html

下面我们来运行第一个mybatis3.2.3例子:

1、jdk、tomcat(或者其他web容器),必需的。

2、创建一个web项目

3、解压mybatis3.2.6.zip文件,把mybatis-3.2.6.jar和lib目录下的所有jar包复制到WEB-INF/lib

4、复制mysql-connector-java-5.1.14.jar到WEB-INF/lib

5、在mysql创建一个mybatis数据库,新建一个user表,里面有id,name,password。

6、新建一个实体User

package com.luoshengsha.bean;
public class User {
   /**id**/
   private String id;
   /**用户名**/
   private String name;
   /**密码**/
   private String password;

  //set和get方法--注意:不能少
}

7、创建一个userMapper

package com.luoshengsha.mapper;
import com.luoshengsha.bean.User;
public interface UserMapper {
   /**保存**/
   public void save(User user);
   /**修改**/
   public void update(User user);
   /**查找**/
   public User find(String id);
   /**删除**/
   public void delete(String id);
}

8、创建一个userMapper.xml(名字和userMapper类对应,且放到同一目录下)

<?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.luoshengsha.mapper.UserMapper"><!--注意:此处的命名空间是UserMapper的全限定类名-->

   <!-- 保存 -->
   <insert id="save" parameterType="user">
      insert into user(id,name,password) values(#{id},#{name},#{password})
   </insert>

   <!-- 更新 -->
   <update id="update" parameterType="user">
      update user set name=#{name},password=#{password} where id=#{id}
   </update>

   <!-- 查找 -->
   <select id="find" parameterType="string" resultType="user">
      select * from user where id=#{id}
   </select>

   <!-- 删除 -->
   <delete id="delete" parameterType="string">
      delete from user where id=#{id}
   </delete>
</mapper>

9、在classpath下创建mybatis-confi.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>
   <settings>
   <!-- 全局启用或禁用延迟加载。当禁用时,所有关联对象都会即时加载。默认:true -->
   <setting name="lazyLoadingEnabled" value="true"/>

   <!-- 当启用时,有延迟加载属性的对象在被调用时将会完全加载任意属性。否则,每种属性将会按需要加载 -->
   <setting name="aggressiveLazyLoading" value="false"/>
 </settings>

 <typeAliases>
     <typeAlias type="com.luoshengsha.bean.User" alias="user"/><!--设置别名-->
 </typeAliases>

 <environments default="development">
     <environment id="development">
        <transactionManager type="JDBC"/>
        <dataSource type="POOLED">
           <property name="driver" value="org.gjt.mm.mysql.Driver"/>
           <property name="url" value="jdbc:mysql://127.0.0.1:3306/mybatis?useUnicode=true&amp;characterEncoding=UTF-8"/><!--url中的&要用&amp;代替,否则会出错-->
           <property name="username" value="root"/>
           <property name="password" value="root"/>
       </dataSource>
     </environment>
 </environments>

<mappers>
    <mapper resource="com/luoshengsha/mapper/UserMapper.xml"/><!--mapper对应的xml配置文件-->
</mappers>
</configuration>

10、在classpath下创建log4j.properties,用于日志输出

log4j.rootLogger=debug, Console
#Console
log4j.appender.Console=org.apache.log4j.ConsoleAppender
log4j.appender.Console.layout=org.apache.log4j.PatternLayout
log4j.appender.Console.layout.ConversionPattern=%d [%t] %-5p [%c] - %m%n

log4j.logger.java.sql.ResultSet=DEBUG
log4j.logger.org.apache=DEBUG
log4j.logger.java.sql.Connection=DEBUG
log4j.logger.java.sql.Statement=DEBUG
log4j.logger.java.sql.PreparedStatement=DEBUG

11、创建MybatisUtil类,用于获取SqlSessionFactory

package com.luoshengsha.utils;
import java.io.Reader;
import org.apache.ibatis.io.Resources;
import org.apache.ibatis.session.SqlSessionFactory;
import org.apache.ibatis.session.SqlSessionFactoryBuilder;
public class MybatisUtil {
   private static SqlSessionFactory sqlMapper;
   private static Reader reader;

   static {
      try {
          reader = Resources.getResourceAsReader("mybatis-config.xml");
          sqlMapper = new SqlSessionFactoryBuilder().build(reader);
      } catch (Exception e) {
          e.printStackTrace();
      }
   }

   public static SqlSessionFactory getInstance() {
      return sqlMapper;
   }
}

12、单元测试类

package com.luoshengsha.test;
import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;
import org.junit.Test;
import com.luoshengsha.bean.User;
import com.luoshengsha.mapper.UserMapper;
import com.luoshengsha.utils.MybatisUtil;
public class MybatisTest {
    private SqlSessionFactory sessionFactory= MybatisUtil.getInstance();

    @Test
    public void save() {
       SqlSession session = sessionFactory.openSession();
       try {
           UserMapper userMapper = session.getMapper(UserMapper.class);

           User user = new User();
           user.setId("1");
           user.setName("张三");
           user.setPassword("123456");

           userMapper.save(user);
           session.commit();//提交事务
      } catch (Exception e) {
          e.printStackTrace();
      } finally {
          session.close();
      }
  }

  @Test
  public void update() {
       SqlSession session = sessionFactory.openSession();
       try {
           UserMapper userMapper = session.getMapper(UserMapper.class);

           User user = userMapper.find("1");
           user.setName("李四");

           userMapper.update(user);
           session.commit();//提交事务
       } catch (Exception e) {
           e.printStackTrace();
       } finally {
           session.close();
       }
  }

 @Test
 public void find() {
       SqlSession session = sessionFactory.openSession();
       try {
           UserMapper userMapper = session.getMapper(UserMapper.class);

           User user = userMapper.find("1");

           System.out.println("id : " + user.getId() + ", name : " + user.getName() + ", password : " + user.getPassword());
       } catch (Exception e) {
          e.printStackTrace();
       } finally {
         session.close();
       }
 }

 @Test
 public void delete() {
       SqlSession session = sessionFactory.openSession();
       try {
           UserMapper userMapper = session.getMapper(UserMapper.class);

           userMapper.delete("1");
           session.commit();//提交事务
       } catch (Exception e) {
           e.printStackTrace();
       } finally {
           session.close();
       }
 }

}

13、整个项目的目录结构如下:

015234328

 

14、源码下载地址:http://pan.baidu.com/s/1gOL9a(源码中包含用servlet调用mybatis)

     (1)、http://localhost:8080/mybatisTest/UserServlet?action=save //添加用户

     (2)、http://localhost:8080/mybatisTest/UserServlet?action=update&id=1 //更新用户

    (3)、http://localhost:8080/mybatisTest/UserServlet?action=find&id=1 //查找用户

    (4)、http://localhost:8080/mybatisTest/UserServlet?action=delete&id=1 //删除用户

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值