MyBatis创建存储过程的实例代码_动力节点Java学院整理

网友投稿 269 2023-04-10


MyBatis创建存储过程的实例代码_动力节点Java学院整理

所需要用到的其他工具或技术:

项目管理工具 : Maven

测试运行工具 : Junit

数据库 : Derby

本节需要用到的有2部分,第一部分是如何在Derby中创建存储过程,第二部分是如何在Mybatis中调用存储过程

一. 在Derby中创建存储过程

在Eclipse中创建一个新的普通java项目命名为Test_Store_Procedure

在com.bjpowernode.practice包下创建一个Class命名为StoreProcedureOperationClass.class

package com.bjpowernode.practice;

import java.sql.Connection;

import java.sql.DriverManager;

import java.sql.PreparedStatement;

import java.sql.SQLException;

/**

*

* 存储过程类

*

* @author Freud

*

*/

public class StoreProcedureOperationClass

{

/**

*

* 执行插入的存储过程

*

* @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工具导出到C:\freud\Test_Store_Procedure.jar

4. 在ij命令行中声明存储过程

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 控制台中调用call sqlj.install_jar('C:\freud\Test_Store_Procedure.jar', 'FREUD.TEST_SPROCEDURE', 0);将 jar 包导入到 FREUD模式中,并命名为TEST_SPROCEDURE。

6. 在 ij 控制台中调用call SYSCS_UTIL.SYSCS_SET_DATABASE_PROPERTY('derby.database.classpath', 'FREUD.TEST_SPROCEDURE'); 将 jar 包加入到数据库 classpath 搜索路径中。

这样,Derby的存储过程就算创建完成了

二.在Mybatis中调用存储过程

Maven Dependencies:

org.mybatis

mybatis

3.2.7

junit

junit

4.9

test

org.apache.derby

derby

10.10.2.0

org.apache.derby

derbyclient

10.10.2.0

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

test-mybatis-configuration.xml

PUBLIC "-//mybatis.org//DTD Config 3.0//EN"

"http://mybatis.org/dtd/mybatis-3-config.dtd">

value="jdbc:derby://localhost:1527/freud;create=true" />

User.java对象类(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 userYOszyRwThname;

}

public void setUsernamhttp://e(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目录下)

PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"

"http://mybatis.org/dtd/mybatis-3-mapper.dtd">

select *

from USER_TEST_TB

CALL FREUD.INSERT_USER(#{id},#{username},#{password},#{nickname})

UserMapper.java Mapper类(src/main/java/com.bjpowernode.practice目录下)

package com.bjpowernode.practice;

import java.util.List;

public interface UserMapper

{

public List getUser();

public void insertUser(User user);

}

测试类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()

{

/**

* 准备Mybatis运行环境

*/

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());

// 执行插入

userMapper.insertUser(this.mockUser("FREU_INS_USER", "FREUD_INS_PASS", "FREUD_INS_NICK"));

// 提交事务

session.commit();

// 显示插入之后User信息

System.out.println("\r\nAfter insert");

this.printUsers(userMapper.getUser());

System.out.println("Test insert finished...");

}

catch (Exception e)

{

e.printStackTrace();

}

}

/**

*

* 组装一个User对象

*

* @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;

}

/**

*

* 打印用户信息到控制台

*

* @param users

*/

private void printUsers(final List 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.getNichttp://kname());

}

}

}

总结

以上所述是给大家介绍的MyBatis创建存储过程的实例代码_动力节点Java学院整理,希望对大家有所帮助,如果大家有任何疑问请给我留言,会及时回复大家的。在此也非常感谢大家对我们网站的支持!

value="jdbc:derby://localhost:1527/freud;create=true" />

User.java对象类(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 userYOszyRwThname;

}

public void setUsernamhttp://e(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目录下)

PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"

"http://mybatis.org/dtd/mybatis-3-mapper.dtd">

select *

from USER_TEST_TB

CALL FREUD.INSERT_USER(#{id},#{username},#{password},#{nickname})

UserMapper.java Mapper类(src/main/java/com.bjpowernode.practice目录下)

package com.bjpowernode.practice;

import java.util.List;

public interface UserMapper

{

public List getUser();

public void insertUser(User user);

}

测试类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()

{

/**

* 准备Mybatis运行环境

*/

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());

// 执行插入

userMapper.insertUser(this.mockUser("FREU_INS_USER", "FREUD_INS_PASS", "FREUD_INS_NICK"));

// 提交事务

session.commit();

// 显示插入之后User信息

System.out.println("\r\nAfter insert");

this.printUsers(userMapper.getUser());

System.out.println("Test insert finished...");

}

catch (Exception e)

{

e.printStackTrace();

}

}

/**

*

* 组装一个User对象

*

* @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;

}

/**

*

* 打印用户信息到控制台

*

* @param users

*/

private void printUsers(final List 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.getNichttp://kname());

}

}

}

总结

以上所述是给大家介绍的MyBatis创建存储过程的实例代码_动力节点Java学院整理,希望对大家有所帮助,如果大家有任何疑问请给我留言,会及时回复大家的。在此也非常感谢大家对我们网站的支持!


版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:java 字符串的拼接的实现实例
下一篇:java LinkedList的实例详解
相关文章

 发表评论

暂时没有评论,来抢沙发吧~