Mybatis3.2.3+mysql第一个例子(入门) | (转)

Mybatis3.2.3+mysql第一个例子(入门)

10-15 mybatis 罗生沙 525 views

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

Mybatis3.2.3下载: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.3.zip文件,把mybatis-3.2.3.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 //删除用户

本文出自 luoshengsha.com,转载时请注明出处及相应链接。

本文永久链接: http://www.luoshengsha.com/266.html

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
入门 安装 要使用 MyBatis, 只需将 mybatis-x.x.x.jar 文件置于 classpath 中即可。 如果使用 Maven 来构建项目,则需将下面的 dependency 代码置于 pom.xml 文件中: <dependency> <groupId>org.mybatis</groupId> <artifactId>mybatis</artifactId> <version>x.x.x</version> </dependency>从 XML 中构建 SqlSessionFactory 每个基于 MyBatis 的应用都是以一个 SqlSessionFactory 的实例为中心的。SqlSessionFactory 的实例可以通过 SqlSessionFactoryBuilder 获得。而 SqlSessionFactoryBuilder 则可以从 XML 配置文件或一个预先定制的 Configuration 的实例构建出 SqlSessionFactory 的实例。 从 XML 文件中构建 SqlSessionFactory 的实例非常简单,建议使用类路径下的资源文件进行配置。但是也可以使用任意的输入流(InputStream)实例,包括字符串形式的文件路径或者 file:// 的 URL 形式的文件路径来配置。MyBatis 包含一个名叫 Resources 的工具类,它包含一些实用方法,可使从 classpath 或其他位置加载资源文件更加容易。 String resource = "org/mybatis/example/mybatis-config.xml"; InputStream inputStream = Resources.getResourceAsStream(resource); SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);XML 配置文件(configuration XML)中包含了对 MyBatis 系统的核心设置,包含获取数据库连接实例的数据源(DataSource)和决定事务作用域和控制方式的事务管理器(TransactionManager)。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> <environments default="development"> <environment id="development"> <transactionManager type="JDBC"/> <dataSource type="POOLED"> <property name="driver" value="${driver}"/> <property name="url" value="${url}"/> <property name="username" value="${username}"/> <property name="password" value="${password}"/> </dataSource> </environment> </environments> <mappers> <mapper resource="org/mybatis/example/BlogMapper.xml"/> </mappers> </configuration>当然,还有很多可以在XML 文件中进行配置,上面的示例指出的则是最关键的部分。要注意 XML 头部的声明,用来验证 XML 文档正确性。environment 元素体中包含了事务管理和连接池的配置。mappers 元素则是包含一组 mapper 映射器(这些 mapper 的 XML 文件包含了 SQL 代码和映射定义信息)。 不使用 XML 构建 SqlSessionFactory 如果你更愿意直接从 Java 程序而不是 XML 文件中创建 configuration,或者创建你自己的 configuration 构建器,MyBatis 也提供了完整的配置类,提供所有和 XML 文件相同功能的配置项。 .....................................
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值