一.前言:下班时间学学mybatis。
什么是mybatis:MyBatis 是支持普通 SQL查询,存储过程和高级映射的优秀持久层框架;只要记住它能让我们用很少的代码去完成增删改查就OK了。
1.使用mybatis第一步就是下载所需要的jar和数据库驱动相关的jar;
2.创建web项目,在src下添加以下mybatis配置文件,名字任意取,我的是conf.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>
<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/test" />
<property name="username" value="root" />
<property name="password" value="shichao" />
</dataSource>
</environment>
</environments>
</configuration>
3.在数据库中创建表
CREATE TABLE `grils` ( `id` int(11) NOT NULL, `name` varchar(100) DEFAULT NULL, `nationality` varchar(100) DEFAULT NULL, PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8
4.我的目录结构是
创建于数据库表对应的类Grils
package domain; public class Grils { private int id; private String name; private String nationality; public int getId() { return id; } public void setId(int id) { this.id = id; } public String getName() { return name; } public void setName(String name) { this.name = name; } public String getNationality() { return nationality; } public void setNationality(String nationality) { this.nationality = nationality; } @Override public String toString() { return "Grils [id=" + id + ", name=" + name + ", nationality=" + nationality + "]"; } }
5.创建映射文件grilsMapper.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="mapping.grilsMapper"> <select id="getGril" parameterType="int" resultType="domain.Grils"> select * from grils where id=#{id} </select> </mapper>
6.在conf.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>
<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/test" />
<property name="username" value="root" />
<property name="password" value="shichao" />
</dataSource>
</environment>
</environments>
<mappers><!--指定映射文件或者类 -->
<mapper resource="mapping/grilsMapper.xml"/>
</mappers>
</configuration>
7.创建测试类GrilsTest.java
package test; import java.io.InputStream; import org.apache.ibatis.session.SqlSession; import org.apache.ibatis.session.SqlSessionFactory; import org.apache.ibatis.session.SqlSessionFactoryBuilder; import domain.Grils; public class GrilsTest { public static void main(String[] args) { String resource = "conf.xml"; InputStream in = GrilsTest.class.getClassLoader().getResourceAsStream(resource); //创建SqlSessionFactory SqlSessionFactory sessionFactory = new SqlSessionFactoryBuilder().build(in); //获取SqlSession SqlSession session = sessionFactory.openSession(); //执行查询 Grils gril = session.selectOne("mapping.grilsMapper.getGril",1); System.out.println(gril); } }
8.打印结果为Grils [id=1, name=苍井空, nationality=日本]
需要自己往数据库中添加数据,否则查询结果为null。
就这样,测试通过代表mybatis搭建成功了!
二.但是在开发过程中最好的方式是以接口的方式来编程
1.在src下创建mapper包用来装接口
创建接口GrilsMapper
package mapper; import domain.Grils; public interface GrilsMapper { //这个方法名必须与映射文件的ID相同!!! public Grils getGril(int id); }
注意:①接口中的方法名必须与映射文件grilsMapper.xml中<select id="getGril" parameterType="int" resultType="domain.Grils"> id是一致的!
②用接口的方式编程需要修改grilsMapper.xml中的<mapper namespace="mapper.GrilsMapper">,改成对应接口的就ok了!
2.创建测试类GrilsTest2
package test; import java.io.InputStream; import org.apache.ibatis.session.SqlSession; import org.apache.ibatis.session.SqlSessionFactory; import org.apache.ibatis.session.SqlSessionFactoryBuilder; import domain.Grils; import mapper.GrilsMapper; public class GrilsTest2 { public static void main(String[] args) { String resource = "conf.xml"; InputStream in = GrilsTest.class.getClassLoader().getResourceAsStream(resource); //创建SqlSessionFactory SqlSessionFactory sessionFactory = new SqlSessionFactoryBuilder().build(in); SqlSession sqlSession = sessionFactory.openSession(); GrilsMapper grilsMapper = sqlSession.getMapper(GrilsMapper.class); Grils gril = grilsMapper.getGril(1); System.out.println(gril); } }
就能得到Grils [id=1, name=苍井空, nationality=日本]
原文:http://www.cnblogs.com/shichaohome/p/5103578.html