MyBatis 学习 - 注解
生活随笔
收集整理的這篇文章主要介紹了
MyBatis 学习 - 注解
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
?
首先,POJO
/*** @Title: Question.java* @Package com.test.model* @Description: TODO(POJO Question)* Copyright: Copyright (c) 2012 Company China Foreign Exchange Trade System and National Interbank Funding Center.* Building 24,1387 ZhangDong Road, Shanghai, China.* All Rights Reserved. * Company: Insigma HT* @author Ares* @date 2013-06-24 下午3:48:31** Revision History** Date Programmer Notes* --------- --------------------- --------------------------------------------* 2013-06-24 Ares initial*/ package com.test.model;import java.util.Date;/** * * @author Ares* @Describe TODO(POJO Question)* */ public class Question {private String id;private int qorder;private String qname;private String qcontent;private Date updateTime;public String getId() {return id;}public void setId(String id) {this.id = id;}public int getQorder() {return qorder;}public void setQorder(int qorder) {this.qorder = qorder;}public String getQname() {return qname;}public void setQname(String qname) {this.qname = qname;}public String getQcontent() {return qcontent;}public void setQcontent(String qcontent) {this.qcontent = qcontent;}public Date getUpdateTime() {return updateTime;}public void setUpdateTime(Date updateTime) {this.updateTime = updateTime;}}?
繼續,Mapper
/*** @Title: QuestionDAO.java* @Package com.test.dao* @Description: TODO(Question Mapper)* Copyright: Copyright (c) 2012 Company China Foreign Exchange Trade System and National Interbank Funding Center.* Building 24,1387 ZhangDong Road, Shanghai, China.* All Rights Reserved. * Company: Insigma HT* @author Ares* @date 2013-06-24 下午3:48:31** Revision History** Date Programmer Notes* --------- --------------------- --------------------------------------------* 2013-06-24 Ares initial*/ package com.test.dao;import java.util.List;import org.apache.ibatis.annotations.Insert; import org.apache.ibatis.annotations.InsertProvider; import org.apache.ibatis.annotations.Param; import org.apache.ibatis.annotations.Select;import com.test.model.Question;/** * * @author Ares* @Describe TODO(Question Mapper)* */ public interface QuestionDAO {/*** AddBy Ares* TODO(find all questions)*/@Select("SELECT * FROM Question")public List<Question> findAll();/*** AddBy Ares* TODO(find question by ID)*/@Select("SELECT * FROM Question WHERE ID = #{id}")public Question findByID(@Param("id")String id);/*** AddBy Ares* TODO(just save one question)*/@Insert("INSERT INTO Question VALUES(#{id},#{qorder},#{qname},#{qcontent},#{updateTime})")public void save(Question question);/*** AddBy Ares* TODO(save all questions in list)*/@InsertProvider(type=SqlProvider.class, method="saveAll")public void saveAll(List<Question> list);}上面的Mapper中,saveAll方法使用了SqlProvider,這個是用作批量添加使用的。
/*** @Title: SqlProvider.java* @Package com.test.dao* @Description: TODO(SqlProvider)* Copyright: Copyright (c) 2012 Company China Foreign Exchange Trade System and National Interbank Funding Center.* Building 24,1387 ZhangDong Road, Shanghai, China.* All Rights Reserved. * Company: Insigma HT* @author Ares* @date 2013-6-24 下午3:48:31** Revision History** Date Programmer Notes* --------- --------------------- --------------------------------------------* 2013-6-24 Ares initial*/ package com.test.dao;import java.text.MessageFormat; import java.util.List; import java.util.Map;import com.test.model.Question;/*** @author Ares* TODO(SqlProvider)*/ public class SqlProvider {private static final String TABLE = "question";public String saveAll(Map<String, List<Question>> params){List<Question> list = (List<Question>)params.get("list");if(list!=null){StringBuffer sb = new StringBuffer("insert into ").append(TABLE).append(" values ");MessageFormat mf = new MessageFormat("(#'{'list[{0}].id}, #'{'list[{0}].qorder}, #'{'list[{0}].qname}, #'{'list[{0}].qcontent}, #'{'list[{0}].updateTime})");for (int i=0; i<list.size(); i++) {sb.append(mf.format(new Object[]{i})); if (i < list.size() - 1) { sb.append(","); } }System.out.println(sb.toString());return sb.toString();}return null;}}接下來,把配置文件拿過來,
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN""mybatis-3-config.dtd"><configuration><typeAliases><package name="com.test.model"/></typeAliases><environments default="development"><environment id="development"><transactionManager type="jdbc" /><dataSource type="POOLED"><property name="driver" value="com.mysql.jdbc.Driver"/><property name="url" value="jdbc:mysql://localhost:3306/test?useUnicode=true"/><property name="username" value="root"/><property name="password" value="test"/></dataSource></environment></environments><mappers><package name="com.test.dao"/></mappers><!-- <mappers><mapper resource="com/test/model/Question.xml"/></mappers>--> </configuration>最后,開始測試
/*** @Title: MyBatisTest.java* @Package com.test.test* @Description: TODO(MyBatisTest)* Copyright: Copyright (c) 2012 Company China Foreign Exchange Trade System and National Interbank Funding Center.* Building 24,1387 ZhangDong Road, Shanghai, China.* All Rights Reserved. * Company: Insigma HT* @author Ares* @date 2013-06-24 下午3:48:31** Revision History** Date Programmer Notes* --------- --------------------- --------------------------------------------* 2013-06-24 Ares initial*/ package com.test.test;import java.util.ArrayList; import java.util.Date; import java.util.List; import java.util.UUID;import org.apache.ibatis.session.SqlSession; import org.apache.ibatis.session.SqlSessionFactory; import org.apache.ibatis.session.SqlSessionFactoryBuilder; import org.junit.Test;import com.test.dao.QuestionDAO; import com.test.model.Question;/*** @author Ares* TODO(MyBatisTest)*/ public class MyBatisTest {@Testpublic void testMyBatis(){SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(this.getClass().getResourceAsStream("/com/test/cfg/sqlMapClient.xml"));SqlSession sqlSession = sqlSessionFactory.openSession();QuestionDAO questionDao = sqlSession.getMapper(QuestionDAO.class);List<Question> list = new ArrayList<Question>();Question q = new Question();q.setId(UUID.randomUUID().toString());q.setQname("Are you ok?");q.setQcontent("I'm ok.");q.setQorder(6);q.setUpdateTime(new Date());list.add(q);Question q2 = new Question();q2.setId(UUID.randomUUID().toString());q2.setQname("How are you?");q2.setQcontent("I'm ok.");q2.setQorder(6);q2.setUpdateTime(new Date());list.add(q2);questionDao.saveAll(list);sqlSession.commit();List<Question> questions = questionDao.findAll();for (Question question : questions) {System.out.println(question.getQname() + " \tReply: "+question.getQcontent());}sqlSession.close();} }?
?
?
?
?
?
?
?
轉載于:https://www.cnblogs.com/icerainsoft/p/3152663.html
總結
以上是生活随笔為你收集整理的MyBatis 学习 - 注解的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 使用SCVMM2012从hyper-v
- 下一篇: UTF8 匹配汉字,字母,数字