当我使用ibatis的时候,它已经叫mybatis了。
官方网站http://code.google.com/p/mybatis/
首先下载mybatis相关jar包。
使用步骤
1、创建configration.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 alias="user" type="test.domain.User"/>
- </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/test"/>
- <property name="username" value="root"/>
- <property name="password" value="mysql"/>
- </dataSource>
- </environment>
- </environments>
- <mappers>
- <mapper resource="test/domain/user.xml"/>
- </mappers>
- </configuration>
2、创建对应的表配置文件,user.xml。配置文件加载的时候是按classpath来的。
- <?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="test.domain.interfaces.UserMapper">
- <!--
- <select id="getUser" parameterType="java.lang.String" resultType="user">
- select * from user where name = #{value}
- </select>
- <insert id="createUser" parameterType="test.domain.User">
- insert into user(name, password) values (#{name}, #{password})
- </insert>
- -->
- </mapper>
本文中加了注释,将在后面解释。
3、创建接口文件UserMapper.Java
- package test.domain.interfaces;
-
- import java.util.List;
-
- import org.apache.ibatis.annotations.Insert;
- import org.apache.ibatis.annotations.Select;
-
- import test.domain.User;
-
- public interface UserMapper {
-
- @Select("select * from user where name = #{value}")
- User getUser(String name);
-
- @Select("select * from user")
- List<User> getUsers();
-
- @Insert("insert into user(name, password) values (#{name}, #{password})")
- void createUser(User user);
- }
这里可以看到使用了标记,效果等同于在user.xml中的设置.
所以步骤2和步骤3中的sql语句只能出现在其中的一个,若同时存在的话,会报错.
4、创建User bean,需要注意的是,bean里面需要有一个默认的无参数的构造函数
5、使用,test
- SqlSessionFactoryBuilder builder = new SqlSessionFactoryBuilder();
- SqlSessionFactory factory = null;
- try {
- factory = builder.build(Resources.getResourceAsReader("configration.xml"));
- SqlSession session = factory.openSession();
-
- UserMapper mapper = session.getMapper(UserMapper.class);
- mapper.createUser(new User("aa", "bb"));
-
- session.commit();
-
- User user = mapper.getUser("111");
- System.out.println(user.toString());
-
- List<User> users = mapper.getUsers();
- for(User u : users)
- System.out.println(u.toString());
-
- session.close();
- } catch (Exception e) {
- e.printStackTrace();
- }
加载configration文件的方式有多种。