<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                ??碼云GVP開源項目 12k star Uniapp+ElementUI 功能強大 支持多語言、二開方便! 廣告
                [TOC] # 使用 MyBatis 對表執行 CRUD 操作 ## 一、使用 MyBatis 對表執行 CRUD 操作——基于 XML 的實現 ### 1、定義 sql 映射的接口 UserMapper 接口的代碼如下: ~~~ package com.ntqingniao.mybatis.mapping; import java.util.List; import com.ntqingniao.mybatis.entity.User; public interface UserMapper { /** * 增加 * * @param user * @return int */ public int add(User user); /** * 刪除 * * @param id * @return int */ public int deleteById(int id); /** * 更新 * * @param user * @return int */ public int update(User user); /** * 根據id查詢用戶 * * @param id * @return User */ public User getById(int id); /** * 查詢所有用戶 * * @return List<User> */ public List<User> getAll(); } ~~~ 需要說明的是,我們不需要針對 UserMapper 接口去編寫具體的實現類代碼,這個具體的實現類由 MyBatis 幫我們動態構建出來,我們只需要直接拿來使用即可。 ### 2、定義 sql 映射 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,namespace的值習慣上設置成包名+sql映射文件名,這樣就能夠保證namespace的值是唯一的 例如namespace="com.ntqingniao.mybatis.mapping.UserMapper"就是com.ntqingniao.mybatis.mapping(包名)+UserMapper(UserMapper.java文件去除后綴) --> <mapper namespace="com.ntqingniao.mybatis.mapping.UserMapper"> <!-- 在select標簽中編寫查詢的SQL語句, 設置select標簽的id屬性為getUser,id屬性值必須是唯一的,不能夠重復.使用parameterType屬性指明查詢時使用的參數類型,resultType屬性指明查詢返回的結果集類型 resultType="com.ntqingniao.mybatis.entity.User"就表示將查詢結果封裝成一個User類的對象返回 User類就是users表所對應的實體類 --> <!-- 根據id查詢得到一個user對象 --> <select id="getById" parameterType="int" resultType="com.ntqingniao.mybatis.entity.User"> select * from users where id=#{id} </select> <!-- 創建用戶(Create) --> <insert id="add" parameterType="com.ntqingniao.mybatis.entity.User"> insert into users(name,age) values(#{name},#{age}) </insert> <!-- 刪除用戶(Remove) --> <delete id="deleteById" parameterType="int"> delete from users where id=#{id} </delete> <!-- 修改用戶(Update) --> <update id="update" parameterType="com.ntqingniao.mybatis.entity.User"> update users set name=#{name},age=#{age} where id=#{id} </update> <!-- 查詢全部用戶 --> <select id="getAll" resultType="com.ntqingniao.mybatis.entity.User"> select * from users </select> </mapper> ~~~ ### 3.測試類代碼如下: ~~~ package com.ntqingniao.mybatis.test; import java.io.IOException; import java.io.InputStream; import java.io.Reader; import java.util.ArrayList; 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.ntqingniao.mybatis.entity.User; import com.ntqingniao.mybatis.mapping.UserMapper; public class Test { public static void main(String[] args) throws IOException { // mybatis的配置文件 String resource = "conf.xml"; // 使用類加載器加載mybatis的配置文件(它也加載關聯的映射文件) InputStream is = Test.class.getClassLoader().getResourceAsStream( resource); // 構建sqlSession的工廠 SqlSessionFactory sessionFactory = new SqlSessionFactoryBuilder() .build(is); // 使用MyBatis提供的Resources類加載mybatis的配置文件(它也加載關聯的映射文件) // Reader reader = Resources.getResourceAsReader(resource); // 構建sqlSession的工廠 // SqlSessionFactory sessionFactory = new // SqlSessionFactoryBuilder().build(reader); // 創建能執行映射文件中sql的sqlSession SqlSession session = sessionFactory.openSession(); // 通過getMapper()方法獲取UserMapper接口 UserMapper userMapper = session.getMapper(UserMapper.class); User user = new User(); /** 新增用戶信息 **/ user.setName("test001"); user.setAge(22); userMapper.add(user); /** 根據id,查詢用戶信息 **/ // 執行查詢操作,將查詢結果自動封裝成User返回 user = userMapper.getById(2); System.out.println(user.getName()); /** 根據id,更新用戶信息 **/ user.setId(2); user.setName("李四"); user.setAge(26); userMapper.update(user); /** 根據id,刪除用戶信息 **/ userMapper.deleteById(8); /** 查詢所有的用戶 **/ List<User> userList = new ArrayList<User>(); // 執行查詢操作,將查詢結果自動封裝成List<User>返回 userList = userMapper.getAll(); for (User user2 : userList) { System.out.println(user2); } // 增刪改操作時,要執行commit操作 session.commit(); // 使用SqlSession執行完SQL之后需要關閉SqlSession session.close(); } } ~~~ ## 二、使用 MyBatis 對表執行 CRUD 操作——基于注解的實現 ### 1、定義 sql 映射的接口 UserMapper2 接口的代碼如下: ~~~ package com.ntqingniao.mybatis.mapping; import java.util.List; import org.apache.ibatis.annotations.*; import com.ntqingniao.mybatis.entity.User; public interface UserMapper2 { /** * 增加 * * @param user * @return int */ @Insert("insert into users(name, age) values(#{name}, #{age})") public int add(User user); /** * 刪除 * * @param id * @return int */ @Delete("delete from users where id=#{id}") public int deleteById(int id); /** * 更新 * * @param user * @return int */ @Update("update users set name=#{name},age=#{age} where id=#{id}") public int update(User user); /** * 根據id查詢用戶 * * @param id * @return User */ @Select("select * from users where id=#{id}") public User getById(int id); /** * 查詢所有用戶 * * @return List<User> */ @Select("select * from users") public List<User> getAll(); } ~~~ 需要說明的是,我們不需要針對UserMapperI接口去編寫具體的實現類代碼,這個具體的實現類由MyBatis幫我們動態構建出來,我們只需要直接拿來使用即可。 ### 2、在 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/mybatis_test?useUnicode=true&amp;characterEncoding=UTF-8" /> <property name="username" value="root" /> <property name="password" value="" /> </dataSource> </environment> </environments> <mappers> <!-- 注冊UserMapper映射接口 --> <mapper class="com.ntqingniao.mybatis.mapping.UserMapper2" /> </mappers> </configuration> ~~~ ### 3、測試類的代碼如下: ~~~ package com.ntqingniao.mybatis.test; import java.io.IOException; import java.io.InputStream; import java.util.ArrayList; import java.util.List; import org.apache.ibatis.session.SqlSession; import org.apache.ibatis.session.SqlSessionFactory; import org.apache.ibatis.session.SqlSessionFactoryBuilder; import com.ntqingniao.mybatis.entity.User; import com.ntqingniao.mybatis.mapping.UserMapper2; public class Test { public static void main(String[] args) throws IOException { // mybatis的配置文件 String resource = "conf.xml"; // 使用類加載器加載mybatis的配置文件(它也加載關聯的映射文件) InputStream is = Test.class.getClassLoader().getResourceAsStream( resource); // 構建sqlSession的工廠 SqlSessionFactory sessionFactory = new SqlSessionFactoryBuilder() .build(is); // 使用MyBatis提供的Resources類加載mybatis的配置文件(它也加載關聯的映射文件) // Reader reader = Resources.getResourceAsReader(resource); // 構建sqlSession的工廠 // SqlSessionFactory sessionFactory = new // SqlSessionFactoryBuilder().build(reader); // 創建能執行映射文件中sql的sqlSession SqlSession session = sessionFactory.openSession(); // 通過getMapper()方法獲取UserMapper接口 UserMapper2 userMapper = session.getMapper(UserMapper2.class); User user = new User(); /** 新增用戶信息 **/ user.setName("test001"); user.setAge(22); userMapper.add(user); /** 根據id,查詢用戶信息 **/ user = userMapper.getById(2); System.out.println(user.getName()); /** 根據id,更新用戶信息 **/ user.setId(2); user.setName("李四"); user.setAge(26); userMapper.update(user); /** 根據id,刪除用戶信息 **/ userMapper.deleteById(8); /** 查詢所有的用戶 **/ List<User> userList = new ArrayList<User>(); userList = userMapper.getAll(); for (User user2 : userList) { System.out.println(user2); } // 增刪改操作時,要執行commit操作 session.commit(); // 使用SqlSession執行完SQL之后需要關閉SqlSession session.close(); } } ~~~
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看