mybatis的curd

mabatis_config.xml

 
  1. <?xml version="1.0" encoding="UTF-8" ?>

  2. <!DOCTYPE configuration

  3. PUBLIC "-//mybatis.org//DTD Config 3.0//EN"

  4. "http://mybatis.org/dtd/mybatis-3-config.dtd">

  5. <configuration>

  6. <properties resource="curd.properties"></properties>

  7. <typeAliases>

  8. <typeAlias alias="Category" type="mybatis.curd.model.Category" />

  9. </typeAliases>

  10. <environments default="development">

  11. <environment id="development">

  12. <transactionManager type="JDBC" />

  13. <dataSource type="POOLED">

  14. <property name="driver" value="${driver}" />

  15. <property name="url" value="${url}" />

  16. <property name="username" value="${username}" />

  17. <property name="password" value="${password}" />

  18. </dataSource>

  19. </environment>

  20. </environments>

  21. <mappers>

  22. <mapper resource="mybatis/curd/dao/sql/category.xml" />

  23. </mappers>

  24. </configuration>

curd.properties

 
  1. driver=com.mysql.jdbc.Driver

  2. url=jdbc:mysql://localhost:3306/db_mybatis_test?Unicode=true&characterEncoding=UTF-8

  3. username=root

  4. password=


            简单的mybatis工具类封装,获取sqlSessionFactory
MybatisUtil.java

 
  1. package mybatis.curd.util;

  2.  
  3. import java.io.IOException;

  4. import java.io.InputStream;

  5.  
  6. import org.apache.ibatis.io.Resources;

  7. import org.apache.ibatis.session.SqlSessionFactory;

  8. import org.apache.ibatis.session.SqlSessionFactoryBuilder;

  9.  
  10. public class MybatisUtil {

  11. private static SqlSessionFactory sqlSessionFactory = null;

  12.  
  13. static {

  14. try {

  15. String resource = "mybatis_config.xml";

  16. InputStream is = Resources.getResourceAsStream(resource);

  17. sqlSessionFactory = new SqlSessionFactoryBuilder().build(is);

  18. } catch (IOException e) {

  19. e.printStackTrace();

  20. }

  21. }

  22.  
  23. public static SqlSessionFactory getSqlSessionFactory() {

  24. return sqlSessionFactory;

  25. }

  26. }


          定义实体bean
Category.java

 
  1. package mybatis.curd.model;

  2.  
  3. /**

  4. * POJO

  5. *

  6. * @author guxingke

  7. * */

  8. public class Category {

  9. private Integer id;

  10. private String name;

  11.  
  12. public Integer getId() {

  13. return id;

  14. }

  15.  
  16. public void setId(Integer id) {

  17. this.id = id;

  18. }

  19.  
  20. public String getName() {

  21. return name;

  22. }

  23.  
  24. public void setName(String name) {

  25. this.name = name;

  26. }

  27.  
  28. @Override

  29. public String toString() {

  30. return "Category [id=" + id + ", name=" + name + "]";

  31. }

  32. }



数据库操作接口
CategoryDao.java

 
  1. package mybatis.curd.dao;

  2.  
  3. import java.util.List;

  4.  
  5. import mybatis.curd.model.Category;

  6.  
  7. /**

  8. * 定义接口,与具体持久化操作无关

  9. *

  10. * @author guxingke

  11. * */

  12. public interface CategoryDao {

  13. public Category getCategory(Integer id);

  14.  
  15. public void saveCategory(Category category);

  16.  
  17. public void updateCategory(Category category);

  18.  
  19. public void deleteCategory(Integer id);

  20.  
  21. public List<Category> selectAll();

  22.  
  23. public List<Category> fuzzyQuery(String name);

  24. }



mybatis的持久化操作mapper映射文件
category.xml

 
  1. <?xml version="1.0" encoding="UTF-8" ?>

  2. <!DOCTYPE mapper

  3. PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"

  4. "http://mybatis.org/dtd/mybatis-3-mapper.dtd">

  5.  
  6. <mapper namespace="mybatis.curd.dao.CategoryDao">

  7. <!-- 新增记录 -->

  8. <insert id="saveCategory" parameterType="Category">

  9. insert into

  10. t_category(name) values(#{name})

  11. </insert>

  12. <!-- 查询单条记录 -->

  13. <select id="getCategory" parameterType="int" resultType="Category">

  14. select *

  15. from t_category where id = #{id}

  16. </select>

  17. <!-- 修改记录 -->

  18. <update id="updateCategory" parameterType="Category">

  19. update t_category set

  20. name = #{name} where id = #{id}

  21. </update>

  22. <!-- 查询所有记录,查询多条记录即返回结果是一个集合的时候,resultType不是集合类型,而是集合所包含的类型 -->

  23. <select id="selectAll" resultType="Category">

  24. select * from t_category

  25. </select>

  26. <!-- 模糊查询 -->

  27. <select id="fuzzyQuery" resultType="Category" parameterType="java.lang.String">

  28. select *

  29. from t_category where name like "%"#{name}"%"

  30. </select>

  31. <!-- 删除记录 -->

  32. <delete id="deleteCategory" parameterType="int">

  33. delete from t_category

  34. where

  35. id = #{id}

  36. </delete>

  37. </mapper>



测试mybatis3推荐的持久化操作方式
CategoryDaoTest2.java

 
  1. package mybatis.curd.dao;

  2.  
  3. import java.util.List;

  4.  
  5. import mybatis.curd.model.Category;

  6. import mybatis.curd.util.MybatisUtil;

  7.  
  8. import org.apache.ibatis.session.SqlSession;

  9. import org.junit.After;

  10. import org.junit.Before;

  11. import org.junit.Test;

  12.  
  13. /**

  14. * 测试mybatis3推荐的方式

  15. *

  16. * @author guxingke

  17. * */

  18. public class CategoryDaoTest2 {

  19.  
  20. @Test

  21. public void testGetCategory() {

  22. category = categoryDao.getCategory(1);

  23. System.out.println(category);

  24. }

  25.  
  26. @Test

  27. public void testSaveCategory() {

  28. category.setName("demo");

  29. categoryDao.saveCategory(category);

  30. }

  31.  
  32. @Test

  33. public void testUpdateCategory() {

  34. category.setId(3);

  35. category.setName("test update id=3");

  36. categoryDao.updateCategory(category);

  37. }

  38.  
  39. @Test

  40. public void testDeleteCategory() {

  41. categoryDao.deleteCategory(2);

  42. }

  43.  
  44. @Test

  45. public void testSelectAll() {

  46. List<Category> categories = categoryDao.selectAll();

  47. for (Category category : categories) {

  48. System.out.println(category);

  49. }

  50. }

  51.  
  52. @Test

  53. public void testFuzzyQuery() {

  54. List<Category> categories = categoryDao.fuzzyQuery("test");

  55. for (Category category : categories) {

  56. System.out.println(category);

  57. }

  58. }

  59.  
  60. @Before

  61. public void setUp() {

  62. session = MybatisUtil.getSqlSessionFactory().openSession();

  63. category = new Category();

  64. categoryDao = session.getMapper(CategoryDao.class);

  65. }

  66.  
  67. @After

  68. public void tearDown() {

  69. session.commit();

  70. session.close();

  71. }

  72.  
  73. SqlSession session = null;

  74. Category category = null;

  75. CategoryDao categoryDao = null;

  76. }



测试mybatis3之前的持久化操作方式
CategoryDaoTest.java

 
  1. package mybatis.curd.dao;

  2.  
  3. import java.util.List;

  4.  
  5. import mybatis.curd.model.Category;

  6. import mybatis.curd.util.MybatisUtil;

  7.  
  8. import org.apache.ibatis.session.SqlSession;

  9. import org.junit.After;

  10. import org.junit.Before;

  11. import org.junit.Test;

  12.  
  13. /**

  14. * 测试mybatis3之前的操作方式

  15. *

  16. * @author guxingke

  17. * */

  18. public class CategoryDaoTest {

  19.  
  20. @Test

  21. public void testGetCategory() {

  22. category = session.selectOne(

  23. "mybatis.curd.dao.CategoryDao.getCategory", 1);

  24. System.out.println(category);

  25. }

  26.  
  27. @Test

  28. public void testSaveCategory() {

  29. category.setName("curd");

  30. session.insert("mybatis.curd.dao.CategoryDao.saveCategory", category);

  31. }

  32.  
  33. @Test

  34. public void testUpdateCategory() {

  35. category.setName("update di =3");

  36. category.setId(3);

  37. session.update("mybatis.curd.dao.CategoryDao.updateCategory", category);

  38. }

  39.  
  40. @Test

  41. public void testDeleteCategory() {

  42. session.delete("mybatis.curd.dao.CategoryDao.deleteCategory", 2);

  43. }

  44.  
  45. @Test

  46. public void testSelectAll() {

  47. List<Category> categories = session

  48. .selectList("mybatis.curd.dao.CategoryDao.selectAll");

  49. for (Category category : categories) {

  50. System.out.println(category);

  51. }

  52. }

  53.  
  54. @Test

  55. public void testFuzzyQuery() {

  56. List<Category> categories = session.selectList(

  57. "mybatis.curd.dao.CategoryDao.fuzzyQuery", "y");

  58. for (Category category : categories) {

  59. System.out.println(category);

  60. }

  61. }

  62.  
  63. @Before

  64. public void setUp() {

  65. session = MybatisUtil.getSqlSessionFactory().openSession();

  66. category = new Category();

  67. }

  68.  
  69. @After

  70. public void tearDown() {

  71. session.commit();

  72. session.close();

  73. }

  74.  
  75. SqlSession session = null;

  76. Category category = null;

  77. }

--------------------- 本文来自 孤星可 的CSDN 博客 ,全文地址请点击:https://blog.csdn.net/u011882512/article/details/43907581?utm_source=copy

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值