mybatis的基础curd操作
2015-02-22 15:01
381 查看
准备工作
mybatis的jar包,当前为3.2.7
mysql的java驱动jar包
junit的jar包和junit依赖的hamcrest-core jar包
mysql数据库的建库建表
建表语句
项目结构
完成后的项目结构如下图
![](https://img-blog.csdn.net/20150222150204724?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvdTAxMTg4MjUxMg==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
关于mybatis的一些概念,官方文档清晰明了http://mybatis.github.io/mybatis-3/zh/index.html
搭建mybatis开发环境
新建java项目
添加所需jar包,并添加到classpath中
参照官方文档添加mybatis的配置文件,下面是此demo的mybatis配置文件
mabatis_config.xml
简单的mybatis工具类封装,获取sqlSessionFactory
MybatisUtil.java
定义实体bean
Category.java
数据库操作接口
CategoryDao.java
mybatis的持久化操作mapper映射文件
category.xml
测试mybatis3推荐的持久化操作方式
CategoryDaoTest2.java
测试mybatis3之前的持久化操作方式
CategoryDaoTest.java
mybatis的jar包,当前为3.2.7
mysql的java驱动jar包
junit的jar包和junit依赖的hamcrest-core jar包
mysql数据库的建库建表
建表语句
CREATE TABLE `t_category` ( `id` INT(11) NOT NULL AUTO_INCREMENT, `name` VARCHAR(20) DEFAULT NULL, PRIMARY KEY (`id`) )
项目结构
完成后的项目结构如下图
关于mybatis的一些概念,官方文档清晰明了http://mybatis.github.io/mybatis-3/zh/index.html
搭建mybatis开发环境
新建java项目
添加所需jar包,并添加到classpath中
参照官方文档添加mybatis的配置文件,下面是此demo的mybatis配置文件
mabatis_config.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> <properties resource="curd.properties"></properties> <typeAliases> <typeAlias alias="Category" type="mybatis.curd.model.Category" /> </typeAliases> <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="mybatis/curd/dao/sql/category.xml" /> </mappers> </configuration>curd.properties
driver=com.mysql.jdbc.Driver url=jdbc:mysql://localhost:3306/db_mybatis_test?Unicode=true&characterEncoding=UTF-8 username=root password=
简单的mybatis工具类封装,获取sqlSessionFactory
MybatisUtil.java
package mybatis.curd.util; import java.io.IOException; import java.io.InputStream; import org.apache.ibatis.io.Resources; import org.apache.ibatis.session.SqlSessionFactory; import org.apache.ibatis.session.SqlSessionFactoryBuilder; public class MybatisUtil { private static SqlSessionFactory sqlSessionFactory = null; static { try { String resource = "mybatis_config.xml"; InputStream is = Resources.getResourceAsStream(resource); sqlSessionFactory = new SqlSessionFactoryBuilder().build(is); } catch (IOException e) { e.printStackTrace(); } } public static SqlSessionFactory getSqlSessionFactory() { return sqlSessionFactory; } }
定义实体bean
Category.java
package mybatis.curd.model; /** * POJO * * @author guxingke * */ public class Category { private Integer id; private String name; public Integer getId() { return id; } public void setId(Integer id) { this.id = id; } public String getName() { return name; } public void setName(String name) { this.name = name; } @Override public String toString() { return "Category [id=" + id + ", name=" + name + "]"; } }
数据库操作接口
CategoryDao.java
package mybatis.curd.dao; import java.util.List; import mybatis.curd.model.Category; /** * 定义接口,与具体持久化操作无关 * * @author guxingke * */ public interface CategoryDao { public Category getCategory(Integer id); public void saveCategory(Category category); public void updateCategory(Category category); public void deleteCategory(Integer id); public List<Category> selectAll(); public List<Category> fuzzyQuery(String name); }
mybatis的持久化操作mapper映射文件
category.xml
<?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="mybatis.curd.dao.CategoryDao"> <!-- 新增记录 --> <insert id="saveCategory" parameterType="Category"> insert into t_category(name) values(#{name}) </insert> <!-- 查询单条记录 --> <select id="getCategory" parameterType="int" resultType="Category"> select * from t_category where id = #{id} </select> <!-- 修改记录 --> <update id="updateCategory" parameterType="Category"> update t_category set name = #{name} where id = #{id} </update> <!-- 查询所有记录,查询多条记录即返回结果是一个集合的时候,resultType不是集合类型,而是集合所包含的类型 --> <select id="selectAll" resultType="Category"> select * from t_category </select> <!-- 模糊查询 --> <select id="fuzzyQuery" resultType="Category" parameterType="java.lang.String"> select * from t_category where name like "%"#{name}"%" </select> <!-- 删除记录 --> <delete id="deleteCategory" parameterType="int"> delete from t_category where id = #{id} </delete> </mapper>
测试mybatis3推荐的持久化操作方式
CategoryDaoTest2.java
package mybatis.curd.dao; import java.util.List; import mybatis.curd.model.Category; import mybatis.curd.util.MybatisUtil; import org.apache.ibatis.session.SqlSession; import org.junit.After; import org.junit.Before; import org.junit.Test; /** * 测试mybatis3推荐的方式 * * @author guxingke * */ public class CategoryDaoTest2 { @Test public void testGetCategory() { category = categoryDao.getCategory(1); System.out.println(category); } @Test public void testSaveCategory() { category.setName("demo"); categoryDao.saveCategory(category); } @Test public void testUpdateCategory() { category.setId(3); category.setName("test update id=3"); categoryDao.updateCategory(category); } @Test public void testDeleteCategory() { categoryDao.deleteCategory(2); } @Test public void testSelectAll() { List<Category> categories = categoryDao.selectAll(); for (Category category : categories) { System.out.println(category); } } @Test public void testFuzzyQuery() { List<Category> categories = categoryDao.fuzzyQuery("test"); for (Category category : categories) { System.out.println(category); } } @Before public void setUp() { session = MybatisUtil.getSqlSessionFactory().openSession(); category = new Category(); categoryDao = session.getMapper(CategoryDao.class); } @After public void tearDown() { session.commit(); session.close(); } SqlSession session = null; Category category = null; CategoryDao categoryDao = null; }
测试mybatis3之前的持久化操作方式
CategoryDaoTest.java
package mybatis.curd.dao; import java.util.List; import mybatis.curd.model.Category; import mybatis.curd.util.MybatisUtil; import org.apache.ibatis.session.SqlSession; import org.junit.After; import org.junit.Before; import org.junit.Test; /** * 测试mybatis3之前的操作方式 * * @author guxingke * */ public class CategoryDaoTest { @Test public void testGetCategory() { category = session.selectOne( "mybatis.curd.dao.CategoryDao.getCategory", 1); System.out.println(category); } @Test public void testSaveCategory() { category.setName("curd"); session.insert("mybatis.curd.dao.CategoryDao.saveCategory", category); } @Test public void testUpdateCategory() { category.setName("update di =3"); category.setId(3); session.update("mybatis.curd.dao.CategoryDao.updateCategory", category); } @Test public void testDeleteCategory() { session.delete("mybatis.curd.dao.CategoryDao.deleteCategory", 2); } @Test public void testSelectAll() { List<Category> categories = session .selectList("mybatis.curd.dao.CategoryDao.selectAll"); for (Category category : categories) { System.out.println(category); } } @Test public void testFuzzyQuery() { List<Category> categories = session.selectList( "mybatis.curd.dao.CategoryDao.fuzzyQuery", "y"); for (Category category : categories) { System.out.println(category); } } @Before public void setUp() { session = MybatisUtil.getSqlSessionFactory().openSession(); category = new Category(); } @After public void tearDown() { session.commit(); session.close(); } SqlSession session = null; Category category = null; }
相关文章推荐
- mybatis的基础curd操作
- mybatis 基础curd操作
- mybatis基础操作之存储过程
- MyBatis 配置及实现 CURD 操作
- 番外 02: Spring 之使用 JAVA 操作Mysql数据库(为何要用ORM)Spring整合 Mybatis前基础
- MyBatis入门3--基本操作:增删改+基础查询
- Mybatis实现数据CURD操作实例
- windows下mongodb基础玩法系列二CURD操作(创建、更新、读取和删除)
- MyBatis基础操作
- 番外 02: Spring 之使用 JAVA 操作Mysql数据库(为何要用ORM)Spring整合 Mybatis前基础
- 番外 02: Spring 之使用 JAVA 操作Mysql数据库(为何要用ORM)Spring整合 Mybatis前基础
- MyBatis第一讲学习笔记,mybatis入门基础操作
- MyBatis配置及实现CURD操作
- 番外 02: Spring 之使用 JAVA 操作Mysql数据库(为何要用ORM)Spring整合 Mybatis前基础
- 番外 02: Spring 之使用 JAVA 操作Mysql数据库(为何要用ORM)Spring整合 Mybatis前基础
- 番外 02: Spring 之使用 JAVA 操作Mysql数据库(为何要用ORM)Spring整合 Mybatis前基础
- Mybatis基础操作之存储过程
- 转载 操作MyBatis基础
- mongodb基础系列——java操作mongodb实现CURD
- 框架 day65 Mybatis入门(基础知识:框架原理,入门[curd],开发dao层,全局与映射配置)