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,具体看http://blog.csdn.net/MyheartMylove/article/details/79496118
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文档
mybatis之helloworld
SpringMVC MyBatis 集成 HelloWorld
提供完整框架,基于maven,实现mysql插入功能(内涵数据库脚本),log4j输出日志,实现简单事务管理
本资源用于mybatis练习helloworld时需要的jar包,只有log4j-1.2.17.jar、mybatis-3.4.1.jar和mysql-connector-java-5.1.37-bin.jar
MyBatis
通过meavn构建工程,创建一个Mybatis的“Helloworld”工程
由于公司要用mybatis开发就在网上现学的。
mybatis的入门级程序
本博客有零基础入门MyBatis,欢迎关注本博客。
初识MyBatis,创建java工程,练习通过MyBatis添加一条记录到数据库。
MyBatis的HelloWorld案例具体实现步骤、接口式编程的具体实现步骤
mybatis的helloworld小例子。maven工程,但已经把依赖的jar包放到lib目录下,另外也提供了sqlite文件作为数据源。可用来做点小测试,不用从头搭环境。
mybatis不需要声明接口调用xml的helloworld的源码
Maven+SpringMVC的入门级HelloWorld实例,简单了解Maven和SpringMVC整合
NULL 博文链接:https://javastudyeye.iteye.com/blog/2110513
本博客有零基础入门MyBatis,欢迎关注本博客。 本博客有零基础入门MyBatis,欢迎关注本博客。 本博客有零基础入门MyBatis,欢迎关注本博客。