最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

mybatis實(shí)現(xiàn)增刪改查_動力節(jié)點(diǎn)Java學(xué)院整理

 更新時間:2017年09月05日 10:52:44   投稿:mrr  
本文通過實(shí)例代碼給大家介紹了mybatis實(shí)現(xiàn)增刪改查功能,非常不錯,具有參考借鑒價值,需要的朋友參考下吧

所需要用到的其他工具或技術(shù):

項目管理工具 : Maven

測試運(yùn)行工具 : Junit

數(shù)據(jù)庫 : Derby

Maven Dependencies:

<dependencies> 
    <dependency> 
      <groupId>org.mybatis</groupId> 
      <artifactId>mybatis</artifactId> 
      <version>3.2.7</version> 
    </dependency> 
    <dependency> 
      <groupId>junit</groupId> 
      <artifactId>junit</artifactId> 
      <version>4.9</version> 
      <scope>test</scope> 
    </dependency> 
    <dependency> 
      <groupId>org.apache.derby</groupId> 
      <artifactId>derby</artifactId> 
      <version>10.10.2.0</version> 
    </dependency> 
    <dependency> 
      <groupId>org.apache.derby</groupId> 
      <artifactId>derbyclient</artifactId> 
      <version>10.10.2.0</version> 
    </dependency> 
  </dependencies> 

SQL 建表及數(shù)據(jù)插入(沿用前兩節(jié)中的數(shù)據(jù)庫表及數(shù)據(jù)):

CREATE TABLE USER_TEST_TB(  
ID INT PRIMARY KEY,  
USERNAME VARCHAR(20) NOT NULL,  
PASSWORD VARCHAR(20) NOT NULL,  
NICKNAME VARCHAR(20) NOT NULL  
);    
INSERT INTO USER_TEST_TB VALUES(1,'1st','111','Jack');  
INSERT INTO USER_TEST_TB VALUES(2,'2nd','222','Rose');  
INSERT INTO USER_TEST_TB VALUES(3,'3rd','333','Will');  

Mybatis配置文件 src/main/resource源目錄下

test-mybatis-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> 
  <properties> 
    <property name="driver" value="org.apache.derby.jdbc.ClientDriver" /> 
    <property name="url" 
      value="jdbc:derby://localhost:1527/bjpowernode;create=true" /> 
  </properties> 
  <environments default="development"> 
    <environment id="development"> 
      <transactionManager type="JDBC" /> 
      <dataSource type="POOLED"> 
        <property name="driver" value="${driver}" /> 
        <property name="url" value="${url}" /> 
      </dataSource> 
    </environment> 
  </environments> 
  <mappers> 
    <mapper resource="com/bjpowernode/practice/UserMapper.xml" / 
  </mappers> 
</configuration>  

 User.java對象類(src/main/java/com/bjpowernode/practice目錄下)

package com.bjpowernode.practice;  
public class User 
{ 
  private Integer id; 
  private String username; 
  private String password; 
  private String nickname; 
  public Integer getId() 
  { 
    return id; 
  } 
  public void setId(Integer id) 
  { 
    this.id = id; 
  } 
  public String getUsername() 
  { 
    return username; 
  } 
  public void setUsername(String username) 
  { 
    this.username = username; 
  } 
  public String getPassword() 
  { 
    return password; 
  } 
  public void setPassword(String password) 
  { 
    this.password = password; 
  } 
  public String getNickname() 
  { 
    return nickname; 
  } 
  public void setNickname(String nickname) 
  { 
    this.nickname = nickname; 
  } 
} 

UserMapper.xml  Mapper文件(src/main/java/com.bjpowernode.practice目錄下)

<?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.bjpowernode.practice.UserMapper"> 
  <!-- 查詢 --> 
  <select id="getUser" resultType="com.bjpowernode.practice.User"> 
    select * 
    from USER_TEST_TB 
  </select> 
  <!-- 插入 --> 
  <insert id="insertUser"> 
    insert into  
      USER_TEST_TB  
    values(#{id},#{username},#{password},#{nickname}) 
  </insert> 
  <!-- 更改 --> 
  <update id="updateUser"> 
    update USER_TEST_TB set 
      USERNAME = #{username}, 
      PASSWORD = #{password}, 
      NICKNAME = #{nickname} 
    where ID = #{id} 
  </update> 
  <!-- 刪除 --> 
  <delete id="deleteUser"> 
    delete from USER_TEST_TB WHERE ID=#{id} 
  </delete> 
</mapper>  

UserMapper.java Mapper類(src/main/java/com.bjpowernode.practice目錄下)

package com.bjpowernode.practice; 
import java.util.List; 
public interface UserMapper 
{ 
  public List<User> getUser(); 
  public void insertUser(User user); 
  public void updateUser(User user); 
  public void deleteUser(int userId); 
} 

測試類TestMyBatis.java(src/test/java/com.bjpowernode.practice目錄下)

package com.bjpowernode.practice;  
import java.io.InputStream; 
import java.text.MessageFormat; 
import java.util.List; 
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; 
public class TestMyBatis 
{ 
  private String source; 
  private InputStream inputStream; 
  private SqlSessionFactory sqlSessionFactory; 
  @Before 
  public void setUp() 
  { 
    /** 
     * 準(zhǔn)備Mybatis運(yùn)行環(huán)境 
     */ 
    source = "test-mybatis-configuration.xml"; 
    inputStream = TestMyBatis.class.getClassLoader().getResourceAsStream(source); 
    sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream); 
  } 
  @Test 
  public void testGet() 
  { 
    try 
    { 
      // 獲取Session連接 
      SqlSession session = sqlSessionFactory.openSession(); 
      // 獲取Mapper 
      UserMapper userMapper = session.getMapper(UserMapper.class); 
      // 顯示User信息 
      System.out.println("Test Get start..."); 
      this.printUsers(userMapper.getUser()); 
      System.out.println("Test Get finished..."); 
    } 
    catch (Exception e) 
    { 
      e.printStackTrace(); 
    } 
  } 
  @Test 
  public void testInsert() 
  { 
    try 
    { 
      // 獲取Session連接 
      SqlSession session = sqlSessionFactory.openSession(); 
      // 獲取Mapper 
      UserMapper userMapper = session.getMapper(UserMapper.class); 
      System.out.println("Test insert start..."); 
      // 顯示插入之前User信息 
      System.out.println("Before insert"); 
      this.printUsers(userMapper.getUser()); 
      // 執(zhí)行插入 
      userMapper.insertUser(this.mockUser("FREU_INS_USER", "BJPOWERNODE_INS_PASS", "BJPOWERNODE_INS_NICK")); 
      // 提交事務(wù) 
      session.commit(); 
      // 顯示插入之后User信息 
      System.out.println("\r\nAfter insert"); 
      this.printUsers(userMapper.getUser()); 
      System.out.println("Test insert finished..."); 
    } 
    catch (Exception e) 
    { 
      e.printStackTrace(); 
    } 
  } 
  @Test 
  public void testUpdate() 
  { 
    try 
    { 
      // 獲取Session連接 
      SqlSession session = sqlSessionFactory.openSession(); 
      // 獲取Mapper 
      UserMapper userMapper = session.getMapper(UserMapper.class); 
      System.out.println("Test update start..."); 
      // 顯示更新之前User信息 
      System.out.println("Before update"); 
      this.printUsers(userMapper.getUser()); 
      // 執(zhí)行更新 
      userMapper.updateUser(this.mockUser("FREU_UPD_USER", "BJPOWERNODE_UPD_PASS", "BJPOWERNODE_UPD_NICK")); 
      // 提交事務(wù) 
      session.commit(); 
      // 顯示更新之后User信息 
      System.out.println("\r\nAfter update"); 
      this.printUsers(userMapper.getUser()); 
      System.out.println("Test update finished..."); 
    } 
    catch (Exception e) 
    { 
      e.printStackTrace(); 
    } 
  } 
  @Test 
  public void testDelete() 
  { 
    try 
    { 
      // 獲取Session連接 
      SqlSession session = sqlSessionFactory.openSession(); 
      // 獲取Mapper 
      UserMapper userMapper = session.getMapper(UserMapper.class); 
      System.out.println("Test delete start..."); 
      // 顯示刪除之前User信息 
      System.out.println("Before delete"); 
      this.printUsers(userMapper.getUser()); 
      // 執(zhí)行刪除 
      userMapper.deleteUser(this.mockUser(null, null, null).getId()); 
      // 提交事務(wù) 
      session.commit(); 
      // 顯示刪除之后User信息 
      System.out.println("\r\nAfter delete"); 
      this.printUsers(userMapper.getUser()); 
      System.out.println("Test delete finished..."); 
    } 
    catch (Exception e) 
    { 
      e.printStackTrace(); 
    } 
  } 
  /** 
   * 
   * 組裝一個User對象 
   * 
   * @return 
   */ 
  public User mockUser(String username, String password, String nickname) 
  { 
    User user = new User(); 
    user.setId(10); 
    user.setUsername(username); 
    user.setPassword(password); 
    user.setNickname(nickname); 
    return user; 
  } 
  /** 
   * 
   * 打印用戶信息到控制臺 
   * 
   * @param users 
   */ 
  private void printUsers(final List<User> users) 
  { 
    int count = 0; 
    for (User user : users) 
    { 
      System.out.println(MessageFormat.format("==User[{0}]=================", ++count)); 
      System.out.println("User Id: " + user.getId()); 
      System.out.println("User UserName: " + user.getUsername()); 
      System.out.println("User Password: " + user.getPassword()); 
      System.out.println("User nickname: " + user.getNickname()); 
    } 
  } 
} 

總結(jié)

以上所述是小編給大家介紹的mybatis實(shí)現(xiàn)增刪改查_動力節(jié)點(diǎn)Java學(xué)院整理,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復(fù)大家的。在此也非常感謝大家對腳本之家網(wǎng)站的支持!

相關(guān)文章

  • Java8新的異步編程方式CompletableFuture實(shí)現(xiàn)

    Java8新的異步編程方式CompletableFuture實(shí)現(xiàn)

    這篇文章主要介紹了Java8新的異步編程方式CompletableFuture實(shí)現(xiàn),小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2019-04-04
  • Spring Boot2讀取配置常用方法代碼實(shí)例

    Spring Boot2讀取配置常用方法代碼實(shí)例

    這篇文章主要介紹了Spring Boot2讀取配置常用方法代碼實(shí)例,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2020-11-11
  • Java如何獲取當(dāng)前進(jìn)程ID以及所有Java進(jìn)程的進(jìn)程ID

    Java如何獲取當(dāng)前進(jìn)程ID以及所有Java進(jìn)程的進(jìn)程ID

    本篇文章主要介紹了Java如何獲取當(dāng)前進(jìn)程ID以及所有Java進(jìn)程的進(jìn)程ID,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-06-06
  • 詳細(xì)談?wù)凧ava中l(wèi)ong和double的原子性

    詳細(xì)談?wù)凧ava中l(wèi)ong和double的原子性

    原子性是指一個操作或多個操作要么全部執(zhí)行,且執(zhí)行的過程不會被任何因素打斷,要么就都不執(zhí)行,下面這篇文章主要給大家介紹了關(guān)于Java中l(wèi)ong和double原子性的相關(guān)資料,需要的朋友可以參考下
    2021-08-08
  • 一文教你搞定Java Optional類判空操作

    一文教你搞定Java Optional類判空操作

    有時項目組內(nèi)做code review,會充斥著大量的、原始的、丑陋的判空語句。讓整體的代碼顯得十分的臃腫龐大丑陋,那么怎么辦呢?利用Optional這個jdk8中引入的類就可以優(yōu)雅的處理,現(xiàn)在我們來詳細(xì)講解下這個類的使用和源碼
    2022-10-10
  • Java的設(shè)計模式之代理模式使用詳解

    Java的設(shè)計模式之代理模式使用詳解

    這篇文章主要介紹了Java的設(shè)計模式之代理模式使用詳解,代理模式是23種設(shè)計模式之一,它關(guān)心的主要是過程,而不是結(jié)果,代理模式主要提供了對目標(biāo)對象的間接訪問方式,即通過代理對象來訪問目標(biāo)對象,需要的朋友可以參考下
    2024-01-01
  • Java反射 Field類的使用全方位解析

    Java反射 Field類的使用全方位解析

    這篇文章主要介紹了Java反射 Field類的使用全方位解析,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2021-04-04
  • Java面向?qū)ο笾饔糜蛟敿?xì)解讀

    Java面向?qū)ο笾饔糜蛟敿?xì)解讀

    這篇文章主要介紹了Java面向?qū)ο笾饔糜蛟敿?xì)解讀,在java編程中,主要的變量就是屬性和局部變量,局部變量一般是指在成員方法中定義的變量,局部變量也就是除了屬性之外的其他變量,作用域?yàn)槎x他的代碼塊中,需要的朋友可以參考下
    2024-01-01
  • SpringBoot測試之高級配置方式

    SpringBoot測試之高級配置方式

    這篇文章主要介紹了SpringBoot測試之高級配置方式,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2024-04-04
  • spring聲明式事務(wù)@Transactional開發(fā)常犯的幾個錯誤及最新解決方案

    spring聲明式事務(wù)@Transactional開發(fā)常犯的幾個錯誤及最新解決方案

    使用聲明式事務(wù)@Transactional進(jìn)行事務(wù)一致性的管理,在開發(fā)過程中,發(fā)現(xiàn)很多開發(fā)同學(xué)都用錯了spring聲明式事務(wù)@Transactional或使用不規(guī)范,導(dǎo)致出現(xiàn)各種事務(wù)問題,這篇文章主要介紹了spring聲明式事務(wù)@Transactional開發(fā)常犯的幾個錯誤及解決辦法,需要的朋友可以參考下
    2024-02-02

最新評論

尚义县| 巴马| 铜梁县| 土默特右旗| 安福县| 逊克县| 苏尼特右旗| 房产| 花垣县| 沙坪坝区| 静海县| 玉环县| 乌鲁木齐市| 沙洋县| 米泉市| 莫力| 漳浦县| 兴和县| 南京市| 吴江市| 吴忠市| 金溪县| 安平县| 堆龙德庆县| 霍州市| 中宁县| 五指山市| 府谷县| 五指山市| 汶上县| 台江县| 乐平市| 北川| 普安县| 普陀区| 八宿县| 阿拉善盟| 韶山市| 清苑县| 鄱阳县| 罗田县|