您的位置:首页 > 数据库 > MySQL

Mybatis学习之入门篇

2014-04-25 16:53 197 查看
这是一个简答的例子,用来作为Mybatis的入门。

首先看下项目的目录:



开发步骤:

1、把需要的Mybatis的Jar包,数据库操作的Jar包导入项目中(大家可以看到,本实例中是使用的Mysal数据库);

2、配置数据源 也就是项目中的 configuration.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><!-- 用于为类创建别名 此处我未使用别名-->

</typeAliases>
<!--数据源配置 这块用 MYSQL数据库 -->
<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="root" />
</dataSource>
</environment>
</environments>
<mappers>
<!--userMapper.xml装载进来 同等于把“dao”的实现装载进来 -->
<mapper resource="com/drek/dao/xml/personMapper.xml" />
</mappers>
</configuration>
3、创建实体类 Person.java;
package com.drek.entity;

/**
* 用户实体类
* @author burnell
*
*/
public class Person {
/** 用户ID */
private int id;
/** 姓名 */
private String name;
/** 年龄 */
private int age;
/** 所有订单集合 */

public Person() {
}

public Person(int id, String name, int age) {
super();
this.id = id;
this.name = name;
this.age = age;
}

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 int getAge() {
return age;
}

public void setAge(int age) {
this.age = age;
}

}

4、创建Mapper接口:PersonMapper
package com.drek.dao;

import java.util.List;
import com.drek.entity.Person;

public interface PersonMapper {
List<Person> queryPerson();
}
5、创建dao的实现xml文件:personMapper.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="com.drek.dao.PersonMapper">
<!-- 设置结果集 -->
<resultMap type="com.drek.entity.Person" id="personMap">
<id property="id" column="id" />
<result property="name" column="name" />
<result property="age" column="age" />
</resultMap>
<!-- 书写查询Sql语句:
id值必须与PersonMapper.java中的方法名一致;
resultMap:返回的结果集
resultType: 当返回的数据只有一条时,可以直接设置返回类型,即:com.drek.entity.Person
-->
<select id="queryPerson" resultMap="personMap" >
select * from person
</select>
<!--
上面是查询操作,执行增加、修改、删除操作 Sql语句需要写在
<insert>
增加Sql语句
</insert>
<update>
修改Sql语句
</update>
<delete>
删除SQL语句
</delete>

-->
</mapper> 6、测试类:DBTest.java
package com.drek.test;

import java.io.IOException;
import java.io.Reader;
import java.util.List;

import org.apache.ibatis.io.Resources;
import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;
import org.apache.ibatis.session.SqlSessionFactoryBuilder;

import com.drek.dao.PersonMapper;
import com.drek.entity.Person;

public class DBTest {

public static void main(String[] args) {
//获得SqlSession实例
SqlSession session = getSessionFactory().openSession();
PersonMapper personMapper = session.getMapper(PersonMapper.class);
List<Person> persons = personMapper.queryPerson();
System.out.println(persons.size());
}
/**
* 用来获取SqlSessionFactory实例
* SqlSessionFactory实例用来创建SqlSession
* SqlSession则用来执行数据的增删查改操作
* @return
*/
public static SqlSessionFactory getSessionFactory(){
SqlSessionFactory sessionFactory = null;
String resource = "com/drek/xml/configuration.xml";
try {
//加载资源文件SqlSessionFactory实例
Reader reader = Resources.getResourceAsReader(resource);
sessionFactory = new SqlSessionFactoryBuilder().build(reader);
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return sessionFactory;
}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息