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

MyBatis創(chuàng)建存儲(chǔ)過(guò)程的實(shí)例代碼_動(dòng)力節(jié)點(diǎn)Java學(xué)院整理

 更新時(shí)間:2017年09月01日 11:24:23   投稿:mrr  
本節(jié)需要用到的有2部分,第一部分是如何在Derby中創(chuàng)建存儲(chǔ)過(guò)程,第二部分是如何在Mybatis中調(diào)用存儲(chǔ)過(guò)程,具體實(shí)例代碼大家參考下本文吧

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

項(xiàng)目管理工具 : Maven

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

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

本節(jié)需要用到的有2部分,第一部分是如何在Derby中創(chuàng)建存儲(chǔ)過(guò)程,第二部分是如何在Mybatis中調(diào)用存儲(chǔ)過(guò)程

一. 在Derby中創(chuàng)建存儲(chǔ)過(guò)程

在Eclipse中創(chuàng)建一個(gè)新的普通Java項(xiàng)目命名為T(mén)est_Store_Procedure

在com.bjpowernode.practice包下創(chuàng)建一個(gè)Class命名為StoreProcedureOperationClass.class

package com.bjpowernode.practice; 
import java.sql.Connection; 
import java.sql.DriverManager; 
import java.sql.PreparedStatement; 
import java.sql.SQLException; 
/** 
 * 
 * 存儲(chǔ)過(guò)程類(lèi) 
 * 
 * @author Freud 
 * 
 */ 
public class StoreProcedureOperationClass 
{ 
  /** 
   * 
   * 執(zhí)行插入的存儲(chǔ)過(guò)程 
   * 
   * @param id 
   * @param username 
   * @param password 
   * @param nickname 
   * @throws SQLException 
   */ 
  public static void insertData(int id, String username, String password, String nickname) throws SQLException 
  { 
    Connection connection = DriverManager.getConnection("jdbc:default:connection"); 
    PreparedStatement p = 
        connection.prepareStatement("INSERT INTO USER_TEST_TB(ID,USERNAME,PASSWORD,NICKNAME) VALUES(?,?,?,?)"); 
    p.setInt(1, id); 
    p.setString(2, username); 
    p.setString(3, password); 
    p.setString(4, nickname); 
    System.out.println("INSERT VALUES (id=" + id + ",username=" + username + ",password=" + password + ",nickname=" 
        + nickname + ")"); 
    p.executeUpdate(); 
    p.close(); 
    connection.close(); 
  } 
} 

3. 利用jar命令或者Eclipse工具導(dǎo)出到C:\freud\Test_Store_Procedure.jar

4. 在ij命令行中聲明存儲(chǔ)過(guò)程

CREATE PROCEDURE FREUD.INSERT_USER(IN THE_ID INTEGER,  
         IN THE_USERNAME VARCHAR(20), IN THE_PASSWORD VARCHAR(20), IN THE_NICKNAME VARCHAR(20))  
PARAMETER STYLE JAVA MODIFIES SQL DATA LANGUAGE JAVA  
EXTERNAL NAME 'com.bjpowernode.practice.StoreProcedureOperationClass.insertData'; 
 在 ij 控制臺(tái)中調(diào)用call sqlj.install_jar('C:\freud\Test_Store_Procedure.jar', 'FREUD.TEST_SPROCEDURE', 0);將 jar 包導(dǎo)入到 FREUD模式中,并命名為T(mén)EST_SPROCEDURE。

6. 在 ij 控制臺(tái)中調(diào)用call SYSCS_UTIL.SYSCS_SET_DATABASE_PROPERTY('derby.database.classpath', 'FREUD.TEST_SPROCEDURE'); 將 jar 包加入到數(shù)據(jù)庫(kù) classpath 搜索路徑中。

這樣,Derby的存儲(chǔ)過(guò)程就算創(chuàng)建完成了

二.在Mybatis中調(diào)用存儲(chǔ)過(guò)程

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> 

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/freud;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/freud/practice/UserMapper.xml" /> 
  </mappers> 
</configuration>  

User.java對(duì)象類(lèi)(src/main/java/com/freud/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>    
  <!-- 調(diào)用插入的存儲(chǔ)過(guò)程 --> 
  <insert id="insertUser" statementType="CALLABLE"> 
    CALL FREUD.INSERT_USER(#{id},#{username},#{password},#{nickname}) 
  </insert> 
</mapper>  

UserMapper.java Mapper類(lèi)(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); 
 
} 

測(cè)試類(lèi)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 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", "FREUD_INS_PASS", "FREUD_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(); 
    } 
  } 
  /** 
   * 
   * 組裝一個(gè)User對(duì)象 
   * 
   * @return 
   */ 
  public User mockUser(String username, String password, String nickname) 
  { 
    User user = new User(); 
    user.setId(50); 
    user.setUsername(username); 
    user.setPassword(password); 
    user.setNickname(nickname); 
    return user; 
  } 
  /** 
   * 
   * 打印用戶信息到控制臺(tái) 
   * 
   * @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創(chuàng)建存儲(chǔ)過(guò)程的實(shí)例代碼_動(dòng)力節(jié)點(diǎn)Java學(xué)院整理,希望對(duì)大家有所幫助,如果大家有任何疑問(wèn)請(qǐng)給我留言,小編會(huì)及時(shí)回復(fù)大家的。在此也非常感謝大家對(duì)腳本之家網(wǎng)站的支持!

相關(guān)文章

  • mybatis那些約定的配置你真的都了解嗎(經(jīng)驗(yàn)總結(jié))

    mybatis那些約定的配置你真的都了解嗎(經(jīng)驗(yàn)總結(jié))

    mybatsi中Mapper和xml文件之間有很多約定俗稱(chēng)的規(guī)則,比如名稱(chēng)匹配,包掃描,別名等,這些規(guī)則是什么。如果想更加靈活,該如何配置呢?今天就給大家講一下如何配置mybatsi的xml文件
    2021-06-06
  • Java?@Scheduled定時(shí)器用法解析

    Java?@Scheduled定時(shí)器用法解析

    這篇文章主要介紹了Java?@Scheduled定時(shí)器用法解析,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-05-05
  • Java Number類(lèi)原理實(shí)例解析

    Java Number類(lèi)原理實(shí)例解析

    這篇文章主要介紹了Java Number類(lèi)原理解析,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2019-11-11
  • MyBatis-Plus樂(lè)觀鎖插件的用法小結(jié)

    MyBatis-Plus樂(lè)觀鎖插件的用法小結(jié)

    樂(lè)觀鎖很樂(lè)觀,對(duì)任何事情都保持著一個(gè)樂(lè)觀的態(tài)度,認(rèn)為別人不會(huì)修改數(shù)據(jù),所以不會(huì)上鎖,只是在更新數(shù)據(jù)的時(shí)候,去判斷這條數(shù)據(jù)有沒(méi)有被別人修改過(guò),這篇文章主要介紹了MyBatis-Plus樂(lè)觀鎖插件的用法,需要的朋友可以參考下
    2022-08-08
  • 基于Java字符編碼的使用詳解

    基于Java字符編碼的使用詳解

    本篇文章對(duì)Java字符編碼的使用進(jìn)行了詳細(xì)的分析介紹。需要的朋友參考下
    2013-05-05
  • MyBatis一級(jí)與二級(jí)緩存相關(guān)配置

    MyBatis一級(jí)與二級(jí)緩存相關(guān)配置

    mybatis-plus是一個(gè)Mybatis的增強(qiáng)工具,在Mybatis的基礎(chǔ)上只做增強(qiáng)不做改變,為簡(jiǎn)化開(kāi)發(fā)、提高效率而生,這篇文章帶你了解Mybatis的一級(jí)和二級(jí)緩存
    2023-01-01
  • SpringBoot中引入MyBatisPlus的常規(guī)操作

    SpringBoot中引入MyBatisPlus的常規(guī)操作

    這篇文章主要介紹了SpringBoot中引入MyBatisPlus的常規(guī)操作,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2020-11-11
  • JNDI具體用法詳解

    JNDI具體用法詳解

    JNDI是java命名和目錄接口,本文主要介紹了JNDI具體用法詳解,文中通過(guò)示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2021-12-12
  • 最新評(píng)論

    尉氏县| 柞水县| 巴青县| 庆安县| 镇坪县| 奉贤区| 博兴县| 香港 | 通海县| 邹平县| 永定县| 金乡县| 泽库县| 社会| 南皮县| 浑源县| 白玉县| 平利县| 绥宁县| 朝阳市| 子长县| 正安县| 吉安县| 宜兰市| 望谟县| 涟源市| 武邑县| 泸定县| 敦化市| 呈贡县| 富阳市| 江孜县| 株洲县| 融水| 桓台县| 榆社县| 南澳县| 波密县| 竹北市| 和顺县| 洪洞县|