mybatis學習使用2簡單增刪改查
阿新 • • 發佈:2018-11-07
mybatis的增刪改查程式碼如下demo:
User.java
package com.rookie.bigdata.domain; import lombok.Data; import java.io.Serializable; /** * @author * @date 2018/10/21 */ //Data註解可以省略get和set方法 @Data public class User implements Serializable{ // 使用者標識 private Integer id; // 使用者姓名 private String name;View Code// 使用者性別 private String sex; // 使用者年齡 private Integer age; // 無引數構造器 public User() { super(); } // 有引數構造器 public User( String name, String sex, Integer age) { super(); this.name = name; this.sex = sex; this.age = age; } }
UserMapper.java
package com.rookie.bigdata.mapper; import com.rookie.bigdata.domain.User; /** * @author * @date 2018/10/21 */ public interface UserMapper { void save(User user); void saveUser(User user); User selectUser(Integer id); void updateUser(User user);void deleteUser(Integer id); }
UserMapper.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.rookie.bigdata.mapper.UserMapper"> <insert id="save" parameterType="com.rookie.bigdata.domain.User" useGeneratedKeys="true"> INSERT INTO BS_USER(name,sex,age) VALUES(#{name},#{sex},#{age}) </insert> <!-- parameterType="user"表示該插入語句需要一個user物件作為引數 useGeneratedKeys="true"表示使用自動增長的主鍵,即使用JDBC的getGeeratedKeys方法獲取由資料庫生瘡內部生成的主鍵,預設為false keyProperty唯一標記的一個屬性,mybatis會通過getGerneratedKeys的返回值設定它的鍵值--> <insert id="saveUser" parameterType="com.rookie.bigdata.domain.User" useGeneratedKeys="true" keyProperty="id"> INSERT INTO BS_USER(name,sex,age) VALUES(#{name},#{sex},#{age}) </insert> <!-- select操作 parameterType="int"表示該查詢語句需要一個int型別的引數 resultType="com.rookie.bigdata.domain.User"表示返回的是一個user物件 --> <select id="selectUser" parameterType="int" resultType="com.rookie.bigdata.domain.User"> SELECT * FROM BS_USER WHERE id = #{id} </select> <!-- update操作 parameterType="com.rookie.bigdata.domain.User"表示該更新語句需要一個user物件作為引數--> <update id="updateUser" parameterType="com.rookie.bigdata.domain.User"> UPDATE BS_USER SET name = #{name},sex = #{sex},age = #{age} WHERE id = #{id} </update> <!-- delete操作 parameterType="int"表示該查詢語句需要一個int型別的引數--> <delete id="deleteUser" parameterType="int"> DELETE FROM BS_USER WHERE id = #{id} </delete> </mapper>
mybatis-config.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"> <!-- XML 配置檔案包含對 MyBatis 系統的核心設定 --> <configuration> <!-- <typeAliases> <typeAlias alias="user" type="com.rookie.bigdata.domain.User"/> </typeAliases>--> <environments default="mysql"> <!-- 環境配置,即連線的資料庫。 --> <environment id="mysql"> <!-- 指定事務管理型別,type="JDBC"指直接簡單使用了JDBC的提交和回滾設定 --> <transactionManager type="JDBC"/> <!-- dataSource指資料來源配置,POOLED是JDBC連線物件的資料來源連線池的實現。 --> <dataSource type="POOLED"> <property name="driver" value="com.mysql.jdbc.Driver"/> <property name="url" value="jdbc:mysql://127.0.0.1:3306/mybatis"/> <property name="username" value="root"/> <property name="password" value="root"/> </dataSource> </environment> </environments> <!-- mappers告訴了MyBatis去哪裡找持久化類的對映檔案 --> <mappers> <mapper resource="mapper/UserMapper.xml"/> </mappers> </configuration>
測試程式碼UserMapperTest.java
package com.rookie.bigdata.mapper; import com.rookie.bigdata.domain.User; import org.apache.ibatis.annotations.Mapper; 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 org.junit.Before; import org.junit.Test; import java.io.IOException; import java.io.InputStream; /** * @author * @date 2018/10/21 */ public class UserMapperTest { public SqlSession session; @Before public void before() throws IOException { // 讀取mybatis-config.xml檔案 InputStream inputStream = Resources.getResourceAsStream("mybatis-config.xml"); // 初始化mybatis,建立SqlSessionFactory類的例項 SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder() .build(inputStream); // 建立Session例項 session = sqlSessionFactory.openSession(); } @Test public void saveUser() throws Exception { UserMapper mapper = session.getMapper(UserMapper.class); mapper.saveUser(new User("zhangsan","男",23)); session.commit(); // 關閉Session session.close(); } @Test public void selectUser() throws Exception { UserMapper mapper = session.getMapper(UserMapper.class); User user = mapper.selectUser(5); // 提交事務 session.commit(); // 關閉Session session.close(); System.out.println(user); } @Test public void updateUser() throws Exception { UserMapper mapper = session.getMapper(UserMapper.class); User user = mapper.selectUser(5); user.setAge(21); mapper.updateUser(user); // 提交事務 session.commit(); // 關閉Session session.close(); System.out.println(user); } @Test public void deleteUser() throws Exception { UserMapper mapper = session.getMapper(UserMapper.class); mapper.deleteUser(5); session.commit(); // 關閉Session session.close(); } }
至此簡單的增刪改查已經全部結束