MyBatis操作数据库

一、新建Maven项目

项目名:mybatis-operate-database

设置Maven版本,配置文件

 

二、准备数据源

创建一个mybatis_demo数据库

 1 # 删除mybatis_demo数据库
 2 drop database if exists mybatis_demo;
 3 
 4 # 创建mybatis_demo数据库
 5 create database mybatis_demo;
 6 
 7 # 使用mybatis_demo数据库
 8 use mybatis_demo;
 9 
10 # 创建account表Proxy Pattern
11 create table user (
12     id int auto_increment primary key,
13     username varchar(20),
14     age int,
15     score int
16 );
17 
18 # 新增数据
19 insert into user (id, username, age, score) values
20 (1,‘peter‘, 18, 100), (2,‘pedro‘, 24, 200),
21 (3,‘jerry‘, 28, 500), (4,‘mike‘, 12, 300),
22 (5,‘tom‘, 27, 1000);

 

代码结构图:

MyBatis操作数据库

 

三、使用MyBatis操作数据库

select单条数(查询)

  代码编写:

  新建entity包创建实体类:User.java

 1 package entity;
 2 
 3 public class User {
 4     private Integer id;
 5     private String username;
 6     private Integer age;
 7     private Integer score;
 8     // 省略getter&setter方法
 9     // 省略toString方法
10     // 右击选择"Gengrate",依次点击getter&setter和toString方法
11 }

 

  新建mapper包创建实体类:UserMapper.java

 1 package mapper;
 2 
 3 import entity.User;
 4 
 5 public interface UserMapper {
 6     /**
 7      * 通过用户id查询用户信息
 8      *
 9      * @param id
10      * @return
11      */
12     User selectUserById(Integer id);
13 }

 

  在资源文件 " resources " 下新建mapper包,创建配置文件:UserMapper.xml 

1 <?xml version="1.0" encoding="UTF-8" ?>
2 <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
3 <mapper namespace="mapper.UserMapper">
4     <select id="selectUserById" resultType="entity.User">
5         SELECT * FROM user WHERE id = #{id}
6     </select>
7 </mapper>

 

  在Text文件夹下新建测试类:UserTest.java

 1 import entity.User;
 2 import mapper.UserMapper;
 3 import org.apache.ibatis.io.Resources;
 4 import org.apache.ibatis.session.SqlSession;
 5 import org.apache.ibatis.session.SqlSessionFactory;
 6 import org.apache.ibatis.session.SqlSessionFactoryBuilder;
 7 
 8 import java.io.IOException;
 9 import java.io.InputStream;
10 import java.sql.SQLException;
11 
12 @SuppressWarnings({"Duplicates"})
13 public class UserTest {
14     public static void main(String[] args) throws IOException, SQLException {
15         // 读取配置文件
16         InputStream configuration = Resources.getResourceAsStream("mybatis-config.xml");
17         // 得到 SqlSessionFactory 核心类
18         SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(configuration);
19         // 开始一个 sql 会话
20         SqlSession session = sqlSessionFactory.openSession();
21         // 得到 mapper
22         UserMapper mapper = session.getMapper(UserMapper.class);
23         // 调用通过用户id查询用户信息的方法
24         User user = mapper.selectUserById(1);
25         System.out.println(user);
26         // 关闭会话
27         session.close();
28     }
29 }

 

  执行结果:

MyBatis操作数据库

                                                                                                 

select多条数据(查询)

  代码编写:

  UserMapper.xml 

1 <select id="selectUserList" resultType="entity.User">
2     SELECT * FROM user
3 </select>
 1 <?xml version="1.0" encoding="UTF-8" ?>
 2 <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
 3 <mapper namespace="mapper.UserMapper">
 4     <select id="selectUserById" resultType="entity.User">
 5         SELECT * FROM user WHERE id = #{id}
 6     </select>
 7     <select id="selectUserList" resultType="entity.User">
 8     SELECT * FROM user
 9     </select>
10 </mapper>

 

  UserMapper.java

1 /**
2  * 查询所有用户信息
3  *
4  * @return
5  */
6 List<User> selectUserList();
 1 package mapper;
 2 
 3 import entity.User;
 4 
 5 import java.util.List;
 6 
 7 public interface UserMapper {
 8     /**
 9      * 通过用户id查询用户信息
10      *
11      * @param id
12      * @return
13      */
14     User selectUserById(Integer id);
15     /**
16      * 查询所有用户信息
17      *
18      * @return
19      */
20     List<User> selectUserList();
21 
22 }

 

  UserTest.java

1 // 调用查询所有用户信息的方法
2 List<User> userList = mapper.selectUserList();
3 userList.forEach(u -> System.out.println(u));
 1 import entity.User;
 2 import mapper.UserMapper;
 3 import org.apache.ibatis.io.Resources;
 4 import org.apache.ibatis.session.SqlSession;
 5 import org.apache.ibatis.session.SqlSessionFactory;
 6 import org.apache.ibatis.session.SqlSessionFactoryBuilder;
 7 
 8 import java.io.IOException;
 9 import java.io.InputStream;
10 import java.sql.SQLException;
11 import java.util.List;
12 
13 @SuppressWarnings({"Duplicates"})
14 public class UserTest2 {
15     public static void main(String[] args) throws IOException, SQLException {
16         // 读取配置文件
17         InputStream configuration = Resources.getResourceAsStream("mybatis-config.xml");
18         // 得到 SqlSessionFactory 核心类
19         SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(configuration);
20         // 开始一个 sql 会话
21         SqlSession session = sqlSessionFactory.openSession();
22         // 得到 mapper
23         UserMapper mapper = session.getMapper(UserMapper.class);
24         // 调用通过用户id查询用户信息的方法
25         User user = mapper.selectUserById(1);
26         System.out.println(user);
27         // 调用查询所有用户信息的方法
28         
29         List<User> userList = mapper.selectUserList();
30         for(int i=1;i<userList.size();i++){
31             System.out.print(userList.get(i));
32         }
33         
34         // 关闭会话
35         session.close();
36     }
37 }

 

  执行结果:

MyBatis操作数据库

 

                                                                               

insert数据(新增)

  代码编写:

  UserMapper.xml 

1 <insert id="insertUser" parameterType="entity.User">
2     INSERT INTO user VALUES (#{id},#{username},#{age},#{score})
3 </insert>
 1 <?xml version="1.0" encoding="UTF-8" ?>
 2 <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
 3 <mapper namespace="mapper.UserMapper">
 4     <select id="selectUserById" resultType="entity.User">
 5         SELECT * FROM user WHERE id = #{id}
 6     </select>
 7     <select id="selectUserList" resultType="entity.User">
 8     SELECT * FROM user
 9     </select>
10     <insert id="insertUser" parameterType="entity.User">
11     INSERT INTO user VALUES (#{id},#{username},#{age},#{score})
12     </insert>
13 </mapper>

 

  UserMapper.java

1 /**
2  * 新增用户信息
3  *
4  * @param user
5  * @return
6  */
7 int insertUser(User user);
 1 package mapper;
 2 
 3 import entity.User;
 4 
 5 import java.util.List;
 6 
 7 public interface UserMapper {
 8     /**
 9      * 通过用户id查询用户信息
10      *
11      * @param id
12      * @return
13      */
14     User selectUserById(Integer id);
15     
16     /**
17      * 查询所有用户信息
18      *
19      * @return
20      */
21     List<User> selectUserList();
22 
23     /**
24      * 新增用户信息
25      *
26      * @param user
27      * @return
28      */
29     int insertUser(User user);
30 
31 }

 

 

  UserTest.java

 1 // 调用查询所有用户信息的方法
 2 List<User> userListBefore = mapper.selectUserList();
 3 userListBefore.forEach(u -> System.out.println(u));
 4 // 创建一个要新增的对象并赋值
 5 User insertUser = new User();
 6 insertUser.setId(6);
 7 insertUser.setUsername("anne");
 8 insertUser.setAge(18);
 9 insertUser.setScore(600);
10 // 调用新增用户信息的方法
11 int count = mapper.insertUser(insertUser);
12 // 调用查询所有用户信息的方法
13 List<User> userListAfter = mapper.selectUserList();
14 userListAfter.forEach(u -> System.out.println(u));
 1 import entity.User;
 2 import mapper.UserMapper;
 3 import org.apache.ibatis.io.Resources;
 4 import org.apache.ibatis.session.SqlSession;
 5 import org.apache.ibatis.session.SqlSessionFactory;
 6 import org.apache.ibatis.session.SqlSessionFactoryBuilder;
 7 
 8 import java.io.IOException;
 9 import java.io.InputStream;
10 import java.sql.SQLException;
11 import java.util.List;
12 
13 @SuppressWarnings({"Duplicates"})
14 public class UserTest2 {
15     public static void main(String[] args) throws IOException, SQLException {
16         // 读取配置文件
17         InputStream configuration = Resources.getResourceAsStream("mybatis-config.xml");
18         // 得到 SqlSessionFactory 核心类
19         SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(configuration);
20         // 开始一个 sql 会话
21         SqlSession session = sqlSessionFactory.openSession();
22         // 得到 mapper
23         UserMapper mapper = session.getMapper(UserMapper.class);
24         // 调用通过用户id查询用户信息的方法
25         User user = mapper.selectUserById(1);
26         System.out.println(user);
27         // 调用查询所有用户信息的方法
28 
29         List<User> userList = mapper.selectUserList();
30         for(int i=1;i<userList.size();i++){
31             System.out.print(userList.get(i));
32         }
33 
34         // 调用查询所有用户信息的方法
35         List<User> userListBefore = mapper.selectUserList();
36         for(int i=1;i<userList.size();i++){
37             System.out.print(userList.get(i));
38         }
39         // 创建一个要新增的对象并赋值
40         User insertUser = new User();
41         insertUser.setId(6);
42         insertUser.setUsername("anne");
43         insertUser.setAge(18);
44         insertUser.setScore(600);
45         // 调用新增用户信息的方法
46         int count = mapper.insertUser(insertUser);
47         // 调用查询所有用户信息的方法
48         List<User> userListAfter = mapper.selectUserList();
49         for(int i=1;i<userList.size();i++){
50             System.out.print(userList.get(i));
51         }
52 
53 
54         // 关闭会话
55         session.close();
56     }
57 }

 

  执行结果:

MyBatis操作数据库

 

  提交session:

1 // 提交session
2 session.commit();

 

  执行结果:

MyBatis操作数据库

MyBatis操作数据库

 

 

                                                                                          

update数据(修改)

  代码编写:

  UserMapper.xml 

1 <update id="updateUserById">
2     UPDATE user SET
3     age = #{age},
4     username = #{username},
5     score = #{score}
6     WHERE id = #{id}
7 </update>
 1 <?xml version="1.0" encoding="UTF-8" ?>
 2 <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
 3 <mapper namespace="mapper.UserMapper">
 4     <select id="selectUserById" resultType="entity.User">
 5         SELECT * FROM user WHERE id = #{id}
 6     </select>
 7     <select id="selectUserList" resultType="entity.User">
 8     SELECT * FROM user
 9     </select>
10     <insert id="insertUser" parameterType="entity.User">
11     INSERT INTO user VALUES (#{id},#{username},#{age},#{score})
12     </insert>
13     <update id="updateUserById">
14     UPDATE user SET
15     age = #{age},
16     username = #{username},
17     score = #{score}
18     WHERE id = #{id}
19     </update>
20 </mapper>

 

 

  UserMapper.java

1 /**
2  * 修改用户信息
3  *
4  * @param user
5  * @return
6  */
7 int updateUserById(User user);
 1 package mapper;
 2 
 3 import entity.User;
 4 
 5 import java.util.List;
 6 
 7 public interface UserMapper {
 8     /**
 9      * 通过用户id查询用户信息
10      *
11      * @param id
12      * @return
13      */
14     User selectUserById(Integer id);
15 
16     /**
17      * 查询所有用户信息
18      *
19      * @return
20      */
21     List<User> selectUserList();
22 
23     /**
24      * 新增用户信息
25      *
26      * @param user
27      * @return
28      */
29     int insertUser(User user);
30 
31     /**
32      * 修改用户信息
33      *
34      * @param user
35      * @return
36      */
37     int updateUserById(User user);
38 
39 
40 }

 

  UserTest.java

 1 // 调用通过用户id查询用户信息的方法
 2 User userBefore = mapper.selectUserById(6);
 3 System.out.println(userBefore);
 4 // 把成绩改为900
 5 userBefore.setScore(900);
 6 // 调用修改用户信息的方法
 7 mapper.updateUserById(userBefore);
 8 // 调用通过用户id查询用户信息的方法
 9 User userAfter = mapper.selectUserById(6);
10 System.out.println(userAfter);
 1 import entity.User;
 2 import mapper.UserMapper;
 3 import org.apache.ibatis.io.Resources;
 4 import org.apache.ibatis.session.SqlSession;
 5 import org.apache.ibatis.session.SqlSessionFactory;
 6 import org.apache.ibatis.session.SqlSessionFactoryBuilder;
 7 
 8 import java.io.IOException;
 9 import java.io.InputStream;
10 import java.sql.SQLException;
11 import java.util.List;
12 
13 @SuppressWarnings({"Duplicates"})
14 public class UserTest {
15     public static void main(String[] args) throws IOException, SQLException {
16         // 读取配置文件
17         InputStream configuration = Resources.getResourceAsStream("mybatis-config.xml");
18         // 得到 SqlSessionFactory 核心类
19         SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(configuration);
20         // 开始一个 sql 会话
21         SqlSession session = sqlSessionFactory.openSession();
22         // 得到 mapper
23         UserMapper mapper = session.getMapper(UserMapper.class);
24         // 调用通过用户id查询用户信息的方法
25         User user = mapper.selectUserById(1);
26         System.out.println(user);
27         // 调用查询所有用户信息的方法
28 
29         List<User> userList = mapper.selectUserList();
30         for(int i=1;i<userList.size();i++){
31             System.out.print(userList.get(i));
32         }
33 
34         // 调用查询所有用户信息的方法
35         List<User> userListBefore = mapper.selectUserList();
36         for(int i=1;i<userList.size();i++){
37             System.out.print(userList.get(i));
38         }
39         // 创建一个要新增的对象并赋值
40         User insertUser = new User();
41         insertUser.setId(6);
42         insertUser.setUsername("anne");
43         insertUser.setAge(18);
44         insertUser.setScore(600);
45         // 调用新增用户信息的方法
46         int count = mapper.insertUser(insertUser);
47         // 调用查询所有用户信息的方法
48         List<User> userListAfter = mapper.selectUserList();
49         for(int i=1;i<userList.size();i++){
50             System.out.print(userList.get(i));
51         }
52 
53         // 调用通过用户id查询用户信息的方法
54         User userBefore = mapper.selectUserById(6);
55         System.out.println(userBefore);
56         // 把成绩改为900
57         userBefore.setScore(900);
58         // 调用修改用户信息的方法
59         mapper.updateUserById(userBefore);
60         // 调用通过用户id查询用户信息的方法
61         User userAfter = mapper.selectUserById(6);
62         System.out.println(userAfter);
63 
64         // 关闭会话
65         session.close();
66     }
67 }

 

  执行结果:

MyBatis操作数据库

MyBatis操作数据库

 

                                                                              

 

delete数据(删除)

  代码编写:

UserMapper.xml

1 <delete id="deleteUserById">
2     DELETE FROM user WHERE id = #{id}
3 </delete>
 1 <?xml version="1.0" encoding="UTF-8" ?>
 2 <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
 3 <mapper namespace="mapper.UserMapper">
 4     <select id="selectUserById" resultType="entity.User">
 5         SELECT * FROM user WHERE id = #{id}
 6     </select>
 7 
 8     <select id="selectUserList" resultType="entity.User">
 9     SELECT * FROM user
10     </select>
11 
12 <!--    <insert id="insertUser" parameterType="entity.User">-->
13 <!--    INSERT INTO user VALUES (#{id},#{username},#{age},#{score})-->
14 <!--    </insert>-->
15 
16 <!--    <update id="updateUserById">-->
17 <!--    UPDATE user SET-->
18 <!--    age = #{age},-->
19 <!--    username = #{username},-->
20 <!--    score = #{score}-->
21 <!--    WHERE id = #{id}-->
22 <!--    </update>-->
23     <delete id="deleteUserById">
24     DELETE FROM user WHERE id = #{id}
25     </delete>
26 </mapper>

 

 

  UserMapper.java

1 /**
2  * 删除用户信息
3  *
4  * @param id
5  * @return
6  */
7 int deleteUserById(Integer id);
 1 package mapper;
 2 
 3 import entity.User;
 4 
 5 import java.util.List;
 6 
 7 public interface UserMapper {
 8     /**
 9      * 通过用户id查询用户信息
10      *
11      * @param id
12      * @return
13      */
14     User selectUserById(Integer id);
15 
16     /**
17      * 查询所有用户信息
18      *
19      * @return
20      */
21     List<User> selectUserList();
22 
23     /**
24      * 新增用户信息
25      *
26      * @param user
27      * @return
28      */
29     int insertUser(User user);
30 
31 //    /**
32 //     * 修改用户信息
33 //     *
34 //     * @param user
35 //     * @return
36 //     */
37 //    int updateUserById(User user);
38 
39     /**
40      * 删除用户信息
41      *
42      * @param id
43      * @return
44      */
45     int deleteUserById(Integer id);
46 
47 
48 }

 

  UserTest.java

1 // 调用查询所有用户信息的方法
2 List<User> userListBefore = mapper.selectUserList();
3 userListBefore.forEach(u -> System.out.println(u));
4 // 调用删除用户信息的方法
5 int count = mapper.deleteUserById(6);
6 // 调用查询所有用户信息的方法
7 List<User> userListAfter = mapper.selectUserList();
8 userListAfter.forEach(u -> System.out.println(u));
 1 import entity.User;
 2 import mapper.UserMapper;
 3 import org.apache.ibatis.io.Resources;
 4 import org.apache.ibatis.session.SqlSession;
 5 import org.apache.ibatis.session.SqlSessionFactory;
 6 import org.apache.ibatis.session.SqlSessionFactoryBuilder;
 7 
 8 import java.io.IOException;
 9 import java.io.InputStream;
10 import java.sql.SQLException;
11 import java.util.List;
12 
13 @SuppressWarnings({"Duplicates"})
14 public class UserTest {
15     public static void main(String[] args) throws IOException, SQLException {
16         // 读取配置文件
17         InputStream configuration = Resources.getResourceAsStream("mybatis-config.xml");
18         // 得到 SqlSessionFactory 核心类
19         SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(configuration);
20         // 开始一个 sql 会话
21         SqlSession session = sqlSessionFactory.openSession();
22         // 得到 mapper
23         UserMapper mapper = session.getMapper(UserMapper.class);
24         // 调用通过用户id查询用户信息的方法
25         User user = mapper.selectUserById(1);
26         System.out.println(user);
27 
28         // 调用查询所有用户信息的方法
29         List<User> userList = mapper.selectUserList();
30         for(int i=1;i<userList.size();i++){
31             System.out.print(userList.get(i));
32         }
33 
34 //        // 创建一个要新增的对象并赋值
35 //        User insertUser = new User();
36 //        insertUser.setId(6);
37 //        insertUser.setUsername("anne");
38 //        insertUser.setAge(18);
39 //        insertUser.setScore(600);
40 //        // 调用新增用户信息的方法
41 //        int count = mapper.insertUser(insertUser);
42 //        // 调用查询所有用户信息的方法
43 //        List<User> userListAfter = mapper.selectUserList();
44 //        for(int i=1;i<userList.size();i++){
45 //            System.out.print(userList.get(i));
46 //        }
47 
48 //        // 调用通过用户id查询用户信息的方法
49 //        User userBefore = mapper.selectUserById(6);
50 //        System.out.println(userBefore);
51 //        // 把成绩改为900
52 //        userBefore.setScore(900);
53 //        // 调用修改用户信息的方法
54 //        mapper.updateUserById(userBefore);
55 //        // 调用通过用户id查询用户信息的方法
56 //        User userAfter = mapper.selectUserById(6);
57 //        System.out.println(userAfter);
58 
59         // 调用查询所有用户信息的方法
60         List<User> userListBefore = mapper.selectUserList();
61         for(int i=1;i<userList.size();i++){
62             System.out.print(userList.get(i));
63         }
64 
65         // 调用删除用户信息的方法
66         int count = mapper.deleteUserById(6);
67         // 调用查询所有用户信息的方法
68         List<User> userListAfter = mapper.selectUserList();
69         for(int i=1;i<userList.size();i++){
70             System.out.print(userList.get(i));
71         }
72 
73 
74 
75         // 提交session
76         session.commit();
77 
78 
79         // 关闭会话
80         session.close();
81     }
82 }

 

  执行结果:

MyBatis操作数据库

MyBatis操作数据库

 

2021.3.30

岁岁

MyBatis操作数据库

上一篇:Django中数据库数据的新增


下一篇:jmeter连接数据库(MYSQL)