• 使用注解开发,lombox P16,P17,P18


    使用注解开发:

    简单的语句可以使用注解,复杂的语句就不推荐了

    流程:

    创建一个新的项目文件05,复制这三个文件。

    复制之后

    删除里面的内容,只留一个接口(使用注解就不需要xml了)。接口里面的内容也清理干净。(使用注解开发,注意注解的位置和内容)

    1. package com.Li.dao;
    2. import com.Li.pojo.User;
    3. import org.apache.ibatis.annotations.Select;
    4. import java.util.List;
    5. public interface UserMapper {
    6. @Select("select * from user")
    7. List getUsers();
    8. }

     修改这个里面的内容:

    1. "1.0" encoding="UTF-8" ?>
    2. configuration
    3. PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
    4. "http://mybatis.org/dtd/mybatis-3-config.dtd">
    5. <configuration>
    6. <properties resource="db.properties"/>
    7. <settings>
    8. <setting name="logImpl" value="STDOUT_LOGGING"/>
    9. settings>
    10. <typeAliases>
    11. <package name="com.Li.pojo"/>
    12. typeAliases>
    13. <environments default="development">
    14. <environment id="development">
    15. <transactionManager type="JDBC"/>
    16. <dataSource type="POOLED">
    17. <property name="driver" value="${driver}"/>
    18. <property name="url" value="${url}"/>
    19. <property name="username" value="${username}"/>
    20. <property name="password" value="${password}"/>
    21. dataSource>
    22. environment>
    23. environments>
    24. <mappers>
    25. <mapper class="com.Li.dao.UserMapper"/>
    26. mappers>
    27. configuration>

     自己创建一个实体类

    1. import com.Li.dao.UserMapper;
    2. import com.Li.pojo.User;
    3. import com.Li.utils.MybatisUtils;
    4. import org.apache.ibatis.session.SqlSession;
    5. import org.junit.Test;
    6. import java.util.List;
    7. public class UserMapperTest {
    8. @Test
    9. public void Test(){
    10. SqlSession sqlSession = MybatisUtils.getSqlSession();
    11. UserMapper mapper = sqlSession.getMapper(UserMapper.class);
    12. List users = mapper.getUsers();
    13. for (User user : users) {
    14. System.out.println(user);
    15. }
    16. sqlSession.close();
    17. }
    18. }

    测试成功!

    CRUD:

    设置自动提交事务为true。这样在下面的插入和修改数据的时候就能保存成功了。

     接口:

    1. package com.Li.dao;
    2. import com.Li.pojo.User;
    3. import org.apache.ibatis.annotations.Param;
    4. import org.apache.ibatis.annotations.Select;
    5. import java.util.List;
    6. public interface UserMapper {
    7. @Select("select * from user")
    8. List getUsers();
    9. // @Param("id")通过注解来标识,注解内的内容作用于sql的#内容中。相当于给id起了一个名字,新名字是Param中的内容
    10. //引用对象不用谢Param,基本的数据类型就可以,比如int,string等等就可以
    11. @Select("select * from user where id = #{id}")
    12. User getUserByID(@Param("id") int id);
    13. }

     测试:

    1. import com.Li.dao.UserMapper;
    2. import com.Li.pojo.User;
    3. import com.Li.utils.MybatisUtils;
    4. import org.apache.ibatis.session.SqlSession;
    5. import org.junit.Test;
    6. import java.util.List;
    7. public class UserMapperTest {
    8. @Test
    9. public void Test(){
    10. SqlSession sqlSession = MybatisUtils.getSqlSession();
    11. UserMapper mapper = sqlSession.getMapper(UserMapper.class);
    12. User userByID = mapper.getUserByID(1);
    13. System.out.println(userByID);
    14. sqlSession.close();
    15. }
    16. }

     测试成功!

    之后增加剩余CRUD的内容:

    接口:

    1. package com.Li.dao;
    2. import com.Li.pojo.User;
    3. import org.apache.ibatis.annotations.*;
    4. import java.util.List;
    5. public interface UserMapper {
    6. @Select("select * from user")
    7. List getUsers();
    8. // @Param("id")通过注解来标识,注解内的内容作用于sql的#内容中。相当于给id起了一个名字,新名字是Param中的内容
    9. //引用对象不用谢Param,基本的数据类型就可以,比如int,string等等就可以
    10. @Select("select * from user where id = #{id}")
    11. User getUserByID(@Param("id") int id);
    12. @Insert("insert into user (id,name,pwd) values(#{id},#{name},#{password})")
    13. int addUser(User user);
    14. @Update("update user set name=#{name},pwd=#{password} where id=#{id}")
    15. int updateUser(User user);
    16. @Delete("delete from user where id = #{uid}")
    17. int deleteUser(@Param("uid") int id);
    18. }

    Test类:

    1. import com.Li.dao.UserMapper;
    2. import com.Li.pojo.User;
    3. import com.Li.utils.MybatisUtils;
    4. import org.apache.ibatis.session.SqlSession;
    5. import org.junit.Test;
    6. import java.util.List;
    7. public class UserMapperTest {
    8. @Test
    9. public void Test(){
    10. SqlSession sqlSession = MybatisUtils.getSqlSession();
    11. UserMapper mapper = sqlSession.getMapper(UserMapper.class);
    12. User userByID = mapper.getUserByID(1);
    13. System.out.println(userByID);
    14. sqlSession.close();
    15. }
    16. //下面是增删改查
    17. @Test
    18. public void addUser(){
    19. SqlSession sqlSession = MybatisUtils.getSqlSession();
    20. UserMapper userDao = sqlSession.getMapper(UserMapper.class);
    21. userDao.addUser(new User(6, "ikun","123"));
    22. sqlSession.close();
    23. }
    24. @Test
    25. public void updateUser(){
    26. SqlSession sqlSession = MybatisUtils.getSqlSession();
    27. UserMapper userDao = sqlSession.getMapper(UserMapper.class);
    28. userDao.updateUser(new User(6, "ctrl","12345"));
    29. sqlSession.close();
    30. }
    31. @Test
    32. public void deleteUser(){
    33. SqlSession sqlSession = MybatisUtils.getSqlSession();
    34. UserMapper userDao = sqlSession.getMapper(UserMapper.class);
    35. userDao.deleteUser(6);
    36. sqlSession.close();
    37. }
    38. }

    最终可以一个一个测试,测试成功!!!

    lombox:

    在新版的IDEA中直接在pom中导入lombox包即可

    打开实体类Pojo的User,删除构造器,tostring等等的内容:

     加入注解之后:

     会发现加入一个注解会方便很多。很便捷!

    @Data:get,set,tostring等等
    @AllArgsConstructor:有参构造
    @NoArgsConstructor:无参构造

  • 相关阅读:
    多向思考者--高敏感人群的内心世界
    Alpha-Beta 剪枝
    java-net-php-python-jspm足球队信息管理系统计算机毕业设计程序
    Linux,虚拟机
    Redis常用数据结构详解
    Linux防火墙之iptables(上)
    制作一个企业网站——html华为官网购物商城项目的设计与实现
    C++vector模拟实现
    【C++初阶】STL详解(一)string类
    [C++] C++引用如何使用,和指针有何区别
  • 原文地址:https://blog.csdn.net/m0_54842832/article/details/127752897