`

mybatis_helloworld

 
阅读更多

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开发的基本框架的搭建:希望对你对我都有帮助:

  • 大小: 128.7 KB
分享到:
评论

相关推荐

    MyBatis_01_HelloWorld

    在本教程"**MyBatis_01_HelloWorld**"中,我们将探索如何使用MyBatis进行基本的数据库操作,实现一个简单的“Hello, World”示例。 首先,我们需要了解MyBatis的核心组件:SqlSessionFactory和SqlSession。...

    Mybatis Hello World Demo

    1、项目摘要:mybatis hello,world demo 2、开发环境:开发工具--&gt;Myeclipse10.0 java环境--&gt;JDK1.6 数据库环境--&gt;Oracle11g Mybatis版本:3.2.2 log4j版本:1.2.17 3、数据库: oracle默认scott数据库 ...

    mybatis的Helloworld

    【标题】"mybatis的Helloworld" 在Java开发领域,MyBatis是一个广泛使用的持久层框架,它简化了数据库操作,使开发者能够更方便地进行数据存取。本篇文章将详细解析MyBatis的“Hello World”实例,帮助初学者快速...

    mybatis的helloworld版

    在本项目"mybatis的helloworld版"中,我们将探讨Mybatis的基础概念、配置及一个简单的示例。 1. **Mybatis简介**: Mybatis 是由Apache基金会维护的一个开源项目,它消除了几乎所有的JDBC代码和手动设置参数,以及...

    尚硅谷Mybatis视频教程1-10

    3.《尚硅谷_MyBatis_HelloWorld.avi》是一个基础入门实例,通过创建一个简单的项目,演示了Mybatis的基本用法,包括编写Mapper接口和XML配置文件,实现数据的增删改查。 4.《尚硅谷_MyBatis_接口式编程.avi》深入...

    spring+mybatis的helloworld项目

    在本项目"spring+mybatis的helloworld"中,我们主要关注的是如何使用Spring和MyBatis这两个流行的Java开发框架来构建一个简单的Web应用程序。这个项目以Maven为构建工具,实现了MySQL数据库的插入操作,并利用Log4j...

    mybatis-helloworld.zip

    标题"mybatis-helloworld.zip"表明这是一个关于MyBatis的初级示例项目,通常包含了一个简单的HelloWorld应用程序,用于演示如何在Java项目中集成和使用MyBatis框架。这样的项目对于初学者来说是非常有帮助的,因为它...

    MyBatis-HelloWorld.zip

    10. **HelloWorld示例**: 在这个压缩包的HelloWorld示例中,可能包含了创建数据库表、编写Mapper接口和XML文件、配置MyBatis环境、测试执行SQL等步骤,帮助初学者了解MyBatis的整个工作流程。 总的来说,MyBatis是...

    mybatis_demo.zip

    【描述】: "通过Meavn构建工程,创建一个Mybatis的‘HelloWorld’工程"意味着这个压缩包提供了从零开始构建一个简单的Mybatis应用的步骤。Meavn是Maven的拼写错误,Maven是一个流行的Java项目管理工具,用于构建、...

    SpringMVC MyBatis 集成 HelloWorld

    SpringMVC MyBatis 集成 HelloWorld

    mybatis之helloworld

    例如,我们可以在`HelloWorldMapper`接口中声明一个返回`HelloWorld`对象的方法,并在XML文件中编写相应的SQL。 实现步骤如下: 1. **创建数据库表**:创建一个名为`hello_world`的表,包含一个`message`字段。 2...

    mybatis练习helloworld需要的jar包

    本资源用于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_helloworld02.zip"是一个面向新手的基础教程,旨在帮助初学者了解并掌握如何在实际项目中运用SSM框架进行数据操作,包括增、删、改、查等基本功能。 首先,我们来详细解释SSM框架的核心组成部分: 1. *...

    《一头扎进MyBatis3》第一讲 MyBatis 版 HelloWorld 实现

    MyBatis是一个优秀的Java持久层框架,它支持...这个HelloWorld示例为后续深入学习MyBatis的各种特性,如动态SQL、关联映射、缓存等,打下了坚实的基础。通过实践,你可以更好地理解和掌握MyBatis这一强大的持久层框架。

    MyBatis的helloworld(不使用Mapper接口实现MyBatis查询数据库).zip

    MyBatis是一个优秀的Java持久层框架,它支持定制化SQL、存储过程以及高级映射。在本示例中,我们将不使用Mapper接口来演示如何通过MyBatis进行基本的数据库查询,这对于理解MyBatis的核心工作原理是非常有帮助的。 ...

    mybatis源码级课件DTD文件jar包xml文件最全最新

    `MyBatis_01_HelloWorld`和`MyBatis_04_DynamicSQL`分别介绍了MyBatis的入门示例和动态SQL。前者可能演示了最基本的MyBatis配置和简单查询,后者则展示了如何利用MyBatis的动态SQL来根据条件灵活生成SQL语句。 `...

    Java_Hello-World-Program.rar_world

    1. `public class HelloWorld`:定义一个公共类(public class)名为`HelloWorld`,这是Java中的一个主类。 2. `public static void main(String[] args)`:这是Java程序的主入口点。每个Java应用程序都从`main`方法...

    spring mybatis helloworld

    标题 "spring mybatis helloworld" 暗示我们要探讨的是如何在Java环境下使用Spring和MyBatis框架构建一个基础的Hello World应用。Spring是一个全面的、模块化的应用程序框架,而MyBatis则是一个轻量级的持久层框架,...

    Java实训教程 Java软件开发实战 Java开发框架介绍 SpringMVC_2_HelloWorld 共19页.pptx

    本教程主要介绍了SpringMVC框架的基础知识,包括开发环境的搭建、基本的HelloWorld示例、方法入参处理、方法返回值处理、常用注解介绍、数据校验、国际化支持、标签库使用、文件上传以及拦截器等功能。 #### 二、...

Global site tag (gtag.js) - Google Analytics