Mybatis 学习
工具:
IDE: MyEclipse
DataBase: MySQL
Libs/jar: Mybatis,MySQL connector and JUnit;
第一步: 创建Java项目,其基本目录结构如下图:
第二步:创建数据库,并预先插入数据(可执行源码文件中的CONTACT.sql文件)
第三步:创建Contact 类
package com.vic.model; /** * Date: 2014-07-16 * @author Vic * */ public class Contact { private int id; // id private String name; // 姓名 private String email;// 邮件 private String phone;// 电话 public Contact(){} public Contact(int id, String name, String email, String phone) { super(); this.id = id; this.name = name; this.email = email; this.phone = phone; } ....set 和 get 方法 }
第四步:配置Contact.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="Contact"> <resultMap type="Contact" id="result"> <result property="id" column="CONTACT_ID" /> <result property="name" column="CONTACT_NAME" /> <result property="phone" column="CONTACT_PHONE" /> <result property="email" column="CONTACT_EMAIL" /> </resultMap> <select id="getAll" resultMap="result"> select * from CONTACT </select> <select id="getById" parameterType="int" resultMap="result"> select * from CONTACT where CONTACT_ID = #{id} </select> <delete id="deleteById" parameterType="int"> DELETE from CONTACT WHERE CONTACT_ID = #{id}; </delete> <insert id="insert" parameterType="Contact"> INSERT INTO CONTACT (CONTACT_EMAIL, CONTACT_NAME, CONTACT_PHONE) VALUES (#{email}, #{name}, #{phone}); <selectKey keyProperty="id" resultType="int" order="AFTER"> select last_insert_id() as id </selectKey> </insert> <update id="update" parameterType="Contact"> UPDATE CONTACT SET CONTACT_EMAIL = #{email}, CONTACT_NAME = #{name}, CONTACT_PHONE = #{phone} WHERE CONTACT_ID = #{id}; </update> </mapper>
第五步:配置SqlMapConfig.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> <typeAliases> <typeAlias type="com.vic.model.Contact" alias="Contact"/> </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/mybatis_study"/> <property name="username" value="root"/> <property name="password" value="admin"/> </dataSource> </environment> </environments> <mappers> <mapper resource="com/vic/data/Contact.xml" /> </mappers> </configuration>
第六步:创建工具类MyBatisConnectionFactory 获取sqlSessionFactory
package com.vic.dao; import java.io.FileNotFoundException; import java.io.IOException; import java.io.Reader; import org.apache.ibatis.io.Resources; import org.apache.ibatis.session.SqlSessionFactory; import org.apache.ibatis.session.SqlSessionFactoryBuilder; /** * Date: 2014-07-16 * @author Vic * */ public class MyBatisConnectionFactory { private static SqlSessionFactory sqlSessionFactory; static{ try { String resource = "SqlMapConfig.xml"; Reader reader = Resources.getResourceAsReader(resource); if(sqlSessionFactory == null){ sqlSessionFactory = new SqlSessionFactoryBuilder().build(reader); } }catch(FileNotFoundException fileNotFoundException) { fileNotFoundException.printStackTrace(); }catch (IOException e) { e.printStackTrace(); } } public static SqlSessionFactory getSqlSessionFactory(){ return sqlSessionFactory; } }
第七步:ContactDAO
package com.vic.dao; import java.util.List; import org.apache.ibatis.session.SqlSession; import org.apache.ibatis.session.SqlSessionFactory; import com.vic.model.Contact; /** * Date: 2014-07-16 * @author Vic * */ public class ContactDAO { private SqlSessionFactory sqlSessionFactory; public ContactDAO(){ sqlSessionFactory = MyBatisConnectionFactory.getSqlSessionFactory(); } /** * 查询所有记录 * @return */ public List<Contact> selectAll(){ SqlSession session = sqlSessionFactory.openSession(); try { List<Contact> list = session.selectList("Contact.getAll"); return list; }finally{ session.close(); } } /** * 根据ID查询数据 * @param id * @return */ public Contact selectById(int id){ SqlSession session = sqlSessionFactory.openSession(); try{ Contact contact = (Contact)session.selectOne("Contact.getById",id); return contact; }finally{ session.close(); } } /** * 更新数据 * @param contact */ public void update(Contact contact){ SqlSession session = sqlSessionFactory.openSession(); try{ session.update("Contact.update",contact); session.commit(); }finally{ session.close(); } } /** * 插入数据 * @param contact */ public void insert(Contact contact){ SqlSession session = sqlSessionFactory.openSession(); try{ session.insert("Contact.insert",contact); session.commit(); }finally{ session.close(); } } /** * 根据id删除记录 * @param id */ public void delete(int id){ SqlSession session = sqlSessionFactory.openSession(); try{ session.delete("Contact.deleteById",id); session.commit(); }finally{ session.close(); } } }
第八步:TestMybatis 类
package com.vic.test; import static org.junit.Assert.*; import java.util.List; import org.junit.Test; import com.vic.dao.ContactDAO; import com.vic.model.Contact; /** * Date: 2014-07-16 * @author Vic * */ public class TestMybatis { ContactDAO contactDAO = new ContactDAO(); @Test public void test() { fail("Not yet implemented"); } /** * 向数据库中插入一条数据 */ @Test public void insertTest(){ Contact contact = new Contact(); contact.setEmail("vicTest@test.com"); contact.setName("vicTest"); contact.setPhone("(111) 111-111"); contactDAO.insert(contact); } /** * 查询所有的记录 */ @Test public void selectAllTest(){ List<Contact> list = contactDAO.selectAll(); for(int i=0;i<list.size();i++){ Contact contact = list.get(i); System.out.println("CONTACT_ID="+contact.getId()+",CONTACT_NAME="+contact.getName()+",CONTACT_EMAIL="+contact.getEmail()+",CONTACT_PHONE="+contact.getPhone()); } } /** * 根据id查询结果 */ @Test public void selectByIdTest(){ Contact contact = contactDAO.selectById(3); System.out.println("CONTACT_ID="+contact.getId()+",CONTACT_NAME="+contact.getName()+",CONTACT_EMAIL="+contact.getEmail()+",CONTACT_PHONE="+contact.getPhone()); } /** * 更新id为20的数据 */ @Test public void updateTest(){ Contact contact = contactDAO.selectById(20); contact.setEmail("vicTest@test.com"); contact.setName("vicTest"); contact.setPhone("(111) 111-111"); contactDAO.update(contact); } /** * 删除id为1的数据 */ @Test public void deleteTest(){ contactDAO.delete(1); } }
以上就是MyBatis开发的基本框架的搭建:希望对你对我都有帮助:
相关推荐
在本教程"**MyBatis_01_HelloWorld**"中,我们将探索如何使用MyBatis进行基本的数据库操作,实现一个简单的“Hello, World”示例。 首先,我们需要了解MyBatis的核心组件:SqlSessionFactory和SqlSession。...
1、项目摘要:mybatis hello,world demo 2、开发环境:开发工具-->Myeclipse10.0 java环境-->JDK1.6 数据库环境-->Oracle11g Mybatis版本:3.2.2 log4j版本:1.2.17 3、数据库: oracle默认scott数据库 ...
【标题】"mybatis的Helloworld" 在Java开发领域,MyBatis是一个广泛使用的持久层框架,它简化了数据库操作,使开发者能够更方便地进行数据存取。本篇文章将详细解析MyBatis的“Hello World”实例,帮助初学者快速...
在本项目"mybatis的helloworld版"中,我们将探讨Mybatis的基础概念、配置及一个简单的示例。 1. **Mybatis简介**: Mybatis 是由Apache基金会维护的一个开源项目,它消除了几乎所有的JDBC代码和手动设置参数,以及...
3.《尚硅谷_MyBatis_HelloWorld.avi》是一个基础入门实例,通过创建一个简单的项目,演示了Mybatis的基本用法,包括编写Mapper接口和XML配置文件,实现数据的增删改查。 4.《尚硅谷_MyBatis_接口式编程.avi》深入...
在本项目"spring+mybatis的helloworld"中,我们主要关注的是如何使用Spring和MyBatis这两个流行的Java开发框架来构建一个简单的Web应用程序。这个项目以Maven为构建工具,实现了MySQL数据库的插入操作,并利用Log4j...
标题"mybatis-helloworld.zip"表明这是一个关于MyBatis的初级示例项目,通常包含了一个简单的HelloWorld应用程序,用于演示如何在Java项目中集成和使用MyBatis框架。这样的项目对于初学者来说是非常有帮助的,因为它...
10. **HelloWorld示例**: 在这个压缩包的HelloWorld示例中,可能包含了创建数据库表、编写Mapper接口和XML文件、配置MyBatis环境、测试执行SQL等步骤,帮助初学者了解MyBatis的整个工作流程。 总的来说,MyBatis是...
【描述】: "通过Meavn构建工程,创建一个Mybatis的‘HelloWorld’工程"意味着这个压缩包提供了从零开始构建一个简单的Mybatis应用的步骤。Meavn是Maven的拼写错误,Maven是一个流行的Java项目管理工具,用于构建、...
SpringMVC MyBatis 集成 HelloWorld
例如,我们可以在`HelloWorldMapper`接口中声明一个返回`HelloWorld`对象的方法,并在XML文件中编写相应的SQL。 实现步骤如下: 1. **创建数据库表**:创建一个名为`hello_world`的表,包含一个`message`字段。 2...
本资源用于mybatis练习helloworld时需要的jar包,只有log4j-1.2.17.jar、mybatis-3.4.1.jar和mysql-connector-java-5.1.37-bin.jar
本项目"ssm_helloworld02.zip"是一个面向新手的基础教程,旨在帮助初学者了解并掌握如何在实际项目中运用SSM框架进行数据操作,包括增、删、改、查等基本功能。 首先,我们来详细解释SSM框架的核心组成部分: 1. *...
MyBatis是一个优秀的Java持久层框架,它支持...这个HelloWorld示例为后续深入学习MyBatis的各种特性,如动态SQL、关联映射、缓存等,打下了坚实的基础。通过实践,你可以更好地理解和掌握MyBatis这一强大的持久层框架。
MyBatis是一个优秀的Java持久层框架,它支持定制化SQL、存储过程以及高级映射。在本示例中,我们将不使用Mapper接口来演示如何通过MyBatis进行基本的数据库查询,这对于理解MyBatis的核心工作原理是非常有帮助的。 ...
`MyBatis_01_HelloWorld`和`MyBatis_04_DynamicSQL`分别介绍了MyBatis的入门示例和动态SQL。前者可能演示了最基本的MyBatis配置和简单查询,后者则展示了如何利用MyBatis的动态SQL来根据条件灵活生成SQL语句。 `...
1. `public class HelloWorld`:定义一个公共类(public class)名为`HelloWorld`,这是Java中的一个主类。 2. `public static void main(String[] args)`:这是Java程序的主入口点。每个Java应用程序都从`main`方法...
标题 "spring mybatis helloworld" 暗示我们要探讨的是如何在Java环境下使用Spring和MyBatis框架构建一个基础的Hello World应用。Spring是一个全面的、模块化的应用程序框架,而MyBatis则是一个轻量级的持久层框架,...
本教程主要介绍了SpringMVC框架的基础知识,包括开发环境的搭建、基本的HelloWorld示例、方法入参处理、方法返回值处理、常用注解介绍、数据校验、国际化支持、标签库使用、文件上传以及拦截器等功能。 #### 二、...