Mybatis入门---实现增删改查

在Eclipse中创建好java项目及配置好路径后,通过一个用户管理案例在mybatis框架中实现增删改查功能。

一.数据库准备

首先我们需准备好数据库所需的表,我们新建一个名为eshop的数据库,在其中创造一张名为user_info的表,在此表中创建一些字段如·id,userName。适当在此表中添加一些数据。

二.创建工程目录结构

在src文件夹下创建三个包
com.mybatis.pojo(存放实体类)
com.mybatis.mapper(该包下创建一个UserInfoMapper.xml文件,SQL映射文件)
com.mybatis.test(测试主程序)。

在src同级创造一个mybatis-config.xml文件(数据库连接池配置文件)。

三.实现用户查询

这里希望通过输入用户id查询到eshop数据库user_info表中存储的用户信息。

(1)创建实体类

首先在com.mybatis.pojo包中创建一个实体类UserInfo.java(对应user_info表),注意UserInfo类中的属性要与user_info表中的字段相同。并创建属性的getter setter方法。

package com.mybatis.pojo
public class UserInfo {
  private int id;
  private String userName;
 
  public int getId() {
   return id;
  }
  public void setId(int id) {
   this.id = id;
  }
  public String getUserName() {
   return userName;
  }
  public void setUserName(String userName) {
   this.userName = userName;
  }
  
  @Override
  public String toString() {
   return "UserInfo [id=" + id + ", userName=" + userName + "]";
  } 
 }

(2)创建SQL映射的XML文件

在com.mybatis.mapper包下创建SQL的映射XML文件UserInfoMapper.xml,内容如下:

<!DOCTYPE mapper  
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" 
 "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> 
 <mapper namespace="com.mybatis.mapper.UserInfoMapper">  
     <!-- 查询用户 -->
     <select id="findUserInfoById"  resultType="com.mybatis.pojo.UserInfo">    
         select * from user_info where id=#{id}
      </select>
 </mapper>

mapper文件需遵循mybatis-3-dtd文件规范,可在官方文件中查找。

其中以作为根节点
namespace:命名空间,做sql隔离
id:sql语句唯一标识
parameterType:指定传入参数类型(pojo类中对应的类型,不是数据库中的类型)
resultType:返回结果集类型,如返回UserInfo类型需填写其路径。
#{}:占位符,如果传入的类型是基本类型(string,long,double,int,boolean,float等),那么#{}中变量名称可以任意

(3)创建Mybatis的核心配置文件

之前创建的mybatis-config.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>
     <!-- 给包中的类注册别名 -->
     <typeAliases>
         <package name="com.mybatis.pojo"></package>
     </typeAliases>
     <!-- 配置环境 -->
     <environments default="mysql">
     	<!--配置一个id为mysql的环境-->
         <environment id="mysql">
             <!--使用JDBC事务-->
             <transactionManager type="JDBC"></transactionManager>
             <!--数据库连接池-->
             <dataSource type="POOLED">
                <!--数据库驱动信息-->
                <property name="driver" value="com.mysql.jdbc.Driver"/>
                <!--数据库连接地址-->
                <property name="url" value="jdbc:mysql://localhost:3306/eshop"/>
                <!--数据库用户名-->
                <property name="username" value="root"/>
                <!--数据库密码-->
                <property name="password" value="19991014"/>
             </dataSource>
         </environment>
     </environments>
     <!-- 引用映射文件 -->
     <mappers>
         <mapper resource="com/mybatis/mapper/UserInfoMapper.xml"/>
     </mappers>
 </configuration>

此文件需遵循mybatis-3-config.dtd文件规范。

(4)创建测试类

在com.mybatis.test包中创建MybatisTest测试类,代码如下:

package com.mybatis.test;
import java.io.IOException;
import java.io.InputStream;
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.mybatis.pojo.*;

public class MybatisTest {
public void find() throws IOException{
  //读取mybatis配置文件,并且得到配置文件流
  InputStream stream= Resources.getResourceAsStream("mybatis-config.xml");
  
  //根据配置文件流,创建会话工厂
  SqlSessionFactory factory=new SqlSessionFactoryBuilder().build(stream);
  
  //通过会话工厂得到SqlSession
  SqlSession session=factory.openSession();
  
  //查询id为1的用户信息
  UserInfo u=session.selectOne("com.mybatis.mapper.UserInfoMapper.findUserInfoById",1);
  
  //打印查询结果
  System.out.println(u.toString());
 }


  public static void main(String[] args) throws IOException {
  // TODO 自动生成的方法存根
  MybatisTest m=new MybatisTest();
  m.find();
 }
 }

调用SqlSession对象的selectOne方法的第一个参数是映射文件UserInfoMapper.xml中定义的元素的id。

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值