Mybatis框架学习笔记(2)---使用动态代理完成简单的增删改查

使用mybatis的dao层的开发方式有两种,一种是类似与ssh框架,定义接口,然后定义实现类,还有一种方式就是动态代理方式,即只需要定义接口和方法就可以动态地去执行sql语句。

  1、在com.iteason.mapper目录下创建UserMapper接口,用于定义所有的行为

public interface UserMapper {

    //遵循四个原则

    //接口方法名即为User.xml中的id名

    //返回值类型和User.xml中的类型要一致

    //方法的参数类型要和User.xml中的类型一致

    //接口与相应的User.xml的命名空间绑定


    //通过id查

    public User findUserById(Integer id);

    //通过用户名模糊查

    public List<User> findByUsername(String username);

    //插入User

    public void insertUser(User user);

    //更新User

    public void updateUser(Integer id);

    //通过id删除User

    public void deleteUser(Integer id);


}

   2、在com.iteason.mapper目录下创建UserMapper.xml配置文件,用于映射UserMapper接口和User类

<?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.iteason.mapper.UserMapper">




<!-- 通过id查询 -->

<select id="findUserById" parameterType="Integer" resultType="User">

select * from user where id = #{id}

</select>



<!-- 通过uesrname模糊查询 -->

<select id="findUserByUsername" parameterType="String" resultType="User">

select * from user where username like #{username}

</select>



<!-- 插入 -->

<insert id="insertUser" parameterType="User" >

<selectKey order="AFTER" keyProperty="id" resultType="Integer">

select LAST_INSERT_ID()

</selectKey>

insert into user(username,birthday,address,sex) values(#{username},#{birthday},#{address},#{sex});

</insert>


<!-- 更新 -->

<update id="updateUser" parameterType="Integer">

update user set username = "hahaha" where id = #{id}

</update>


<!-- 删除 -->

<delete id="deleteUser" parameterType="Integer">

delete from user where id = #{id}

</delete>

</mapper>

 3、在SqlMapConfig.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>


<!-- 读取jdbc配置文件 -->

<properties resource="jdbc.properties"/>


<!-- 设置别名,包下的类名即为别名 -->

<typeAliases>

<package name="com.iteason.pojo"/>

</typeAliases>


<!-- 和spring整合后 environments配置将废除 -->

<environments default="development">

<environment id="development">

<!-- 使用jdbc事务管理 -->

<transactionManager type="JDBC" />

<!-- 数据库连接池 -->

<dataSource type="POOLED">

<property name="driver" value="${jdbc.driver}" />

<property name="url"

value="${jdbc.url}" />

<property name="username" value="${jdbc.username}" />

<property name="password" value="${jdbc.password}" />

</dataSource>

</environment>

</environments>


<!-- 包下批量扫描映射文件,映射文件前面的名字要和mapper接口一样 -->

<mappers>

<package name="com.iteason.mapper"/>

</mappers>

</configuration>

4、测试增加User
​​​​​​

@Test

public void insertUser() throws Exception {

    //加载核心配置文件

    String resource = "sqlMapConfig.xml";

    InputStream in = Resources.getResourceAsStream(resource);

    SqlSessionFactory factory = new SqlSessionFactoryBuilder().build(in);

    SqlSession sqlSession = factory.openSession();


    UserMapper mapper = sqlSession.getMapper(UserMapper.class);

    User user = new User();

    user.setId(1212);

    user.setUsername("hahahahaa");

    mapper.insertUser(user);

    sqlSession.commit();

}

5、测试删除User
​​​​​​

@Test

public void deleteTest() throws Exception {

    //加载核心配置文件

    String resource = "sqlMapConfig.xml";

    InputStream in = Resources.getResourceAsStream(resource);

    SqlSessionFactory factory = new SqlSessionFactoryBuilder().build(in);

    SqlSession sqlSession = factory.openSession();

    UserMapper mapper = sqlSession.getMapper(UserMapper.class);


    mapper.deleteUser(31);


    sqlSession.commit();


}

6、测试更新User
​​​​​​

@Test

public void testUpdate() throws Exception {

    //加载核心配置文件

    String resource = "sqlMapConfig.xml";

    InputStream in = Resources.getResourceAsStream(resource);

    SqlSessionFactory factory = new SqlSessionFactoryBuilder().build(in);

    SqlSession sqlSession = factory.openSession();
    
    UserMapper mapper = sqlSession.getMapper(UserMapper.class);


    mapper.updateUser(1);


    sqlSession.commit();


}

7、测试查询User

@Test

public void selectUser() throws Exception {

    //加载核心配置文件

    String resource = "sqlMapConfig.xml";

    InputStream in = Resources.getResourceAsStream(resource);

    SqlSessionFactory factory = new SqlSessionFactoryBuilder().build(in);

    SqlSession sqlSession = factory.openSession();

    UserMapper mapper = sqlSession.getMapper(UserMapper.class);

    User user = mapper.findUserById(10);

    System.out.println(user);

}

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Mybatis-plus 是一个 Mybatis 的增强工具,提供了很多方便的操作方法,可以使我们的开发效率更高、更简洁。下面是使用 Mybatis-plus 进行增删改查的示例: 1. 添加依赖 在 pom.xml 文件中添加以下依赖: ```xml <dependency> <groupId>com.baomidou</groupId> <artifactId>mybatis-plus-boot-starter</artifactId> <version>3.4.3.1</version> </dependency> ``` 2. 配置数据源 在 application.properties 文件中配置数据源信息: ```properties spring.datasource.url = jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=utf8&serverTimezone=Asia/Shanghai spring.datasource.username = root spring.datasource.password = 123456 spring.datasource.driver-class-name = com.mysql.cj.jdbc.Driver ``` 3. 创建实体类 创建一个实体类,可以使用注解 @TableName 指定数据库表名,@TableId 指定主键字段。 ```java @Data @TableName("user") public class User { @TableId(type = IdType.AUTO) private Long id; private String name; private Integer age; private String email; } ``` 4. 创建 Mapper 接口 创建一个 Mapper 接口,继承 BaseMapper 类,可以直接使用 Mybatis-plus 提供的方法,无需手写 SQL。 ```java @Mapper public interface UserMapper extends BaseMapper<User> { } ``` 5. 使用 Mybatis-plus 进行增删改查 使用 Mybatis-plus 提供的方法进行增删改查操作。 ```java @Service public class UserServiceImpl implements UserService { @Autowired private UserMapper userMapper; @Override public void addUser(User user) { userMapper.insert(user); } @Override public void deleteUserById(Long id) { userMapper.deleteById(id); } @Override public void updateUser(User user) { userMapper.updateById(user); } @Override public User getUserById(Long id) { return userMapper.selectById(id); } @Override public List<User> getUserList() { return userMapper.selectList(null); } } ``` 以上就是使用 Mybatis-plus 进行增删改查的示例。当然,Mybatis-plus 还提供了其他很多方便的操作方法,可以根据具体需求进行使用

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值