当前位置:   article > 正文

14.MyBatis中注解实现CRUD以及其他操作_mybatis 注解获取查询总条数

mybatis 注解获取查询总条数

1.结构图

2.User实体类

  1. package com.itheima.pojo;
  2. import java.util.Date;
  3. public class User {
  4. private Integer id;
  5. private String username;
  6. private String sex;
  7. private String address;
  8. private Date birthday;
  9. public Integer getId() {
  10. return id;
  11. }
  12. public void setId(Integer id) {
  13. this.id = id;
  14. }
  15. public String getUsername() {
  16. return username;
  17. }
  18. public void setUsername(String username) {
  19. this.username = username;
  20. }
  21. public String getSex() {
  22. return sex;
  23. }
  24. public void setSex(String sex) {
  25. this.sex = sex;
  26. }
  27. public String getAddress() {
  28. return address;
  29. }
  30. public void setAddress(String address) {
  31. this.address = address;
  32. }
  33. public Date getBirthday() {
  34. return birthday;
  35. }
  36. public void setBirthday(Date birthday) {
  37. this.birthday = birthday;
  38. }
  39. @Override
  40. public String toString() {
  41. return "User{" +
  42. "id=" + id +
  43. ", username='" + username + '\'' +
  44. ", sex='" + sex + '\'' +
  45. ", address='" + address + '\'' +
  46. ", birthday=" + birthday +
  47. '}';
  48. }
  49. }

3.IUserDao接口

  1. package com.itheima.dao;
  2. import com.itheima.pojo.User;
  3. import org.apache.ibatis.annotations.*;
  4. import java.util.List;
  5. /*
  6. Mybatis中针对CRUD一共有四个注解
  7. * @Select() @Insert() @Update() @Delete()
  8. * */
  9. public interface IUserDao {
  10. //查询所有
  11. @Select(value = "select * from user")
  12. List<User> findUser();
  13. //保存一个
  14. @Insert("insert into user(username,birthday,address,sex) values (#{username},#{birthday},#{address},#{sex})")
  15. /*@SelectKey(keyProperty = "id",keyColumn = "id",resultType = Integer.class,before = false,statement = "select last_insert_id()")*/
  16. int insertUser(User user);
  17. //更新一个
  18. @Update("update user set username=#{username},address=#{address},birthday=#{birthday},sex=#{sex} where id=#{id}")
  19. int updateUser(User user);
  20. //删除一个
  21. @Delete("delete from user where id = #{id}")
  22. int deleteUser(Integer id);
  23. //查询根据id
  24. @Select("select * from user where id = #{id}")
  25. User findById(Integer id);
  26. //模糊查询
  27. @Select("select * from user where username like #{username}")
  28. List<User> findByName(String username);
  29. //总条数
  30. @Select("select count(*) from user")
  31. int countTotal();
  32. }

4.外部数据连接

  1. jdbc.driver=com.mysql.jdbc.Driver
  2. jdbc.url=jdbc:mysql://localhost:3306/db_mybatis
  3. jdbc.username=root
  4. jdbc.password=123456

5.主配置文件SqlMapConfig.xml

  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <!DOCTYPE configuration
  3. PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
  4. "http://mybatis.org/dtd/mybatis-3-config.dtd">
  5. <configuration>
  6. <!--p配置外部数据库-->
  7. <properties resource="jdbcConfig.properties"></properties>
  8. <!--配置别名-->
  9. <typeAliases>
  10. <!--自定义别名 实体类所在位置-->
  11. <package name="com.itheima.pojo"/>
  12. </typeAliases>
  13. <!--配置环境-->
  14. <environments default="mysql">
  15. <environment id="mysql">
  16. <transactionManager type="JDBC"></transactionManager>
  17. <dataSource type="POOLED">
  18. <property name="driver" value="${jdbc.driver}"/>
  19. <property name="url" value="${jdbc.url}"/>
  20. <property name="username" value="${jdbc.username}"/>
  21. <property name="password" value="${jdbc.password}"/>
  22. </dataSource>
  23. </environment>
  24. </environments>
  25. <!--指定带有接口注解的位置-->
  26. <mappers>
  27. <package name="com.itheima.dao"/>
  28. </mappers>
  29. </configuration>

6.测试类TestAnn

  1. package com.itheima;
  2. import com.itheima.dao.IUserDao;
  3. import com.itheima.pojo.User;
  4. import org.apache.ibatis.io.Resources;
  5. import org.apache.ibatis.session.SqlSession;
  6. import org.apache.ibatis.session.SqlSessionFactory;
  7. import org.apache.ibatis.session.SqlSessionFactoryBuilder;
  8. import java.io.InputStream;
  9. import java.util.List;
  10. public class TestAnn {
  11. public static void main(String[] args) throws Exception {
  12. //1.获取字节输入流
  13. InputStream in = Resources.getResourceAsStream("SqlMapConfig.xml");
  14. //2.根据字节输入流构建SqlSessionFactory
  15. SqlSessionFactory factory = new SqlSessionFactoryBuilder().build(in);
  16. //3.根据SqlSessionFactory生产一个SqlSession
  17. SqlSession sqlSession = factory.openSession();
  18. //4.使用SqlSession获取Dao的代理对象
  19. IUserDao userDao = sqlSession.getMapper(IUserDao.class);
  20. //5.执行Dao的方法:查询所有
  21. List<User> users = userDao.findUser();
  22. for (User user :users){
  23. System.out.println(user);
  24. }
  25. //6.释放资源..
  26. sqlSession.close();
  27. in.close();
  28. }
  29. }

7.测试类TestCRUD以及其他

  1. package com.itheima;
  2. import com.itheima.dao.IUserDao;
  3. import com.itheima.pojo.User;
  4. import org.apache.ibatis.io.Resources;
  5. import org.apache.ibatis.session.SqlSession;
  6. import org.apache.ibatis.session.SqlSessionFactory;
  7. import org.apache.ibatis.session.SqlSessionFactoryBuilder;
  8. import org.junit.After;
  9. import org.junit.Before;
  10. import org.junit.Test;
  11. import java.io.InputStream;
  12. import java.util.Date;
  13. import java.util.List;
  14. public class TestCRUD {
  15. private InputStream in;
  16. private SqlSessionFactory factory;
  17. private SqlSession sqlSession;
  18. private IUserDao userDao;
  19. //初始化
  20. @Before
  21. public void init() throws Exception {
  22. //1.获取字节输入流
  23. in = Resources.getResourceAsStream("SqlMapConfig.xml");
  24. //2.根据字节输入流构建SqlSessionFactory
  25. factory = new SqlSessionFactoryBuilder().build(in);
  26. //3.根据SqlSessionFactory生产一个SqlSession
  27. sqlSession = factory.openSession();
  28. //4.使用SqlSession获取Dao的代理对象
  29. userDao = sqlSession.getMapper(IUserDao.class);
  30. }
  31. @After
  32. public void destroy() throws Exception{
  33. //6.释放资源..
  34. sqlSession.commit();
  35. sqlSession.close();
  36. in.close();
  37. }
  38. //查询所有
  39. @Test
  40. public void testFindAll(){
  41. List<User> users = userDao.findUser();
  42. for (User user:users){
  43. System.out.println(user);
  44. }
  45. }
  46. //保存一个
  47. @Test
  48. public void testSave(){
  49. User user = new User();
  50. user.setUsername("张三");
  51. user.setSex("男");
  52. user.setAddress("武汉");
  53. user.setBirthday(new Date());
  54. userDao.insertUser(user);
  55. System.out.println("保存成功");
  56. }
  57. //更新一个
  58. @Test
  59. public void testUpdate(){
  60. User user = new User();
  61. user.setId(1);
  62. user.setUsername("hhhhhhhhhh");
  63. user.setSex("男");
  64. user.setAddress("武汉");
  65. user.setBirthday(new Date());
  66. userDao.updateUser(user);
  67. System.out.println("保存成功");
  68. }
  69. //删除一个
  70. @Test
  71. public void testDelete(){
  72. userDao.deleteUser(9);
  73. System.out.println("删除成功---");
  74. }
  75. //查询一个
  76. @Test
  77. public void testFindOne(){
  78. User user = userDao.findById(8);
  79. System.out.println("查询成功---"+user);
  80. }
  81. //模糊查询
  82. @Test
  83. public void testFindName(){
  84. /*多条数据用list*/
  85. List<User> users = userDao.findByName("%王%");
  86. for (User user:users){
  87. System.out.println("模糊查询成功---"+user);
  88. }
  89. }
  90. //根据id查询一个
  91. @Test
  92. public void testFindById(){
  93. User user = userDao.findById(3);
  94. System.out.println(user);
  95. }
  96. //查询总记录条数
  97. @Test
  98. public void testFindTotal(){
  99. int i = userDao.countTotal();
  100. System.out.println("总条数为="+i);
  101. }
  102. }

8.依赖pom.xml 

  1. <dependencies>
  2. <dependency>
  3. <groupId>mysql</groupId>
  4. <artifactId>mysql-connector-java</artifactId>
  5. <version>5.1.40</version>
  6. </dependency>
  7. <!-- https://mvnrepository.com/artifact/log4j/log4j -->
  8. <dependency>
  9. <groupId>log4j</groupId>
  10. <artifactId>log4j</artifactId>
  11. <version>1.2.17</version>
  12. </dependency>
  13. <!-- https://mvnrepository.com/artifact/org.mybatis/mybatis -->
  14. <dependency>
  15. <groupId>org.mybatis</groupId>
  16. <artifactId>mybatis</artifactId>
  17. <version>3.4.6</version>
  18. </dependency>
  19. <dependency>
  20. <groupId>junit</groupId>
  21. <artifactId>junit</artifactId>
  22. <version>4.11</version>
  23. <scope>test</scope>
  24. </dependency>
  25. </dependencies>

 

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/笔触狂放9/article/detail/898724
推荐阅读
相关标签
  

闽ICP备14008679号