`

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
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics