Mybatis3快速上手应用示例

引用:http://thoughtfly.iteye.com/blog/1487596

基本步骤

 

  1. 加入jar包
  2. 定义dao接口
  3. 定义配置文件
  4. 实现dao接口

 


快速示例

 

环境

mysql数据库,已经表user,内有字段id,name,mark,其中id为主键,并且是自动递增类型

 

Sql代码   收藏代码
  1. CREATE TABLE `user` (  
  2.   `id` int(11) NOT NULL AUTO_INCREMENT,  
  3.   `namevarchar(20) DEFAULT NULL,  
  4.   `mark` varchar(100) DEFAULT NULL,  
  5.   PRIMARY KEY (`id`)  
  6. ) ENGINE=InnoDB AUTO_INCREMENT=5 DEFAULT CHARSET=utf8;  
 

 

 

1.所需JAR包

mybatis-3.0.5.jar

 

2.对象实体类 User.java 包路径testMybatis.user

 

Java代码   收藏代码
  1. package testMybatis.user;  
  2.   
  3. public class User {  
  4.     Long id;  
  5.     String name;  
  6.     String mark;  
  7.   
  8.     public Long getId() {  
  9.         return id;  
  10.     }  
  11.   
  12.     public void setId(Long id) {  
  13.         this.id = id;  
  14.     }  
  15.   
  16.     public String getName() {  
  17.         return name;  
  18.     }  
  19.   
  20.     public void setName(String name) {  
  21.         this.name = name;  
  22.     }  
  23.   
  24.     public String getMark() {  
  25.         return mark;  
  26.     }  
  27.   
  28.     public void setMark(String mark) {  
  29.         this.mark = mark;  
  30.     }  
  31.   
  32.     @Override  
  33.     public String toString() {  
  34.         return "User [id=" + id + ", name=" + name + ", mark=" + mark + "]";  
  35.     }  
  36.   
  37. }  
 

 

 

3.DAO层接口类 TestDao.java 包路径testMybatis.user

 

Java代码   收藏代码
  1. package testMybatis.user;  
  2.   
  3. public interface TestDao {  
  4.     public int insert(User user);  
  5.     public User select(long id);  
  6.     public List<User> selectAll();  
  7.     public int delete(long id);  
  8. }  
 

4.定义配置文件

(注意:文件位置与接口在同一位置,文件名与接口同名,后缀以.xml结尾)

示例文件TestDao.xml 位置 testMybatis.user;

 

Xml代码   收藏代码
  1. <?xml version="1.0" encoding="UTF-8"?>  
  2. <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"   
  3. "http://mybatis.org/dtd/mybatis-3-mapper.dtd">  
  4. <mapper namespace="testMybatis.user.TestDao">  
  5.     <insert id="insert" parameterType="testMybatis.user.User" useGeneratedKeys="true" keyProperty="id">  
  6.         insert into user   (name,mark)  
  7.                     values (#{name},#{mark})  
  8.     </insert>  
  9.       
  10.     <select id="select" parameterType="long" resultType="testMybatis.user.User">  
  11.         select * from user  
  12.                where name.id=#{id}  
  13.     </select>  
  14.       
  15.     <select id="selectAll"  resultType="testMybatis.user.User" >  
  16.         select * from user  
  17.     </select>  
  18.       
  19.     <delete id="delete" parameterType="long">  
  20.         delete from user  
  21.         where id = #{id}  
  22.     </delete>  
  23. </mapper>  
 

5.实现类TestDaoImp.java

(注意:本示例为快速测试使用的是编码配置数据源工厂,一般使用文件配置)

Java代码   收藏代码
  1. package testMybatis.user;  
  2.   
  3. import java.util.List;  
  4.   
  5. /** 
  6.  * @author DingFengHua 
  7.  * @since Apr 16, 2012 
  8.  */  
  9. public class TestDaoImp implements TestDao {  
  10. //当前用于快速测试,一般设计成单例使用工具类来调用  
  11.     static SqlSessionFactory sqlSessionFactory;  
  12.   
  13.     static {  
  14.         DataSource dataSource = new PooledDataSource("com.mysql.jdbc.Driver",  
  15.                         "jdbc:mysql://localhost/mybatis?userUnicode=true&amp;characterEncoding=utf8""admin""123456");  
  16.         Environment environment = new Environment("test"new JdbcTransactionFactory(), dataSource);  
  17.         Configuration configuration = new Configuration(environment);  
  18.         configuration.addMapper(TestDao.class);  
  19.         sqlSessionFactory = new SqlSessionFactoryBuilder().build(configuration);  
  20.   
  21.     }  
  22.   
  23.     /* 
  24.      * (non-Javadoc) 
  25.      * @see testMybatis.user.testDao#insertName(testMybatis.user.User) 
  26.      */  
  27.     @Override  
  28.     public int insert(User user) {  
  29.         SqlSession session = sqlSessionFactory.openSession();  
  30.         int num = 0;  
  31.         try {  
  32.             TestDao dao = session.getMapper(TestDao.class);  
  33.             num = dao.insert(user);  
  34.             session.commit();  
  35.         } finally {  
  36.             session.close();  
  37.         }  
  38.         return num;  
  39.     }  
  40.   
  41.     /* 
  42.      * (non-Javadoc) 
  43.      * @see testMybatis.user.testDao#select(long) 
  44.      */  
  45.     @Override  
  46.     public User select(long id) {  
  47.         SqlSession session = sqlSessionFactory.openSession();  
  48.         try {  
  49.             TestDao dao = session.getMapper(TestDao.class);  
  50.             return dao.select(id);  
  51.         } finally {  
  52.             session.close();  
  53.         }  
  54.     }  
  55.   
  56.     /* 
  57.      * (non-Javadoc) 
  58.      * @see testMybatis.user.testDao#delete(long) 
  59.      */  
  60.     @Override  
  61.     public int delete(long id) {  
  62.         SqlSession session = sqlSessionFactory.openSession();  
  63.         try {  
  64.             TestDao dao = session.getMapper(TestDao.class);  
  65.             int num = dao.delete(id);  
  66.             session.commit();  
  67.             return num;  
  68.         } finally {  
  69.             session.close();  
  70.         }  
  71.     }  
  72.   
  73.     /* (non-Javadoc) 
  74.      * @see testMybatis.user.testDao#selectAll() 
  75.      */  
  76.     @Override  
  77.     public List<User> selectAll() {  
  78.         SqlSession session = sqlSessionFactory.openSession();  
  79.         try {  
  80.             TestDao dao = session.getMapper(TestDao.class);  
  81.             return dao.selectAll();  
  82.         } finally {  
  83.             session.close();  
  84.         }  
  85.     }  
  86.   
  87. }  
 

6.测试

Java代码   收藏代码
  1. public class Main {  
  2.       
  3.     public static void main(String... a) {  
  4.         TestDao main = new TestDaoImp();  
  5.   
  6.         User user = new User();  
  7.         user.setName("name1");  
  8.         user.setMark("no mark");  
  9.           
  10.         System.out.println(main.insert(user));  
  11.         //System.out.println(main.delete(1l));  
  12.         for (User u : main.selectAll()) {  
  13.             System.out.println(u);  
  14.         }  
  15.     }  
  16. }  
 

完成


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值