直接上代碼,全部在代碼里講解。
1.實體類
package com.home.entity; /** * 此類是:user實體類 * @author hpc * @2017年1月10日下午9:36:59 */ public class User { private Integer user_id; private String user_name; private String user_pwd; public User(Integer user_id, String user_name, String user_pwd) { super(); this.user_id = user_id; this.user_name = user_name; this.user_pwd = user_pwd; } public Integer getUser_id() { return user_id; } public void setUser_id(Integer user_id) { this.user_id = user_id; } public String getUser_name() { return user_name; } public void setUser_name(String user_name) { this.user_name = user_name; } public String getUser_pwd() { return user_pwd; } public void setUser_pwd(String user_pwd) { this.user_pwd = user_pwd; } @Override public String toString() { return "User [user_id=" + user_id + ", user_name=" + user_name + ", user_pwd=" + user_pwd + "]"; } }
2. 接口注解
package com.home.entityInterface; import org.apache.ibatis.annotations.Delete; import org.apache.ibatis.annotations.Insert; import org.apache.ibatis.annotations.Select; import org.apache.ibatis.annotations.Update; import com.home.entity.User; /** * 此類是:映射關系接口 * @author hpc * @2017年1月11日下午7:09:20 */ public interface UserMapperInterface{ /** * 獲取指定id的User * 當我們調用這個方法的時候就會去執行這一條sql語句, * 這里面要注意點的是: * 傳進來的參數是以對象的形式傳進來的, * 所以取的時候要以對象屬性來取,否則將會報錯. */ @Select("select * from users where user_id=#{user_id}") public User loadUser(User user); /** * 更新user */ @Update("update users set user_name=#{user_name},user_pwd=#{user_pwd} where user_id=#{user_id}") public int updateUser(User user); /** * 刪除user */ @Delete("delete from users where user_id=#{user_id}") public int deleteUser(User user); /** * 插入user */ @Insert("insert into users(user_name,user_pwd) values(#{user_name},#{user_pwd}) ") public int insertUser(User user); }
3.mybatis的配置文件(要和xml配置一樣,都要在mybatis配置文件中注冊)
<?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><!-- 這是mybatis的配置,我們的配置都寫在這里面 --> <properties resource="jdbc.properties"/> <!--properties標簽用於 引入properties文件,在下面屬性中我們要引用到properties中的內容 --> <environments default="development"> <environment id="development"> <transactionManager type="JDBC"/><!-- 事務管理 --> <dataSource type="POOLED"><!-- 數據源 --> <property name="driver" value="${jdbc.driverClass}"/> <!-- 指定哪一個驅動 ,從properties中引用--> <property name="url" value="${jdbc.url}"/> <!-- 指定哪一個鏈接url --> <property name="username" value="${jdbc.user}"/> <!-- 指定哪一個鏈接用戶 --> <property name="password" value="${jdbc.password}"/> <!-- 指定哪一個鏈接密碼 --> </dataSource> </environment> </environments> <!-- 注冊映射關系文件 --> <mappers> <!-- 這是我們上次注冊映射關系配置文件的方式,這是以xml文件配置的方式注冊的 --> <!-- <mapper resource="com/home/entity/userMapper.xml"/> --> <!-- 這次我們以接口的方式注入 ,所有的sql語句已經在接口的方法上寫好了,就沒必要在寫 配置文件了--> <mapper class="com.home.entityInterface.UserMapperInterface"/> </mappers> </configuration>
4.測試
package com.home.mybatis; import java.io.IOException; import org.apache.ibatis.session.SqlSession; import com.home.entity.User; import com.home.entityInterface.UserMapperInterface; import com.home.mybatis.utils.SessionUtils; public class TestApp { public static void main(String[] args) throws IOException { // 我將獲取session的代碼封裝成了一個工具類,直接用工具類來獲取session SqlSession session = SessionUtils.getSession("mybatis.xml"); // 通過接口,直接使用session.getMapper(接口.class);獲取到接口 UserMapperInterface mapper = session.getMapper(UserMapperInterface.class); // 再調用接口的方法,去執行接口所注解的sql語句 System.out.println(mapper.insertUser(new User(null,"mh", "123"))); System.out.println(mapper.updateUser(new User(3, "hpc", "123"))); System.out.println(mapper.deleteUser(new User(3, null, null))); System.out.println(mapper.loadUser(new User(1, null, null))); // 將數據屬性到數據中去 session.commit(); // 關閉session session.close(); } }
5.結果