• 欢迎访问搞代码网站,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站!
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏搞代码吧

mybatis实现mapper代理模式的方式

mybatis 搞代码 4年前 (2022-01-09) 20次浏览 已收录 0个评论

今晚继续复习mybtis
以根据id值查询单条数据为例
编写SqlMapConfig.xml文件

<configuration> 
<!-- 使用mybatis需要的数据源和事务配置,后续如果整合spring之后,将不再需要 --> 
<environments default="development"> 
<!-- 配置数据源和事务 --> 
<environment id="development"> 
<!-- 配置事务管理,将事务管理交给mybatis管理 --> <transactionManager type="JDBC" /> 
<!-- 配置数据源 --> 
<dataSource type="POOLED">
 <property name = "driver" value = "com.mysql.jdbc.Driver" /> 
 <property name="url" value="jdbc:mysql://localhost:3306/db_shop? useUnicode=true&amp;characterEncoding=utf-8"/>
  <property name="username" value="root"/> <property name="password" value=""/>
   </dataSource>
    </environment> 
    </environments>
     <!-- 加载**.xml配置文件 --> 
     <mappers> 
     <mapper resource="product.xml"/>
</mappers> 
</configuration>

编写失血模型对象:Product,最好字段名和数据库里面的字段名一直

/**** <p>Title: Product</p> * 
<p>Description: 商品类失血模型</p> *
 @author Alon *
  @date 2020年9月27日 下午6:51:57 
  * @version 1.0 */ 
 public class Product {
  private int p_id;
   private String name; 
   private int p_number;
    private double price; 
    private String add_time;
     public Product(int p_id, String name, int p_number, double price, String add_time) { 
     super();
      this.p_id = p_id; 
      this.name = name; 
      this.p_number = p_number; 
      this.price = price; 
      this.add_time = add_time; 
      }public Product() { 
        super();
       }
       public int getP_id() { 
       return p_id; }
       public void setP_id(int p_id) { 
       this.p_id = p_id; }public String getName() { return name; }
       public void setName(String name) { this.name = name; }
       public int getP_number() { 
       return p_number; }
       public void setP_number(int p_number) { this.p_number = p_number; }
       public double getPrice() { return price; }
       public void setPrice(double price) { this.price = price; }
       public String getAdd_time() { return add_time;
}
public void setAdd_time(String add_time) { this.add_time = add_time; }
@Override 
public String toString() { 
return "Product [p_id=" + p_id + ", name=" + name + ", p_number=" + p_number + ", price=" + price + ", add_time=" + add_time + "]"; } }

编写单个映射关系的sql.xml:product.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">
 <!-- 映射的sql文件 namespace:命名空间,可以理解成将部分的sql语句进行隔离。到后面的mapper代理方式将有更 加重要的作用 --> <mapper namespace="test"> 
 <!--select:表示要执行的查询语句 id:给这个查询语句取一个名字,唯一的,java中要调用的使用。
  parameterType:输入参数的数据类型 
  resultType:输出参数的数据类型,一般绑定成mod<strong style="color:transparent">本文来源gaodai#ma#com搞@@代~&码*网/</strong>el的对象 #{value}:表示用来和占位符一样,用来接受输入的参数值。 --> <select id="findById" parameterType="java.lang.Integer" resultType="com.woniuxy.model.Product">
   SELECT * FROM t_product WHERE p_id = #{value}
    </select>
     </mapper>

编写java代码进行测试执行sql语句并得到结果

/**** <p>Title: MybatisDemo1</p> *
 <p>Description: 查询数据的demo</p> *
  @author Alon 
  * @date 2020年9月27日 下午7:05:32 
  * * @version 1.0 */ 
  * public class MybatisDemo1 {
  *  public static void main(String[] args) throws IOException { 
  * new MybatisDemo1().queryById(); }
  * public void queryById() throws IOException {
  *  //1、读取到SqlMapConfig.xml文件的流 String path = "SqlMapConfig.xml"; 
  * InputStream config = Resources.getResourceAsStream(path);
//创建会话工厂,同时将SqlMapConfig.xml里面的数据放到工厂中 SqlSessionFactory factory = new SqlSessionFactoryBuilder().build(config); 
//开启会话 SqlSession sqlSession = factory.openSession(); /** 第一个参数:要执行哪个sql语句的参数,一般命名空间.id值 * 第二个参数:传入填充#{value}的传入参数值。 */ 
Object obj = sqlSession.selectOne("test.findById", 1); System.out.println(obj); } }

搞代码网(gaodaima.com)提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发送到邮箱[email protected],我们会在看到邮件的第一时间内为您处理,或直接联系QQ:872152909。本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:mybatis实现mapper代理模式的方式
喜欢 (0)
[搞代码]
分享 (0)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址